From 41537a78e1beb387722e46bcc476823e68bf8532 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Tue, 1 Dec 2015 22:57:54 +0100 Subject: [PATCH] Fix: Array additions (append, insert) should not cause an additional py__iter__ entry if there's none. --- jedi/evaluate/iterable.py | 8 ++++++-- test/completion/comprehensions.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 3cbf9bb4..d8831bc5 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -316,7 +316,9 @@ class Array(IterableWrapper, ArrayMixin): for value in iterate: yield self._evaluator.eval_element(value) - yield check_array_additions(self._evaluator, self) + additions = check_array_additions(self._evaluator, self) + if additions: + yield additions def _values(self): """Returns a list of a list of node.""" @@ -709,7 +711,9 @@ class _ArrayInstance(IterableWrapper): yield types module = self.var_args.get_parent_until() is_list = str(self.instance.name) == 'list' - yield _check_array_additions(self._evaluator, self.instance, module, is_list) + additions = _check_array_additions(self._evaluator, self.instance, module, is_list) + if additions: + yield additions class Slice(object): diff --git a/test/completion/comprehensions.py b/test/completion/comprehensions.py index 27b3c627..f3f15de9 100644 --- a/test/completion/comprehensions.py +++ b/test/completion/comprehensions.py @@ -44,7 +44,7 @@ left, right = [x for x in (left, right)] left # with a dict literal -#? str() +#? int() [a for a in {1:'x'}][0] # list comprehensions should also work in combination with functions