Skip to content

Commit 23c1e7e

Browse files
authored
[refurb] Check subscripts in tuple do not use lambda parameters in reimplemented-operator (FURB118) (#23079)
Closes #23076
1 parent ddd192a commit 23c1e7e

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

crates/ruff_linter/resources/test/fixtures/refurb/FURB118.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,7 @@ def custom_decorator(func):
163163
@custom_decorator
164164
def add(x, y):
165165
return x + y
166+
167+
# Regression https://github.com/astral-sh/ruff/issues/23076
168+
def func(rows):
169+
rows.sort(key=lambda x: (x[x.find("=")], x[1]))

crates/ruff_linter/src/rules/refurb/rules/reimplemented_operator.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,12 @@ fn itemgetter_op_tuple(
311311
.iter()
312312
.map(|expr| {
313313
expr.as_subscript_expr()
314-
.filter(|expr| is_same_expression(arg, &expr.value))
314+
.filter(|expr| {
315+
is_same_expression(arg, &expr.value)
316+
&& !any_over_expr(expr.slice.as_ref(), &|expr| {
317+
is_same_expression(arg, expr)
318+
})
319+
})
315320
.map(|expr| expr.slice.as_ref())
316321
.map(|slice| subscript_slice_to_string(slice, locator).to_string())
317322
})

0 commit comments

Comments
 (0)