From c289271b81f45d0ea28ab02fce2fd2c21d90d491 Mon Sep 17 00:00:00 2001 From: Dani Alcala <112832187+clavedeluna@users.noreply.github.com> Date: Thu, 10 Nov 2022 17:40:18 -0300 Subject: Do not report `consider_iterating_dictionary` if bitwise operations are used (#7743) Co-authored-by: Pierre Sassoulas --- pylint/checkers/refactoring/recommendation_checker.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'pylint/checkers/refactoring') diff --git a/pylint/checkers/refactoring/recommendation_checker.py b/pylint/checkers/refactoring/recommendation_checker.py index f610763be..cda26e064 100644 --- a/pylint/checkers/refactoring/recommendation_checker.py +++ b/pylint/checkers/refactoring/recommendation_checker.py @@ -9,6 +9,7 @@ from astroid import nodes from pylint import checkers from pylint.checkers import utils +from pylint.interfaces import INFERENCE class RecommendationChecker(checkers.BaseChecker): @@ -85,6 +86,10 @@ class RecommendationChecker(checkers.BaseChecker): return if node.func.attrname != "keys": return + + if isinstance(node.parent, nodes.BinOp) and node.parent.op in {"&", "|", "^"}: + return + comp_ancestor = utils.get_node_first_ancestor_of_type(node, nodes.Compare) if ( isinstance(node.parent, (nodes.For, nodes.Comprehension)) @@ -101,7 +106,9 @@ class RecommendationChecker(checkers.BaseChecker): inferred.bound, nodes.Dict ): return - self.add_message("consider-iterating-dictionary", node=node) + self.add_message( + "consider-iterating-dictionary", node=node, confidence=INFERENCE + ) def _check_use_maxsplit_arg(self, node: nodes.Call) -> None: """Add message when accessing first or last elements of a str.split() or -- cgit v1.2.1