Parse list patterns

This commit is contained in:
Ayaz Hafiz 2022-10-26 17:03:22 -05:00
parent 02a76bb8bd
commit 4d35ab9957
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
10 changed files with 305 additions and 7 deletions

View file

@ -40,7 +40,10 @@ impl<'a> Formattable for Pattern<'a> {
| Pattern::Underscore(_)
| Pattern::Malformed(_)
| Pattern::MalformedIdent(_, _)
| Pattern::QualifiedIdentifier { .. } => false,
| Pattern::QualifiedIdentifier { .. }
| Pattern::ListRest => false,
Pattern::List(patterns) => patterns.iter().any(|p| p.is_multiline()),
}
}
@ -158,6 +161,8 @@ impl<'a> Formattable for Pattern<'a> {
buf.push('_');
buf.push_str(name);
}
List(..) => todo!(),
ListRest => todo!(),
// Space
SpaceBefore(sub_pattern, spaces) => {

View file

@ -748,7 +748,9 @@ impl<'a> RemoveSpaces<'a> for Pattern<'a> {
}
Pattern::SpaceBefore(a, _) => a.remove_spaces(arena),
Pattern::SpaceAfter(a, _) => a.remove_spaces(arena),
Pattern::SingleQuote(a) => Pattern::NumLiteral(a),
Pattern::SingleQuote(a) => Pattern::SingleQuote(a),
Pattern::List(pats) => Pattern::List(pats.remove_spaces(arena)),
Pattern::ListRest => Pattern::ListRest,
}
}
}