diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index dbf83def..3a5b1747 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -164,7 +164,11 @@ class Evaluator(object): t = self.eval_element(rhs) left = precedence.calculate(self, left, operator, t) types = left - del self.predefined_if_name_dict_dict[for_stmt] + if ordered: + # If there are no for entries, we cannot iterate and the + # types are defined by += entries. Therefore the for loop + # is never called. + del self.predefined_if_name_dict_dict[for_stmt] else: types = precedence.calculate(self, left, operator, types) debug.dbg('eval_statement result %s', types) diff --git a/jedi/evaluate/iterable.py b/jedi/evaluate/iterable.py index c8928c00..3c6671dd 100644 --- a/jedi/evaluate/iterable.py +++ b/jedi/evaluate/iterable.py @@ -406,7 +406,6 @@ def ordered_elements_of_iterable(evaluator, iterable_type, all_values): ordered = [literals_to_types(evaluator, all_values)] break else: - # Try for i, types in enumerate(sequence.per_index_values()): try: ordered[i] |= types