add as for list rest patterns

This commit is contained in:
Folkert 2022-12-30 23:17:29 +01:00
parent aff70bb6bd
commit 8305d078a0
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
4 changed files with 44 additions and 14 deletions

View file

@ -60,7 +60,7 @@ impl<'a> Formattable for Pattern<'a> {
Pattern::As(pattern, pattern_as) => pattern.is_multiline() || pattern_as.is_multiline(),
Pattern::ListRest (opt_pattern_as) => match opt_pattern_as {
None => false,
Some(pattern_as) => pattern_as.is_multiline(),
Some((list_rest_spaces, pattern_as)) => list_rest_spaces.iter().any(|s| s.is_comment()) || pattern_as.is_multiline(),
},
Pattern::Identifier(_)
@ -232,7 +232,10 @@ impl<'a> Formattable for Pattern<'a> {
buf.indent(indent);
buf.push_str("..");
if let Some(pattern_as) = opt_pattern_as {
if let Some((list_rest_spaces, pattern_as)) = opt_pattern_as {
// these spaces "belong" to the `..`, which can never be multiline
fmt_comments_only(buf, list_rest_spaces.iter(), NewlineAt::Bottom, indent);
pattern_as.format(buf, indent + INDENT);
}
}