1
0
forked from VimPlug/jedi

Fix conversion for contexts

This commit is contained in:
Dave Halter
2019-06-10 18:56:37 +02:00
parent 144aa97c00
commit 7f3e55df02
4 changed files with 30 additions and 23 deletions

View File

@@ -39,7 +39,7 @@ from jedi.evaluate.syntax_tree import tree_name_to_contexts
from jedi.evaluate.context import ModuleContext
from jedi.evaluate.base_context import ContextSet
from jedi.evaluate.context.iterable import unpack_tuple_to_dict
from jedi.evaluate.gradual.conversion import convert_names
from jedi.evaluate.gradual.conversion import convert_names, convert_contexts
from jedi.evaluate.gradual.utils import load_proper_stub_module
# Jedi uses lots and lots of recursion. By setting this a little bit higher, we
@@ -260,15 +260,15 @@ class Script(object):
return []
context = self._evaluator.create_context(self._get_module(), leaf)
definitions = helpers.evaluate_goto_definition(self._evaluator, context, leaf)
names = convert_names(
[s.name for s in definitions],
contexts = helpers.evaluate_goto_definition(self._evaluator, context, leaf)
contexts = convert_contexts(
contexts,
only_stubs=only_stubs,
prefer_stubs=prefer_stubs,
)
defs = [classes.Definition(self._evaluator, name) for name in names]
defs = [classes.Definition(self._evaluator, c.name) for c in contexts]
# The additional set here allows the definitions to become unique in an
# API sense. In the internals we want to separate more things than in
# the API.

View File

@@ -17,7 +17,7 @@ from jedi.evaluate import compiled
from jedi.evaluate.imports import ImportName
from jedi.evaluate.context import FunctionExecutionContext
from jedi.evaluate.gradual.typeshed import StubModuleContext
from jedi.evaluate.gradual.conversion import convert_names, \
from jedi.evaluate.gradual.conversion import convert_names, convert_contexts, \
stub_to_python_context_set
from jedi.api.keywords import KeywordName
@@ -309,11 +309,12 @@ class BaseDefinition(object):
if not self._name.is_context_name:
return []
names = convert_names(
[c.name for c in self._name.infer()],
contexts = convert_contexts(
self._name.infer(),
only_stubs=only_stubs,
prefer_stubs=prefer_stubs,
)
names = [c.name for c in contexts],
return [self if n == self._name else Definition(self._evaluator, n)
for n in names]