@@ -77,6 +77,20 @@ def __init__(self, parent=True):
7777 self .yields = False
7878 super ().__init__ ()
7979
80+ def _handle_functions (self , node ):
81+ new_visitor = MethodVisitor (parent = False )
82+ new_visitor .generic_visit (node )
83+ self .raises |= new_visitor .raises
84+
85+ if self .parent :
86+ for arg in node .args .args :
87+ self .arguments .append (arg .arg )
88+ if len (self .arguments ) > 0 and (self .arguments [0 ] == 'self' or self .arguments [0 ] == 'cls' ):
89+ self .arguments .pop (0 )
90+
91+ self .returns = new_visitor .returns
92+ self .yields = new_visitor .yields
93+
8094 def visit_Raise (self , node ):
8195 r = RaiseNameCollector ()
8296 r .visit (node )
@@ -92,15 +106,7 @@ def visit_Return(self, node):
92106 super ().generic_visit (node )
93107
94108 def visit_FunctionDef (self , node ):
95- new_visitor = MethodVisitor (parent = False )
96- new_visitor .generic_visit (node )
97- self .raises |= new_visitor .raises
98-
99- if self .parent :
100- for arg in node .args .args :
101- self .arguments .append (arg .arg )
102- if len (self .arguments ) > 0 and (self .arguments [0 ] == 'self' or self .arguments [0 ] == 'cls' ):
103- self .arguments .pop (0 )
109+ self ._handle_functions (node )
104110
105- self . returns = new_visitor . returns
106- self .yields = new_visitor . yields
111+ def visit_AsyncFunctionDef ( self , node ):
112+ self ._handle_functions ( node )
0 commit comments