From d2eace33776586c7ab6fcdcd49aef454517d6324 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Tue, 22 Aug 2023 11:46:04 -0400 Subject: [PATCH] Prefer `range_*` edit methods (#6751) --- crates/ruff/src/autofix/edits.rs | 10 ++++------ .../rules/flake8_pyi/rules/duplicate_union_member.rs | 4 ++-- .../pyupgrade/rules/lru_cache_without_parameters.rs | 5 +---- 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/crates/ruff/src/autofix/edits.rs b/crates/ruff/src/autofix/edits.rs index f55381b1e6..0a41c8bfc2 100644 --- a/crates/ruff/src/autofix/edits.rs +++ b/crates/ruff/src/autofix/edits.rs @@ -11,7 +11,7 @@ use ruff_python_trivia::{ has_leading_content, is_python_whitespace, PythonWhitespace, SimpleTokenKind, SimpleTokenizer, }; use ruff_source_file::{Locator, NewlineWithTrailingNewline}; -use ruff_text_size::{TextLen, TextRange, TextSize}; +use ruff_text_size::{TextLen, TextSize}; use crate::autofix::codemods; @@ -48,7 +48,7 @@ pub(crate) fn delete_stmt( } else if has_leading_content(stmt.start(), locator) { Edit::range_deletion(stmt.range()) } else if let Some(start) = indexer.preceded_by_continuations(stmt.start(), locator) { - Edit::range_deletion(TextRange::new(start, stmt.end())) + Edit::deletion(start, stmt.end()) } else { let range = locator.full_lines_range(stmt.range()); Edit::range_deletion(range) @@ -133,10 +133,8 @@ pub(crate) fn remove_argument( // Case 3: argument or keyword is the only node, so delete the arguments (but preserve // parentheses, if needed). Ok(match parentheses { - Parentheses::Remove => Edit::deletion(arguments.start(), arguments.end()), - Parentheses::Preserve => { - Edit::replacement("()".to_string(), arguments.start(), arguments.end()) - } + Parentheses::Remove => Edit::range_deletion(arguments.range()), + Parentheses::Preserve => Edit::range_replacement("()".to_string(), arguments.range()), }) } } diff --git a/crates/ruff/src/rules/flake8_pyi/rules/duplicate_union_member.rs b/crates/ruff/src/rules/flake8_pyi/rules/duplicate_union_member.rs index bba1ef58e2..74b15ad9c5 100644 --- a/crates/ruff/src/rules/flake8_pyi/rules/duplicate_union_member.rs +++ b/crates/ruff/src/rules/flake8_pyi/rules/duplicate_union_member.rs @@ -50,12 +50,12 @@ pub(crate) fn duplicate_union_member<'a>(checker: &mut Checker, expr: &'a Expr) // parent without the duplicate. // If the parent node is not a `BinOp` we will not perform a fix - if let Some(Expr::BinOp(ast::ExprBinOp { left, right, .. })) = parent { + if let Some(parent @ Expr::BinOp(ast::ExprBinOp { left, right, .. })) = parent { // Replace the parent with its non-duplicate child. let child = if expr == left.as_ref() { right } else { left }; diagnostic.set_fix(Fix::automatic(Edit::range_replacement( checker.locator().slice(child.range()).to_string(), - parent.unwrap().range(), + parent.range(), ))); } } diff --git a/crates/ruff/src/rules/pyupgrade/rules/lru_cache_without_parameters.rs b/crates/ruff/src/rules/pyupgrade/rules/lru_cache_without_parameters.rs index bbb7853784..09ba48c0ba 100644 --- a/crates/ruff/src/rules/pyupgrade/rules/lru_cache_without_parameters.rs +++ b/crates/ruff/src/rules/pyupgrade/rules/lru_cache_without_parameters.rs @@ -78,10 +78,7 @@ pub(crate) fn lru_cache_without_parameters(checker: &mut Checker, decorator_list TextRange::new(func.end(), decorator.end()), ); if checker.patch(diagnostic.kind.rule()) { - diagnostic.set_fix(Fix::automatic(Edit::deletion( - arguments.start(), - arguments.end(), - ))); + diagnostic.set_fix(Fix::automatic(Edit::range_deletion(arguments.range()))); } checker.diagnostics.push(diagnostic); }