1
0
forked from VimPlug/jedi

use defined_names also for modules, fixes symbol browsing issues - fixes #344

This commit is contained in:
Dave Halter
2014-04-02 13:48:27 +02:00
parent b823a196d6
commit edb0bbd183
2 changed files with 13 additions and 20 deletions

View File

@@ -4,6 +4,7 @@ These classes are the much bigger part of the whole API, because they contain
the interesting information about completion and goto operations.
"""
import warnings
from itertools import chain
from jedi._compatibility import next, unicode, use_metaclass
from jedi import settings
@@ -523,7 +524,7 @@ class Definition(use_metaclass(CachedMetaClass, BaseDefinition)):
if isinstance(d, er.InstanceElement):
d = d.var
if isinstance(d, compiled.CompiledObject):
if isinstance(d, (compiled.CompiledObject, compiled.CompiledName)):
name = d.name
elif isinstance(d, pr.Name):
name = d.names[-1]
@@ -624,12 +625,12 @@ class Definition(use_metaclass(CachedMetaClass, BaseDefinition)):
:rtype: list of Definition
"""
d = self._definition
if isinstance(d, er.InstanceElement):
d = d.var
if isinstance(d, pr.Name):
d = d.parent
return defined_names(self._evaluator, d)
defs = self._follow_statements_imports()
# For now we don't want base classes or evaluate decorators.
defs = [d.base if isinstance(d, (er.Class, er.Function)) else d for d in defs]
iterable = (defined_names(self._evaluator, d) for d in defs)
iterable = list(iterable)
return list(chain.from_iterable(iterable))
class CallSignature(Definition):