@@ -159,10 +159,17 @@ def visit_BLOCK(self, node):
159159class FunctionGraphVisitor (UniqueVisitor ):
160160 """ Mark FUNCALLS
161161 """
162+ def _get_calls_from_children (self , node ):
163+ return [
164+ symbol
165+ for symbol in self .filter_inorder (node , lambda x : isinstance (x , (symbols .FUNCCALL , symbols .CALL )))
166+ if not isinstance (symbol , symbols .ARRAYACCESS )
167+ ]
168+
162169 def _set_children_as_accessed (self , node : symbols .SYMBOL ):
163170 parent = node .get_parent (symbols .FUNCDECL )
164171 if parent is None : # Global scope?
165- for symbol in self .filter_inorder (node , lambda x : isinstance ( x , ( symbols . FUNCCALL , symbols . CALL )) ):
172+ for symbol in self ._get_calls_from_children (node ):
166173 symbol .entry .accessed = True
167174
168175 def visit_FUNCCALL (self , node : symbols .SYMBOL ):
@@ -175,7 +182,7 @@ def visit_CALL(self, node: symbols.SYMBOL):
175182
176183 def visit_FUNCDECL (self , node : symbols .SYMBOL ):
177184 if node .entry .accessed :
178- for symbol in self .filter_inorder (node , lambda x : isinstance ( x , ( symbols . FUNCCALL , symbols . CALL )) ):
185+ for symbol in self ._get_calls_from_children (node ):
179186 symbol .entry .accessed = True
180187
181188 yield node
0 commit comments