Fix inconsistent expr_lambda formatting (#6318)

This commit is contained in:
qdegraaf 2023-09-08 11:40:58 +02:00 committed by GitHub
parent c260762900
commit 05951dd338
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 109 additions and 4 deletions

View file

@ -118,3 +118,38 @@ lambda a, /, c: a
# 4
None # 5
)
(
lambda
# comment
*x: x
)
(
lambda
# comment 1
*
# comment 2
x:
# comment 3
x
)
(
lambda # comment 1
* # comment 2
x: # comment 3
x
)
lambda *x\
:x
(
lambda
# comment
*\
x: x
)

View file

@ -43,6 +43,11 @@ impl FormatNodeRule<ExprLambda> for FormatExprLambda {
write!(f, [dangling_comments(dangling)])?;
}
// Insert hard line break if body has leading comment to ensure consistent formatting
if comments.has_leading(body.as_ref()) {
write!(f, [hard_line_break()])?;
}
write!(f, [body.format()])
}

View file

@ -124,6 +124,41 @@ lambda a, /, c: a
# 4
None # 5
)
(
lambda
# comment
*x: x
)
(
lambda
# comment 1
*
# comment 2
x:
# comment 3
x
)
(
lambda # comment 1
* # comment 2
x: # comment 3
x
)
lambda *x\
:x
(
lambda
# comment
*\
x: x
)
```
## Output
@ -185,7 +220,8 @@ lambda x: lambda y: lambda z: (
# Trailing
a = (
lambda: # Dangling
lambda:
# Dangling
1
)
@ -232,22 +268,51 @@ lambda a, /, c: a
# Dangling comments without parameters.
(
lambda: # 3
lambda:
# 3
None
)
(
lambda: # 3
lambda:
# 3
None
)
(
lambda: # 1
lambda:
# 1
# 2
# 3
# 4
None # 5
)
(
lambda # comment
*x: x
)
(
lambda # comment 1
# comment 2
*x:
# comment 3
x
)
(
lambda # comment 1
# comment 2
*x: x # comment 3
)
lambda *x: x
(
lambda # comment
*x: x
)
```