type of NamePart in definition should work.

This commit is contained in:
Dave Halter
2014-04-18 01:31:07 +02:00
parent fe98940624
commit b643325889
6 changed files with 15 additions and 8 deletions

View File

@@ -518,7 +518,7 @@ class Script(object):
names = usages.usages(self._evaluator, definitions, search_name, module) names = usages.usages(self._evaluator, definitions, search_name, module)
for d in set(definitions): for d in set(definitions):
if isinstance(d, pr.Module): if isinstance(d, (pr.Module, compiled.CompiledObject)):
names.append(usages.Usage(self._evaluator, d, d)) names.append(usages.Usage(self._evaluator, d, d))
elif isinstance(d, er.Instance): elif isinstance(d, er.Instance):
# Instances can be ignored, because they have been created by # Instances can be ignored, because they have been created by

View File

@@ -137,6 +137,8 @@ class BaseDefinition(object):
return stripped.type() return stripped.type()
if isinstance(stripped, er.InstanceElement): if isinstance(stripped, er.InstanceElement):
stripped = stripped.var stripped = stripped.var
if isinstance(stripped, pr.NamePart):
stripped = stripped.parent
if isinstance(stripped, pr.Name): if isinstance(stripped, pr.Name):
stripped = stripped.parent stripped = stripped.parent
return type(stripped).__name__.lower() return type(stripped).__name__.lower()

View File

@@ -9,10 +9,10 @@ from jedi.evaluate import helpers
class Usage(classes.Definition): class Usage(classes.Definition):
"""TODO: document this""" """TODO: document this"""
def __init__(self, evaluator, name_part, scope): def __init__(self, evaluator, name_part, scope):
super(Usage, self).__init__(evaluator, scope) super(Usage, self).__init__(evaluator, name_part)
self._start_pos = name_part.start_pos self._start_pos = name_part.start_pos
self.text = unicode(name_part) self.text = unicode(name_part)
self.end_pos = name_part.end_pos #self.end_pos = name_part.end_pos
@property @property
def description(self): def description(self):

View File

@@ -1395,6 +1395,9 @@ class NamePart(object):
def __hash__(self): def __hash__(self):
return hash(self.string) return hash(self.string)
def get_parent_until(self, *args, **kwargs):
return self.parent.get_parent_until(*args, **kwargs)
@property @property
def start_pos(self): def start_pos(self):
offset = self.parent._sub_module.line_offset offset = self.parent._sub_module.line_offset

View File

@@ -255,7 +255,7 @@ check(DynamicParam())
# Compiled Objects # Compiled Objects
# ----------------- # -----------------
import sys import _sre
#< 0 (-3,7), (0,0) #< 0 (-3,7), (0,0), ('_sre', None, None)
sys _sre

View File

@@ -221,8 +221,10 @@ class IntegrationTestCase(object):
# this means that there is a module specified # this means that there is a module specified
wanted.append(pos_tup) wanted.append(pos_tup)
else: else:
wanted.append((self.module_name, self.line_nr + pos_tup[0], line = pos_tup[0]
pos_tup[1])) if pos_tup[0] is not None:
line += self.line_nr
wanted.append((self.module_name, line, pos_tup[1]))
return compare_cb(self, compare, sorted(wanted)) return compare_cb(self, compare, sorted(wanted))