class_docstr: AST visitor that applies type inference to each function separately.
class_docstr_tok: ["AST","visitor","that","applies","type","inference","to","each","function","separately","."]
code: def visit_FunctionDef(self, node):
      subgraph = self.graphs[node]
      scope = anno.getanno(node, annos.NodeAnno.ARGS_AND_BODY_SCOPE)
      closure_types = anno.getanno(node, anno.Static.CLOSURE_TYPES, {})
  
      analyzer = Analyzer(
          subgraph,
          self.resolver,
          self.ctx.info.namespace,
          scope,
          closure_types,
      )
      analyzer.visit_forward()
  
      # Recursively process any remaining subfunctions.
      node.body = self.visit_block(node.body)
  
      return node
  
imports: import itertools
  from typing import Any, Callable, Dict, Set
  import gast
  from nvidia.dali._autograph.pyct import anno
  from nvidia.dali._autograph.pyct import cfg
  from nvidia.dali._autograph.pyct import qual_names
  from nvidia.dali._autograph.pyct import transformer
  from nvidia.dali._autograph.pyct.static_analysis import activity
  from nvidia.dali._autograph.pyct.static_analysis import annos
label_desc: Use image node_id 2 for calling the FunctionVisitor obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: node