Skip to content

Commit b1e4ef2

Browse files
NewGladAlexey
and
Alexey
authored
Ignore lambda arguments for B020 (#259)
* Ignore "variable.attribute" expression for B020 * use visit_Lambda method to remove used args from catched names Co-authored-by: Alexey <[email protected]>
1 parent 0d54ee6 commit b1e4ef2

File tree

2 files changed

+8
-0
lines changed

2 files changed

+8
-0
lines changed

bugbear.py

+5
Original file line numberDiff line numberDiff line change
@@ -824,6 +824,11 @@ def visit_DictComp(self, node):
824824
def visit_comprehension(self, node):
825825
self.visit(node.iter)
826826

827+
def visit_Lambda(self, node):
828+
self.visit(node.body)
829+
for lambda_arg in node.args.args:
830+
self.names.pop(lambda_arg.arg, None)
831+
827832

828833
error = namedtuple("error", "lineno col message type vars")
829834
Error = partial(partial, error, type=BugBearChecker, vars=())

tests/b020.py

+3
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,6 @@
3535
# However we still call out reassigning the iterable in the comprehension.
3636
for vars in [i for i in vars]:
3737
print(vars)
38+
39+
for var in sorted(range(10), key=lambda var: var.real):
40+
print(var)

0 commit comments

Comments
 (0)