Misc. follow-ups to single-element tuple patterns (#7698)

Just changes to internal comments and tests.

See comments in https://github.com/astral-sh/ruff/pull/7683.
This commit is contained in:
Charlie Marsh 2023-09-28 14:49:13 -04:00 committed by GitHub
parent 1c02fcd7ce
commit 46b85ab0a9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 140 additions and 1 deletions

View file

@ -522,3 +522,45 @@ match pattern:
case a, b,:
pass
case (a, # comment
):
pass
case (a, b # comment
):
pass
case (a, b, # comment
):
pass
case ( # comment
a,
):
pass
case ( # comment
a, b
):
pass
case ( # comment
a, b,
):
pass
case (
# comment
a,):
pass
case (
# comment
a, b):
pass
case (
# comment
a, b,):
pass

View file

@ -22,7 +22,8 @@ impl FormatNodeRule<PatternMatchSequence> for FormatPatternMatchSequence {
let sequence_type = SequenceType::from_pattern(item, f.context().source());
match (patterns.as_slice(), sequence_type) {
// If the sequence is empty, the parentheses with any dangling comments.
// If the sequence is empty, format the empty parentheses, along with any dangling
// comments.
([], SequenceType::Tuple | SequenceType::TupleNoParens) => {
return empty_parenthesized("(", dangling, ")").fmt(f)
}

View file

@ -528,6 +528,48 @@ match pattern:
case a, b,:
pass
case (a, # comment
):
pass
case (a, b # comment
):
pass
case (a, b, # comment
):
pass
case ( # comment
a,
):
pass
case ( # comment
a, b
):
pass
case ( # comment
a, b,
):
pass
case (
# comment
a,):
pass
case (
# comment
a, b):
pass
case (
# comment
a, b,):
pass
```
## Output
@ -1086,6 +1128,60 @@ match pattern:
b,
):
pass
case (
a, # comment
):
pass
case (
a,
b, # comment
):
pass
case (
a,
b, # comment
):
pass
case ( # comment
a,
):
pass
case ( # comment
a,
b,
):
pass
case ( # comment
a,
b,
):
pass
case (
# comment
a,
):
pass
case (
# comment
a,
b,
):
pass
case (
# comment
a,
b,
):
pass
```