diff options
author | Tushar Sadhwani <86737547+tushar-deepsource@users.noreply.github.com> | 2021-12-28 20:56:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-28 16:26:53 +0100 |
commit | 8367a571203a3cf0242394e21a24a67566de44f8 (patch) | |
tree | 685d1b15c0d734aef485f510d24791053013f986 | |
parent | 39b52acd856473ca43a829f44d1a1145a326098b (diff) | |
download | pylint-git-8367a571203a3cf0242394e21a24a67566de44f8.tar.gz |
Fix reported node for `unnecessary-comprehension` (#5601)
3 files changed, 19 insertions, 17 deletions
diff --git a/pylint/checkers/refactoring/refactoring_checker.py b/pylint/checkers/refactoring/refactoring_checker.py index acaf7191c..d08ad8bdc 100644 --- a/pylint/checkers/refactoring/refactoring_checker.py +++ b/pylint/checkers/refactoring/refactoring_checker.py @@ -1589,7 +1589,9 @@ class RefactoringChecker(checkers.BaseTokenChecker): ): args = (f"{node.iter.as_string()}",) if args: - self.add_message("unnecessary-comprehension", node=node, args=args) + self.add_message( + "unnecessary-comprehension", node=node.parent, args=args + ) return if isinstance(node.parent, nodes.DictComp): @@ -1603,7 +1605,7 @@ class RefactoringChecker(checkers.BaseTokenChecker): self.add_message( "unnecessary-comprehension", - node=node, + node=node.parent, args=(f"{func}({node.iter.as_string()})",), ) diff --git a/tests/functional/u/unnecessary/unnecessary_comprehension.py b/tests/functional/u/unnecessary/unnecessary_comprehension.py index 3d76f6e66..2647898c9 100644 --- a/tests/functional/u/unnecessary/unnecessary_comprehension.py +++ b/tests/functional/u/unnecessary/unnecessary_comprehension.py @@ -14,14 +14,14 @@ [(x, y, 1) for x, y in iterable] # exclude useful comprehensions # Test case for issue #4499 a_dict = {} -[(k, v) for k, v in a_dict.items()] # [unnecessary-comprehension] +item = [(k, v) for k, v in a_dict.items()] # [unnecessary-comprehension] # Set comprehensions {x for x in iterable} # [unnecessary-comprehension] {y for x in iterable} # expression != target_list {x for x,y,z in iterable} # expression != target_list {(x,y,z) for x,y,z in iterable} # [unnecessary-comprehension] -{(x,y,z) for (x, y, z) in iterable} # [unnecessary-comprehension] +item = {(x,y,z) for (x, y, z) in iterable} # [unnecessary-comprehension] {(x,y,z) for x in iterable} # expression != target_list {(x,y,(a,b,c)) for x in iterable} # expression != target_list {x for x, *y in iterable} # expression != target_list @@ -44,6 +44,6 @@ my_dict = {} my_set = set() [elem for elem in my_list] # [unnecessary-comprehension] -{k: v for k, v in my_dict.items()} # [unnecessary-comprehension] +items = {k: v for k, v in my_dict.items()} # [unnecessary-comprehension] {k: my_dict[k] for k in my_dict} # [consider-using-dict-items] {elem for elem in my_set} # [unnecessary-comprehension] diff --git a/tests/functional/u/unnecessary/unnecessary_comprehension.txt b/tests/functional/u/unnecessary/unnecessary_comprehension.txt index 6093bdba8..d316fcdc8 100644 --- a/tests/functional/u/unnecessary/unnecessary_comprehension.txt +++ b/tests/functional/u/unnecessary/unnecessary_comprehension.txt @@ -1,13 +1,13 @@ -unnecessary-comprehension:5:0:None:None::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED -unnecessary-comprehension:8:0:None:None::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED -unnecessary-comprehension:9:0:None:None::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED -unnecessary-comprehension:17:0:None:None::Unnecessary use of a comprehension, use list(a_dict.items()) instead.:UNDEFINED -unnecessary-comprehension:20:0:None:None::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED -unnecessary-comprehension:23:0:None:None::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED -unnecessary-comprehension:24:0:None:None::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED -unnecessary-comprehension:32:0:None:None::Unnecessary use of a comprehension, use dict(iterable) instead.:UNDEFINED -unnecessary-comprehension:34:0:None:None::Unnecessary use of a comprehension, use dict(iterable) instead.:UNDEFINED -unnecessary-comprehension:46:0:None:None::Unnecessary use of a comprehension, use my_list instead.:UNDEFINED -unnecessary-comprehension:47:0:None:None::Unnecessary use of a comprehension, use my_dict instead.:UNDEFINED +unnecessary-comprehension:5:0:5:21::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED +unnecessary-comprehension:8:0:8:31::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED +unnecessary-comprehension:9:0:9:33::Unnecessary use of a comprehension, use list(iterable) instead.:UNDEFINED +unnecessary-comprehension:17:7:17:42::Unnecessary use of a comprehension, use list(a_dict.items()) instead.:UNDEFINED +unnecessary-comprehension:20:0:20:21::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED +unnecessary-comprehension:23:0:23:31::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED +unnecessary-comprehension:24:7:24:42::Unnecessary use of a comprehension, use set(iterable) instead.:UNDEFINED +unnecessary-comprehension:32:0:32:27::Unnecessary use of a comprehension, use dict(iterable) instead.:UNDEFINED +unnecessary-comprehension:34:0:34:29::Unnecessary use of a comprehension, use dict(iterable) instead.:UNDEFINED +unnecessary-comprehension:46:0:46:26::Unnecessary use of a comprehension, use my_list instead.:UNDEFINED +unnecessary-comprehension:47:8:47:42::Unnecessary use of a comprehension, use my_dict instead.:UNDEFINED consider-using-dict-items:48:0:None:None::Consider iterating with .items():UNDEFINED -unnecessary-comprehension:49:0:None:None::Unnecessary use of a comprehension, use my_set instead.:UNDEFINED +unnecessary-comprehension:49:0:49:25::Unnecessary use of a comprehension, use my_set instead.:UNDEFINED |