Remove redundant match on tuple blueprint generation.
This commit is contained in:
parent
2c987e289d
commit
a66c9bd2c3
|
@ -250,36 +250,22 @@ impl Annotated<Schema> {
|
||||||
Err(Error::new(ErrorContext::UnboundTypeVariable, type_info))
|
Err(Error::new(ErrorContext::UnboundTypeVariable, type_info))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
Type::Tuple { elems } => match &elems[..] {
|
Type::Tuple { elems } => {
|
||||||
[left, right] => {
|
let elems = elems
|
||||||
let left = Annotated::from_type(modules, left, type_parameters)?
|
.iter()
|
||||||
.into_data(left)
|
.map(|e| {
|
||||||
.map_err(|e| e.backtrack(type_info))?;
|
Annotated::from_type(modules, e, type_parameters)
|
||||||
let right = Annotated::from_type(modules, right, type_parameters)?
|
.and_then(|s| s.into_data(e).map(|s| s.annotated))
|
||||||
.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::<Result<Vec<_>, _>>()
|
|
||||||
.map_err(|e| e.backtrack(type_info))?;
|
|
||||||
Ok(Annotated {
|
|
||||||
title: Some("Tuple".to_owned()),
|
|
||||||
description: None,
|
|
||||||
annotated: Schema::Data(Data::List(Items::Many(elems))),
|
|
||||||
})
|
})
|
||||||
}
|
.collect::<Result<Vec<_>, _>>()
|
||||||
},
|
.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)),
|
Type::Fn { .. } => Err(Error::new(ErrorContext::UnexpectedFunction, type_info)),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -470,6 +470,7 @@ mod test {
|
||||||
"title": "test_module.spend",
|
"title": "test_module.spend",
|
||||||
"hash": "3c6766e7a36df2aa13c0e9e6e071317ed39d05f405771c4f1a81c6cc",
|
"hash": "3c6766e7a36df2aa13c0e9e6e071317ed39d05f405771c4f1a81c6cc",
|
||||||
"datum": {
|
"datum": {
|
||||||
|
"title": "Tuple",
|
||||||
"schema": {
|
"schema": {
|
||||||
"dataType": "list",
|
"dataType": "list",
|
||||||
"items": [
|
"items": [
|
||||||
|
|
Loading…
Reference in New Issue