Fix issue https://github.com/DamnWidget/anaconda/issues/449. Using self should not cause side effects in completion.

This commit is contained in:
Dave Halter
2016-07-06 18:31:47 +02:00
parent 3ad159b0aa
commit 4a19376187
3 changed files with 19 additions and 1 deletions

View File

@@ -819,7 +819,6 @@ def create_index_types(evaluator, index):
Handles slices in subscript nodes.
"""
if tree.is_node(index, 'subscript'): # subscript is a slice operation.
start, stop, step = None, None, None
result = []
for el in index.children:
if el == ':':

View File

@@ -377,6 +377,10 @@ class Name(Leaf):
self.start_pos[0], self.start_pos[1])
def is_definition(self):
if self.parent.type in ('power', 'atom_expr'):
# In `self.x = 3` self is not a definition, but x is.
return False
stmt = self.get_definition()
if stmt.type in ('funcdef', 'classdef', 'file_input', 'param'):
return self == stmt.name

View File

@@ -386,3 +386,18 @@ recursion1([1,2])[0]
for x in [1] + ['']:
#? int() str()
x
# -----------------
# For loops with attribute assignment.
# -----------------
def test_func():
x = 'asdf'
for x.something in [6,7,8]:
pass
#? str()
x
for x.something, b in [[6, 6.0]]:
pass
#? str()
x