Fix generator issues for typing

This commit is contained in:
Dave Halter
2019-06-08 01:50:38 +02:00
parent 26951f5c18
commit eef02e5c56
4 changed files with 13 additions and 4 deletions

View File

@@ -76,7 +76,7 @@ class GeneratorBase(LazyAttributeOverwrite, IterableMixin):
@property
def name(self):
return compiled.CompiledContextName(self, 'generator')
return compiled.CompiledContextName(self, 'Generator')
class Generator(GeneratorBase):

View File

@@ -1,3 +1,4 @@
from jedi import debug
from jedi.evaluate.base_context import ContextSet, \
NO_CONTEXTS
from jedi.evaluate.utils import to_list
@@ -49,11 +50,13 @@ def _infer_from_stub(stub_module, qualified_names, ignore_compiled):
def try_stubs_to_actual_context_set(stub_contexts, prefer_stub_to_compiled=False):
return ContextSet.from_sets(
contexts = ContextSet.from_sets(
stub_to_actual_context_set(stub_context, ignore_compiled=prefer_stub_to_compiled)
or ContextSet([stub_context])
for stub_context in stub_contexts
)
debug.dbg('Stubs to actual: %s to %s', stub_contexts, contexts)
return contexts
@to_list

View File

@@ -575,5 +575,11 @@ _implemented = {
# Not sure if this is necessary, but it's used a lot in typeshed and
# it's for now easier to just pass the function.
'abstractmethod': _return_first_param,
}
},
'typing': {
# The _alias function just leads to some annoying type inference.
# Therefore, just make it return nothing, which leads to the stubs
# being used instead. This only matters for 3.7+.
'_alias': lambda obj, arguments: NO_CONTEXTS,
},
}

View File

@@ -128,7 +128,7 @@ def test_goto_definitions_on_non_name(Script):
def test_goto_definitions_on_generator(Script):
def_, = Script('def x(): yield 1\ny=x()\ny').goto_definitions()
assert def_.name == 'generator'
assert def_.name == 'Generator'
def test_goto_definition_not_multiple(Script):