code: def visit_if(self, node, parent):
          
          newnode = nodes.If(node.lineno, node.col_offset, parent)
          newnode.postinit(
              self.visit(node.test, newnode),
              [self.visit(child, newnode) for child in node.body],
              [self.visit(child, newnode) for child in node.orelse],
          )
          return newnode
docs: visit an If node by returning a fresh instance of it