From e947124d83cd5dae73ce6c653675512097232017 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Thu, 15 Oct 2015 03:24:21 +0200 Subject: [PATCH] Small improvments to the += / for logic. --- jedi/evaluate/__init__.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/jedi/evaluate/__init__.py b/jedi/evaluate/__init__.py index ee94da34..049a3ba6 100644 --- a/jedi/evaluate/__init__.py +++ b/jedi/evaluate/__init__.py @@ -134,7 +134,8 @@ class Evaluator(object): :param stmt: A `tree.ExprStmt`. """ debug.dbg('eval_statement %s (%s)', stmt, seek_name) - types = self.eval_element(stmt.get_rhs()) + rhs = stmt.get_rhs() + types = self.eval_element(rhs) if seek_name: types = finder.check_tuple_assignments(types, seek_name) @@ -150,8 +151,7 @@ class Evaluator(object): for_stmt = stmt.get_parent_until(tree.ForStmt) if isinstance(for_stmt, tree.ForStmt) and types \ - and isinstance(for_stmt.children[1], tree.Name) \ - and self.predefined_if_name_dict_dict.get(for_stmt) is None: + and isinstance(for_stmt.children[1], tree.Name): # 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. @@ -159,9 +159,9 @@ class Evaluator(object): ordered = iterable.ordered_elements_of_iterable(self, for_iterable, types) for index_types in ordered: - dct = {for_stmt.children[1]: index_types} + dct = {str(for_stmt.children[1]): index_types} self.predefined_if_name_dict_dict[for_stmt] = dct - t = self.eval_statement(stmt) + t = self.eval_element(rhs) left = precedence.calculate(self, left, operator, t) types = left del self.predefined_if_name_dict_dict[for_stmt] @@ -176,7 +176,7 @@ class Evaluator(object): elif isinstance(element, iterable.MergedNodes): return set(iterable.unite(self.eval_element(e) for e in element)) - parent = element.get_parent_until((tree.IfStmt, tree.IsScope)) + parent = element.get_parent_until((tree.IfStmt, tree.ForStmt, tree.IsScope)) predefined_if_name_dict = self.predefined_if_name_dict_dict.get(parent) if not predefined_if_name_dict and isinstance(parent, tree.IfStmt): if_stmt = parent.children[1]