diff --git a/bugbear.py b/bugbear.py index 358c02f..06e598d 100644 --- a/bugbear.py +++ b/bugbear.py @@ -824,6 +824,11 @@ def visit_DictComp(self, node): def visit_comprehension(self, node): self.visit(node.iter) + def visit_Lambda(self, node): + self.visit(node.body) + for lambda_arg in node.args.args: + self.names.pop(lambda_arg.arg, None) + error = namedtuple("error", "lineno col message type vars") Error = partial(partial, error, type=BugBearChecker, vars=()) diff --git a/tests/b020.py b/tests/b020.py index 4f30984..9bdc4b4 100644 --- a/tests/b020.py +++ b/tests/b020.py @@ -35,3 +35,6 @@ # However we still call out reassigning the iterable in the comprehension. for vars in [i for i in vars]: print(vars) + +for var in sorted(range(10), key=lambda var: var.real): + print(var)