mirror of
https://github.com/astral-sh/ruff.git
synced 2025-09-13 22:06:42 +00:00
Avoid attempting to fix PT018 in multi-statement lines (#6829)
## Summary These fixes will _always_ fail, so we should avoid trying to construct them in the first place. Closes https://github.com/astral-sh/ruff/issues/6812.
This commit is contained in:
parent
9b6e008cf1
commit
847432cacf
13 changed files with 109 additions and 52 deletions
|
@ -39,7 +39,7 @@ impl Indexer {
|
|||
let mut line_start = TextSize::default();
|
||||
|
||||
for (tok, range) in tokens.iter().flatten() {
|
||||
let trivia = &locator.contents()[TextRange::new(prev_end, range.start())];
|
||||
let trivia = locator.slice(TextRange::new(prev_end, range.start()));
|
||||
|
||||
// Get the trivia between the previous and the current token and detect any newlines.
|
||||
// This is necessary because `RustPython` doesn't emit `[Tok::Newline]` tokens
|
||||
|
@ -250,14 +250,26 @@ impl Indexer {
|
|||
Some(continuation)
|
||||
}
|
||||
|
||||
/// Return `true` if a `Stmt` appears to be part of a multi-statement line, with
|
||||
/// other statements preceding it.
|
||||
/// Return `true` if a [`Stmt`] appears to be preceded by other statements in a multi-statement
|
||||
/// line.
|
||||
pub fn preceded_by_multi_statement_line(&self, stmt: &Stmt, locator: &Locator) -> bool {
|
||||
has_leading_content(stmt.start(), locator)
|
||||
|| self
|
||||
.preceded_by_continuations(stmt.start(), locator)
|
||||
.is_some()
|
||||
}
|
||||
|
||||
/// Return `true` if a [`Stmt`] appears to be followed by other statements in a multi-statement
|
||||
/// line.
|
||||
pub fn followed_by_multi_statement_line(&self, stmt: &Stmt, locator: &Locator) -> bool {
|
||||
has_trailing_content(stmt.end(), locator)
|
||||
}
|
||||
|
||||
/// Return `true` if a [`Stmt`] appears to be part of a multi-statement line.
|
||||
pub fn in_multi_statement_line(&self, stmt: &Stmt, locator: &Locator) -> bool {
|
||||
self.followed_by_multi_statement_line(stmt, locator)
|
||||
|| self.preceded_by_multi_statement_line(stmt, locator)
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue