diff --git a/crates/aiken-project/src/blueprint/schema.rs b/crates/aiken-project/src/blueprint/schema.rs index aecb52fe..855f4dbb 100644 --- a/crates/aiken-project/src/blueprint/schema.rs +++ b/crates/aiken-project/src/blueprint/schema.rs @@ -250,36 +250,22 @@ impl Annotated { Err(Error::new(ErrorContext::UnboundTypeVariable, type_info)) } }, - Type::Tuple { elems } => match &elems[..] { - [left, right] => { - let left = Annotated::from_type(modules, left, type_parameters)? - .into_data(left) - .map_err(|e| e.backtrack(type_info))?; - let right = Annotated::from_type(modules, right, type_parameters)? - .into_data(right) - .map_err(|e| e.backtrack(type_info))?; - Ok(Schema::Data(Data::List(Items::Many(vec![ - left.annotated, - right.annotated, - ]))) - .into()) - } - _ => { - let elems = elems - .iter() - .map(|e| { - Annotated::from_type(modules, e, type_parameters) - .and_then(|s| s.into_data(e).map(|s| s.annotated)) - }) - .collect::, _>>() - .map_err(|e| e.backtrack(type_info))?; - Ok(Annotated { - title: Some("Tuple".to_owned()), - description: None, - annotated: Schema::Data(Data::List(Items::Many(elems))), + Type::Tuple { elems } => { + let elems = elems + .iter() + .map(|e| { + Annotated::from_type(modules, e, type_parameters) + .and_then(|s| s.into_data(e).map(|s| s.annotated)) }) - } - }, + .collect::, _>>() + .map_err(|e| e.backtrack(type_info))?; + + Ok(Annotated { + title: Some("Tuple".to_owned()), + description: None, + annotated: Schema::Data(Data::List(Items::Many(elems))), + }) + } Type::Fn { .. } => Err(Error::new(ErrorContext::UnexpectedFunction, type_info)), } } diff --git a/crates/aiken-project/src/blueprint/validator.rs b/crates/aiken-project/src/blueprint/validator.rs index 2c20353a..0db0d96c 100644 --- a/crates/aiken-project/src/blueprint/validator.rs +++ b/crates/aiken-project/src/blueprint/validator.rs @@ -470,6 +470,7 @@ mod test { "title": "test_module.spend", "hash": "3c6766e7a36df2aa13c0e9e6e071317ed39d05f405771c4f1a81c6cc", "datum": { + "title": "Tuple", "schema": { "dataType": "list", "items": [