summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTushar Sadhwani <86737547+tushar-deepsource@users.noreply.github.com>2021-12-28 20:56:53 +0530
committerGitHub <noreply@github.com>2021-12-28 16:26:53 +0100
commit8367a571203a3cf0242394e21a24a67566de44f8 (patch)
tree685d1b15c0d734aef485f510d24791053013f986
parent39b52acd856473ca43a829f44d1a1145a326098b (diff)
downloadpylint-git-8367a571203a3cf0242394e21a24a67566de44f8.tar.gz
Fix reported node for `unnecessary-comprehension` (#5601)
-rw-r--r--pylint/checkers/refactoring/refactoring_checker.py6
-rw-r--r--tests/functional/u/unnecessary/unnecessary_comprehension.py6
-rw-r--r--tests/functional/u/unnecessary/unnecessary_comprehension.txt24
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