Fix a small bug in the logic of finding self variables.

This commit is contained in:
Dave Halter
2015-02-25 13:54:13 +01:00
parent 30efdc5e4e
commit d7b69ab92c
2 changed files with 5 additions and 1 deletions

View File

@@ -169,7 +169,8 @@ class Instance(use_metaclass(CachedMetaClass, Executed)):
if name.value == self_name and name.prev_sibling() is None: if name.value == self_name and name.prev_sibling() is None:
trailer = name.next_sibling() trailer = name.next_sibling()
if pr.is_node(trailer, 'trailer') \ 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. name = trailer.children[1] # After dot.
if name.is_definition(): if name.is_definition():
arr = names.setdefault(name.value, []) arr = names.setdefault(name.value, [])

View File

@@ -139,6 +139,9 @@ class TestInstanceVar():
def b(self): def b(self):
#< (-4,13), (0,13) #< (-4,13), (0,13)
self._instance_var self._instance_var
# A call to self used to trigger an error, because it's also a trailer
# with two children.
self()
class NestedClass(): class NestedClass():