From d7b69ab92cf44e0d6da9e9632cc49c0523ac2902 Mon Sep 17 00:00:00 2001 From: Dave Halter Date: Wed, 25 Feb 2015 13:54:13 +0100 Subject: [PATCH] Fix a small bug in the logic of finding self variables. --- jedi/evaluate/representation.py | 3 ++- test/completion/usages.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/jedi/evaluate/representation.py b/jedi/evaluate/representation.py index 4c1a4938..5fcbb186 100644 --- a/jedi/evaluate/representation.py +++ b/jedi/evaluate/representation.py @@ -169,7 +169,8 @@ class Instance(use_metaclass(CachedMetaClass, Executed)): if name.value == self_name and name.prev_sibling() is None: trailer = name.next_sibling() if pr.is_node(trailer, 'trailer') \ - and len(trailer.children) == 2: + and len(trailer.children) == 2 \ + and trailer.children[0] == '.': name = trailer.children[1] # After dot. if name.is_definition(): arr = names.setdefault(name.value, []) diff --git a/test/completion/usages.py b/test/completion/usages.py index e47a9b1c..cc51326a 100644 --- a/test/completion/usages.py +++ b/test/completion/usages.py @@ -139,6 +139,9 @@ class TestInstanceVar(): def b(self): #< (-4,13), (0,13) self._instance_var + # A call to self used to trigger an error, because it's also a trailer + # with two children. + self() class NestedClass():