class_docstr: A visitor for `Frame.inspect`.
class_docstr_tok: ["A","visitor","for","`","Frame.inspect","`","."]
code: def visit_If(self, node: nodes.If, **kwargs: t.Any) -> None:
      self.visit(node.test, **kwargs)
      original_symbols = self.symbols
  
      def inner_visit(nodes: t.Iterable[nodes.Node]) -> "Symbols":
          self.symbols = rv = original_symbols.copy()
  
          for subnode in nodes:
              self.visit(subnode, **kwargs)
  
          self.symbols = original_symbols
          return rv
  
      body_symbols = inner_visit(node.body)
      elif_symbols = inner_visit(node.elif_)
      else_symbols = inner_visit(node.else_ or ())
      self.symbols.branch_update(
          [body_symbols, elif_symbols, else_symbols]
      )
  
imports: import typing
  from .None import nodes
  from .visitor import NodeVisitor
label_desc: Use image node_id 4 for calling the FrameSymbolVisitor obj's underlying member method code with example usage: obj.visit_If(node) and returns: rv