mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-01 06:11:43 +00:00
Fix F841 (UnusedVariable
) range in except handler (#1367)
This commit is contained in:
parent
cc2110449c
commit
10f75c9620
4 changed files with 32 additions and 11 deletions
|
@ -1,3 +1,4 @@
|
|||
use itertools::Itertools;
|
||||
use log::error;
|
||||
use once_cell::sync::Lazy;
|
||||
use regex::Regex;
|
||||
|
@ -396,6 +397,23 @@ pub fn identifier_range(stmt: &Stmt, locator: &SourceCodeLocator) -> Range {
|
|||
Range::from_located(stmt)
|
||||
}
|
||||
|
||||
/// Return the `Range` of `name` in `Excepthandler`.
|
||||
pub fn excepthandler_name_range(
|
||||
handler: &Excepthandler,
|
||||
locator: &SourceCodeLocator,
|
||||
) -> Option<Range> {
|
||||
let contents = locator.slice_source_code_range(&Range::from_located(handler));
|
||||
let range = lexer::make_tokenizer(&contents)
|
||||
.flatten()
|
||||
.tuple_windows()
|
||||
.find(|(tok, next_tok)| matches!(tok.1, Tok::As) && matches!(next_tok.1, Tok::Name { .. }))
|
||||
.map(|((..), (start, _, end))| Range {
|
||||
location: to_absolute(start, handler.location),
|
||||
end_location: to_absolute(end, handler.location),
|
||||
});
|
||||
range
|
||||
}
|
||||
|
||||
/// Return `true` if a `Stmt` appears to be part of a multi-statement line, with
|
||||
/// other statements preceding it.
|
||||
pub fn preceded_by_continuation(stmt: &Stmt, locator: &SourceCodeLocator) -> bool {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue