summaryrefslogtreecommitdiff
path: root/pylint/checkers/classes.py
diff options
context:
space:
mode:
Diffstat (limited to 'pylint/checkers/classes.py')
-rw-r--r--pylint/checkers/classes.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/pylint/checkers/classes.py b/pylint/checkers/classes.py
index 3d9144d..24b862f 100644
--- a/pylint/checkers/classes.py
+++ b/pylint/checkers/classes.py
@@ -1067,12 +1067,15 @@ class SpecialMethodsChecker(BaseChecker):
def _check_iter(self, node):
try:
- infered = node.infer_call_result(node)
+ infered_values = list(node.infer_call_result(node))
except astroid.InferenceError:
return
-
- if not all(map(self._is_iterator, infered)):
- self.add_message('non-iterator-returned', node=node)
+ # cases when there're multiple values infered
+ # are skipped to reduce the number of false positives
+ if len(infered_values) == 1:
+ infered = infered_values[0]
+ if not self._is_iterator(infered):
+ self.add_message('non-iterator-returned', node=node)
def _ancestors_to_call(klass_node, method='__init__'):