forked from VimPlug/jedi
Remove the disabling of dynamic flow information
We should be able to handle this anyway also in completions. Don't hide issues here.
This commit is contained in:
@@ -241,34 +241,29 @@ class Script(object):
|
|||||||
|
|
||||||
:rtype: list of :class:`classes.Definition`
|
:rtype: list of :class:`classes.Definition`
|
||||||
"""
|
"""
|
||||||
temp, settings.dynamic_flow_information = \
|
module_node = self._get_module_node()
|
||||||
settings.dynamic_flow_information, False
|
user_stmt = get_statement_of_position(module_node, self._pos)
|
||||||
try:
|
definition_names = self._goto()
|
||||||
module_node = self._get_module_node()
|
if not definition_names and isinstance(user_stmt, tree.Import):
|
||||||
user_stmt = get_statement_of_position(module_node, self._pos)
|
# For not defined imports (goto doesn't find something, we take
|
||||||
definition_names = self._goto()
|
# the name as a definition. This is enough, because every name
|
||||||
if not definition_names and isinstance(user_stmt, tree.Import):
|
# points to it.
|
||||||
# For not defined imports (goto doesn't find something, we take
|
name = user_stmt.get_name_of_position(self._pos)
|
||||||
# the name as a definition. This is enough, because every name
|
if name is None:
|
||||||
# points to it.
|
# Must be syntax
|
||||||
name = user_stmt.get_name_of_position(self._pos)
|
|
||||||
if name is None:
|
|
||||||
# Must be syntax
|
|
||||||
return []
|
|
||||||
definition_names = [TreeNameDefinition(self._get_module(), name)]
|
|
||||||
|
|
||||||
if not definition_names:
|
|
||||||
# Without a definition for a name we cannot find references.
|
|
||||||
return []
|
return []
|
||||||
|
definition_names = [TreeNameDefinition(self._get_module(), name)]
|
||||||
|
|
||||||
definition_names = usages.resolve_potential_imports(self._evaluator,
|
if not definition_names:
|
||||||
definition_names)
|
# Without a definition for a name we cannot find references.
|
||||||
|
return []
|
||||||
|
|
||||||
modules = set([d.get_root_context() for d in definition_names])
|
definition_names = usages.resolve_potential_imports(self._evaluator,
|
||||||
modules.add(self._get_module())
|
definition_names)
|
||||||
definitions = usages.usages(self._evaluator, definition_names, modules)
|
|
||||||
finally:
|
modules = set([d.get_root_context() for d in definition_names])
|
||||||
settings.dynamic_flow_information = temp
|
modules.add(self._get_module())
|
||||||
|
definitions = usages.usages(self._evaluator, definition_names, modules)
|
||||||
|
|
||||||
return helpers.sorted_definitions(set(definitions))
|
return helpers.sorted_definitions(set(definitions))
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from jedi.evaluate import compiled
|
|||||||
from jedi.evaluate.base_context import TreeContext
|
from jedi.evaluate.base_context import TreeContext
|
||||||
from jedi.evaluate.imports import SubModuleName, infer_import
|
from jedi.evaluate.imports import SubModuleName, infer_import
|
||||||
|
|
||||||
|
|
||||||
class _ModuleAttributeName(AbstractNameDefinition):
|
class _ModuleAttributeName(AbstractNameDefinition):
|
||||||
"""
|
"""
|
||||||
For module attributes like __file__, __str__ and so on.
|
For module attributes like __file__, __str__ and so on.
|
||||||
|
|||||||
Reference in New Issue
Block a user