Avoid unstable formatting in ellipsis-only body with trailing comment (#8984)

## Summary

We should avoid inlining the ellipsis in:

```python
def h():
    ...
    # bye
```

Just as we omit the ellipsis in:

```python
def h():
    # bye
    ...
```

Closes https://github.com/astral-sh/ruff/issues/8905.
This commit is contained in:
Charlie Marsh 2023-12-03 19:15:40 -05:00 committed by GitHub
parent bfae1f1412
commit 6fe8f8a272
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 3 deletions

View file

@ -68,6 +68,10 @@ with True:
with True: with True:
... # comment ... # comment
with True:
...
# comment
match x: match x:
case 1: case 1:
... ...

View file

@ -511,7 +511,9 @@ pub(crate) fn contains_only_an_ellipsis(body: &[Stmt], comments: &Comments) -> b
let [node] = body else { let [node] = body else {
return false; return false;
}; };
value.is_ellipsis_literal_expr() && !comments.has_leading(node) value.is_ellipsis_literal_expr()
&& !comments.has_leading(node)
&& !comments.has_trailing_own_line(node)
} }
_ => false, _ => false,
} }

View file

@ -74,6 +74,10 @@ with True:
with True: with True:
... # comment ... # comment
with True:
...
# comment
match x: match x:
case 1: case 1:
... ...
@ -105,7 +109,8 @@ try:
except: except:
... # comment ... # comment
finally: finally:
... # comment``` ... # comment
```
## Output ## Output
```python ```python
@ -163,6 +168,10 @@ with True:
with True: ... # comment with True: ... # comment
with True:
...
# comment
match x: match x:
case 1: ... case 1: ...
case 2: case 2: