dict assignment renaming -> fixes #20

This commit is contained in:
David Halter
2012-09-22 18:19:47 +02:00
parent eefac2a473
commit 7c45d84721
2 changed files with 29 additions and 2 deletions

View File

@@ -361,6 +361,19 @@ def related_names(definitions, search_name, mods):
if not definitions:
return set()
def is_definition(arr):
try:
for a in arr:
assert len(a) == 1
a = a[0]
if a.isinstance(parsing.Array):
assert is_definition(a)
elif a.isinstance(parsing.Call):
assert a.execution is None
return True
except AssertionError:
return False
mods |= set([d.get_parent_until() for d in definitions])
names = []
for m in get_directory_modules_for_name(mods, search_name):
@@ -388,8 +401,11 @@ def related_names(definitions, search_name, mods):
if set(f) & set(definitions):
names.append(RelatedName(name_part, stmt))
else:
ass = stmt.get_assignment_calls()
for call in _scan_array(ass, search_name):
calls = _scan_array(stmt.get_assignment_calls(), search_name)
for d in stmt.assignment_details:
if not is_definition(d[1]):
calls += _scan_array(d[1], search_name)
for call in calls:
names += check_call(call)
return names