mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:48:32 +00:00
Avoid printing continuations within import identifiers (#7744)
## Summary It turns out that _some_ identifiers can contain newlines -- specifically, dot-delimited import identifiers, like: ```python import foo\ .bar ``` At present, we print all identifiers verbatim, which causes us to retain the `\` in the formatted output. This also leads to violating some debug assertions (see the linked issue, though that's a symptom of this formatting failure). This PR adds detection for import identifiers that contain newlines, and formats them via `text` (slow) rather than `source_code_slice` (fast) in those cases. Closes https://github.com/astral-sh/ruff/issues/7734. ## Test Plan `cargo test`
This commit is contained in:
parent
0df27375ba
commit
c71ff7eae1
5 changed files with 63 additions and 2 deletions
|
@ -8,6 +8,13 @@ from a import aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjf
|
|||
from a import aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa, aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa
|
||||
from a import aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa as dfgsdfgsd, aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa as sdkjflsdjlahlfd
|
||||
|
||||
# Continuations.
|
||||
import foo\
|
||||
.bar
|
||||
|
||||
from foo\
|
||||
.bar import baz
|
||||
|
||||
# At the top-level, force one empty line after an import, but allow up to two empty
|
||||
# lines.
|
||||
import os
|
||||
|
@ -98,6 +105,11 @@ from a import (
|
|||
aksjdhflsakhdflkjsadlfajkslhfdkjsaldajlahflashdfljahlfksajlhfajfjfsaahflakjslhdfkjalhdskjfa as sdkjflsdjlahlfd,
|
||||
)
|
||||
|
||||
# Continuations.
|
||||
import foo.bar
|
||||
|
||||
from foo.bar import baz
|
||||
|
||||
# At the top-level, force one empty line after an import, but allow up to two empty
|
||||
# lines.
|
||||
import os
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue