Get at least some usages stuff right.

This commit is contained in:
Dave Halter
2014-11-22 02:05:36 +01:00
parent 22fbcf6c77
commit b82e1e28e5
4 changed files with 22 additions and 12 deletions

View File

@@ -6,7 +6,7 @@ from jedi.evaluate import imports
from jedi.evaluate import helpers
def usages(evaluator, definitions, mods):
def usages(evaluator, definition_names, mods):
"""
:param definitions: list of Name
"""
@@ -56,16 +56,25 @@ def usages(evaluator, definitions, mods):
if any(r in compare_definitions for r in compare_follow_res):
yield classes.Definition(evaluator, search)
search_name = unicode(list(definitions)[0])
compare_definitions = compare_array(definitions)
mods |= set([d.get_parent_until() for d in definitions])
names = []
search_name = unicode(list(definition_names)[0])
compare_definitions = compare_array(definition_names)
mods |= set([d.get_parent_until() for d in definition_names])
definitions = []
for m in imports.get_modules_containing_name(mods, search_name):
try:
stmts = m.used_names[search_name]
check_names = m.used_names[search_name]
except KeyError:
continue
for stmt in stmts:
for name in check_names:
result = evaluator.goto(name)
if [c in compare_definitions for c in compare_array(result)]:
definitions.append(classes.Definition(evaluator, name))
continue # TODO DELETE
stmt = name.get_definition()
if isinstance(stmt, pr.Import):
count = 0
imps = []
@@ -83,7 +92,7 @@ def usages(evaluator, definitions, mods):
else:
for call in helpers.scan_statement_for_calls(stmt, search_name, assignment_details=True):
names += check_call_for_usage(call)
return names
return definitions
def usages_add_import_modules(evaluator, definitions):

View File

@@ -1470,7 +1470,8 @@ class Param(Base):
return self.get_parent_until(IsScope)
def get_code(self):
return self.tfpdef.get_code()
df = '' if self.default is None else '=' + self.default.get_code()
return self.tfpdef.get_code() + df
def __init__old(self):
kwargs.pop('names_are_set_vars', None)

View File

@@ -93,7 +93,7 @@ ClassVar().x = ''
# Recurring use of the same var name, github #315
def f(t=None):
#! 9 ['t = None']
#! 9 ['t=None']
t = t or 1
# -----------------

View File

@@ -3,10 +3,10 @@ Renaming tests. This means search for usages.
I always leave a little bit of space to add room for additions, because the
results always contain position informations.
"""
#< 4 (0,4), (3,0), (5,0)
#< 4 (0,4), (3,0), (5,0), (17,0)
def abc(): pass
#< 0 (-3,4), (0,0), (2,0)
#< 0 (-3,4), (0,0), (2,0), (14,0)
abc.d.a.bsaasd.abc.d
abc