From db31536d78d8faffb09fe0fbb221d6813bcbf902 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 24 Sep 2014 16:52:44 +0200 Subject: [PATCH] Fix issue with descriptors. --- jedi/evaluate/finder.py | 6 +++--- jedi/parser/representation.py | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/jedi/evaluate/finder.py b/jedi/evaluate/finder.py index 7abf7f0e..5e656b8f 100644 --- a/jedi/evaluate/finder.py +++ b/jedi/evaluate/finder.py @@ -119,7 +119,7 @@ class NameFinder(object): if check is flow_analysis.REACHABLE: break - if names and self._is_name_break_scope(name, stmt): + if names and self._is_name_break_scope(stmt): if self._does_scope_break_immediately(scope, name_list_scope): break else: @@ -167,12 +167,12 @@ class NameFinder(object): result = inst.execute_subscope_by_name('__getattribute__', [name]) return result - def _is_name_break_scope(self, name, stmt): + def _is_name_break_scope(self, stmt): """ Returns True except for nested imports and instance variables. """ if stmt.isinstance(pr.ExprStmt): - if isinstance(name, er.InstanceElement) and not name.is_class_var: + if isinstance(stmt, er.InstanceElement) and not stmt.is_class_var: return False elif isinstance(stmt, pr.Import) and stmt.is_nested(): return False diff --git a/jedi/parser/representation.py b/jedi/parser/representation.py index 659c1583..b3179793 100644 --- a/jedi/parser/representation.py +++ b/jedi/parser/representation.py @@ -682,7 +682,12 @@ class Flow(Scope): def add_name_call(self, name, call): """Add a name to the names_dict.""" - self.parent.add_name_call(name, call) + parent = self.parent + if isinstance(parent, Module): + # TODO this also looks like code smell. Look for opportunities to + # remove. + parent = self._sub_module + parent.add_name_call(name, call) @property def parent(self):