diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index 6c65ddf8..5b2abaf9 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -164,8 +164,8 @@ class Evaluator(object): # Iterate through result and add the values, that's possible # only in for loops without clutter, because they are # predictable. Also only do it, if the variable is not a tuple. - for_iterable = self.eval_element(for_stmt.get_input_node()) - ordered = iterable.ordered_elements_of_iterable(self, for_iterable, types) + for_iterables = self.eval_element(for_stmt.get_input_node()) + ordered = list(iterable.py__iter__(self, for_iterables)) for index_types in ordered: dct = {str(for_stmt.children[1]): index_types} diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index 965e1b6c..3fd0373a 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -152,7 +152,7 @@ class Comprehension(IterableWrapper): def py__iter__(self): def nested(input_types, comp_fors): - iterated = ordered_elements_of_iterable(evaluator, input_types, []) + iterated = py__iter__(evaluator, input_types) comp_for = comp_fors[0] exprlist = comp_for.children[1] for types in iterated: @@ -469,7 +469,7 @@ def unpack_tuple_to_dict(evaluator, types, exprlist): 'testlist_star_expr'): dct = {} parts = iter(exprlist.children[::2]) - for iter_types in ordered_elements_of_iterable(evaluator, types, []): + for iter_types in py__iter__(evaluator, types): try: part = next(parts) except StopIteration: diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index a4d03428..1e6b83b1 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -689,7 +689,7 @@ class FunctionExecution(Executed): yield evaluator.eval_element(yield_.children[1]) else: for_types = evaluator.eval_element(for_stmt.get_input_node()) - ordered = iterable.ordered_elements_of_iterable(evaluator, for_types, set()) + ordered = iterable.py__iter__(evaluator, for_types) for index_types in ordered: dct = {str(for_stmt.children[1]): index_types} evaluator.predefined_if_name_dict_dict[for_stmt] = dct diff --git a/jedi/evaluate/stdlib.py b/jedi/evaluate/stdlib.py index 68b42053..b52ca1d7 100644 --- a/jedi/evaluate/stdlib.py +++ b/jedi/evaluate/stdlib.py @@ -164,7 +164,7 @@ def builtins_reversed(evaluator, sequences, obj, arguments): # values again. all_sequence_types = get_iterable_content(evaluator, arguments, 0) - ordered = iterable.ordered_elements_of_iterable(evaluator, sequences, all_sequence_types) + ordered = list(iterable.py__iter__(evaluator, sequences)) rev = [iterable.AlreadyEvaluated(o) for o in reversed(ordered)] # Repack iterator values and then run it the normal way. This is