From c5bfb3b8a6d8a07e35b7ced9514709258d22adc7 Mon Sep 17 00:00:00 2001 From: Tim Diekmann Date: Fri, 27 Sep 2024 10:43:30 +0200 Subject: [PATCH] Remove `const` in arrays --- .../src/schema/data_type/constraint/array.rs | 11 ----------- .../rust/src/schema/data_type/mod.rs | 17 ----------------- .../src/shared/data-types-options-context.tsx | 15 ++------------- 3 files changed, 2 insertions(+), 41 deletions(-) diff --git a/libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/array.rs b/libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/array.rs index 8d35da6492f..b757f41000b 100644 --- a/libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/array.rs +++ b/libs/@blockprotocol/type-system/rust/src/schema/data_type/constraint/array.rs @@ -95,9 +95,6 @@ mod wasm { pub enum ArraySchema { Constrained(ArrayConstraints), Tuple(TupleConstraints), - // TODO: Remove - // see https://linear.app/hash/issue/H-3368/remove-const-from-array-constraints - Const { r#const: [JsonValue; 0] }, } impl ArraySchema { @@ -116,14 +113,6 @@ impl ArraySchema { Self::Tuple(constraints) => constraints .validate_value(array) .change_context(ConstraintError::ValueConstraint)?, - Self::Const { r#const } => { - if array != *r#const { - bail!(ConstraintError::InvalidConstValue { - actual: JsonValue::Array(array.to_vec()), - expected: JsonValue::Array(r#const.to_vec()), - }); - } - } } Ok(()) } diff --git a/libs/@blockprotocol/type-system/rust/src/schema/data_type/mod.rs b/libs/@blockprotocol/type-system/rust/src/schema/data_type/mod.rs index fd889c8a6c2..832da33e94b 100644 --- a/libs/@blockprotocol/type-system/rust/src/schema/data_type/mod.rs +++ b/libs/@blockprotocol/type-system/rust/src/schema/data_type/mod.rs @@ -107,7 +107,6 @@ mod raw { use std::collections::HashSet; use serde::{Deserialize, Serialize}; - use serde_json::Value as JsonValue; use super::{DataTypeSchemaTag, DataTypeTag}; use crate::{ @@ -216,12 +215,6 @@ mod raw { #[serde(flatten)] constraints: TupleConstraints, }, - ArrayConst { - r#type: ArrayTypeTag, - #[serde(flatten)] - common: ValueSchemaMetadata, - r#const: [JsonValue; 0], - }, AnyOf { #[serde(flatten)] common: ValueSchemaMetadata, @@ -352,16 +345,6 @@ mod raw { constraints, ))), ), - DataType::ArrayConst { - r#type: _, - common, - r#const, - } => ( - common, - ValueConstraints::Typed(SingleValueConstraints::Array(ArraySchema::Const { - r#const, - })), - ), DataType::AnyOf { common, constraints: any_of, diff --git a/libs/@hashintel/type-editor/src/shared/data-types-options-context.tsx b/libs/@hashintel/type-editor/src/shared/data-types-options-context.tsx index 6054ea9ee46..38593bffd8c 100644 --- a/libs/@hashintel/type-editor/src/shared/data-types-options-context.tsx +++ b/libs/@hashintel/type-editor/src/shared/data-types-options-context.tsx @@ -180,19 +180,13 @@ export const DataTypesOptionsContext = const isArrayConstraints = ( schema: ArraySchema, ): schema is ArrayConstraints => { - // TODO: Remove `"items" in schema` check when `const` is not allowed on arrays - // see https://linear.app/hash/issue/H-3368/remove-const-from-array-constraints - return ( - "items" in schema && schema.items !== undefined && schema.items !== false - ); + return schema.items !== undefined && schema.items !== false; }; const isTupleConstraints = ( schema: ArraySchema, ): schema is TupleConstraints => { - // TODO: Remove `"items" in schema` check when `const` is not allowed on arrays - // see https://linear.app/hash/issue/H-3368/remove-const-from-array-constraints - return "items" in schema && schema.items === false; + schema.items === false; }; const isArrayItemsSchema = ( @@ -213,11 +207,6 @@ const getArrayDataTypeDisplay = ( } items = dataType.prefixItems; - - // TODO: Remove when `const` is not allowed on arrays - // see https://linear.app/hash/issue/H-3368/remove-const-from-array-constraints - } else if (!isArrayConstraints(dataType)) { - return expectedValuesDisplayMap.emptyList; } else if (!dataType.items) { return expectedValuesDisplayMap.mixedArray; } else {