1
0
forked from VimPlug/jedi

Fix some async issues

This commit is contained in:
Dave Halter
2018-09-24 09:45:10 +02:00
parent bbc6e830e2
commit 8fad33b125

View File

@@ -312,10 +312,9 @@ class FunctionExecutionContext(TreeContext):
if is_generator: if is_generator:
if evaluator.environment.version_info < (3, 6): if evaluator.environment.version_info < (3, 6):
return NO_CONTEXTS return NO_CONTEXTS
async_generator_class, = evaluator.typing_module \ async_generator_classes = evaluator.typing_module \
.py__getattribute__('AsyncGenerator') .py__getattribute__('AsyncGenerator')
c = async_generator_class.stub_context
yield_contexts = self.merge_yield_contexts(is_async=True) yield_contexts = self.merge_yield_contexts(is_async=True)
return ContextSet( return ContextSet(
AnnotatedSubClass( AnnotatedSubClass(
@@ -324,14 +323,13 @@ class FunctionExecutionContext(TreeContext):
tree_node=c.tree_node, tree_node=c.tree_node,
# The contravariant doesn't seem to be defined. # The contravariant doesn't seem to be defined.
given_types=(yield_contexts.py__class__(), NO_CONTEXTS) given_types=(yield_contexts.py__class__(), NO_CONTEXTS)
) ) for c in async_generator_classes
).execute_annotation() ).execute_annotation()
else: else:
if evaluator.environment.version_info < (3, 5): if evaluator.environment.version_info < (3, 5):
return NO_CONTEXTS return NO_CONTEXTS
async_class, = evaluator.typing_module .py__getattribute__('Coroutine') async_classes = evaluator.typing_module .py__getattribute__('Coroutine')
return_contexts = self.get_return_values() return_contexts = self.get_return_values()
c = async_class.stub_context
return ContextSet( return ContextSet(
AnnotatedSubClass( AnnotatedSubClass(
evaluator, evaluator,
@@ -339,7 +337,7 @@ class FunctionExecutionContext(TreeContext):
tree_node=c.tree_node, tree_node=c.tree_node,
# Only the first generic is relevant. # Only the first generic is relevant.
given_types=(return_contexts.py__class__(), NO_CONTEXTS, NO_CONTEXTS) given_types=(return_contexts.py__class__(), NO_CONTEXTS, NO_CONTEXTS)
) ) for c in async_classes
).execute_annotation() ).execute_annotation()
else: else:
if is_generator: if is_generator: