diff options
Diffstat (limited to 'pylint/checkers/classes.py')
-rw-r--r-- | pylint/checkers/classes.py | 11 |
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__'): |