desugar: add missing seq/enum cases
This commit is contained in:
parent
68627f140e
commit
6fa46ae45d
1 changed files with 20 additions and 2 deletions
22
src/sugar.rs
22
src/sugar.rs
|
@ -247,11 +247,29 @@ impl SugaredTypeTerm {
|
|||
members.into_iter().map(|t| t.desugar(dict))
|
||||
).collect()),
|
||||
SugaredTypeTerm::Enum{ enum_repr, variants } => TypeTerm::App(
|
||||
std::iter::once( dict.parse("Enum").unwrap() ).chain(
|
||||
std::iter::once(
|
||||
if let Some(sr) = enum_repr {
|
||||
TypeTerm::Ladder(vec![
|
||||
dict.parse("Enum").unwrap(),
|
||||
sr.desugar(dict)
|
||||
])
|
||||
} else {
|
||||
dict.parse("Enum").unwrap()
|
||||
}
|
||||
).chain(
|
||||
variants.into_iter().map(|t| t.desugar(dict))
|
||||
).collect()),
|
||||
SugaredTypeTerm::Seq{ seq_repr, items } => TypeTerm::App(
|
||||
std::iter::once( dict.parse("Seq").unwrap() ).chain(
|
||||
std::iter::once(
|
||||
if let Some(sr) = seq_repr {
|
||||
TypeTerm::Ladder(vec![
|
||||
dict.parse("Seq").unwrap(),
|
||||
sr.desugar(dict)
|
||||
])
|
||||
} else {
|
||||
dict.parse("Seq").unwrap()
|
||||
}
|
||||
).chain(
|
||||
items.into_iter().map(|t| t.desugar(dict))
|
||||
).collect()),
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue