mirror of
https://github.com/davidhalter/jedi.git
synced 2026-02-03 03:52:42 +08:00
Fix async function inferring with decorators, fixes #1335
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user