Fix async function inferring with decorators, fixes #1335

This commit is contained in:
Dave Halter
2019-05-27 09:42:50 +02:00
parent 11f3eece6d
commit 8e27c60120
2 changed files with 26 additions and 1 deletions

View File

@@ -331,7 +331,7 @@ class FunctionExecutionContext(TreeContext):
Created to be used by inheritance.
"""
evaluator = self.evaluator
is_coroutine = self.tree_node.parent.type == 'async_stmt'
is_coroutine = self.tree_node.parent.type in ('async_stmt', 'async_funcdef')
is_generator = bool(get_yield_exprs(evaluator, self.tree_node))
from jedi.evaluate.gradual.typing import AnnotatedSubClass

View File

@@ -82,3 +82,28 @@ async def foo():
normal_var2 = False
#? ['normal_var1', 'normal_var2']
normal_var
class C:
@classmethod
async def async_for_classmethod(cls) -> "C":
return
async def async_for_method(cls) -> int:
return
async def f():
c = await C.async_for_method()
#? int()
c
d = await C().async_for_method()
#? int()
d
e = await C.async_for_classmethod()
#? C()
e
f = await C().async_for_classmethod()
#? C()
f