MCPcopy Create free account
hub / github.com/nodejs/node / generic_visit

Method generic_visit

deps/v8/third_party/jinja2/visitor.py:61–81  ·  view source on GitHub ↗
(self, node: Node, *args: t.Any, **kwargs: t.Any)

Source from the content-addressed store, hash-verified

59 """
60
61 def generic_visit(self, node: Node, *args: t.Any, **kwargs: t.Any) -> Node:
62 for field, old_value in node.iter_fields():
63 if isinstance(old_value, list):
64 new_values = []
65 for value in old_value:
66 if isinstance(value, Node):
67 value = self.visit(value, *args, **kwargs)
68 if value is None:
69 continue
70 elif not isinstance(value, Node):
71 new_values.extend(value)
72 continue
73 new_values.append(value)
74 old_value[:] = new_values
75 elif isinstance(old_value, Node):
76 new_node = self.visit(old_value, *args, **kwargs)
77 if new_node is None:
78 delattr(node, field)
79 else:
80 setattr(node, field, new_node)
81 return node
82
83 def visit_list(self, node: Node, *args: t.Any, **kwargs: t.Any) -> t.List[Node]:
84 """As transformers may return lists in some places this method

Callers

nothing calls this directly

Calls 4

iter_fieldsMethod · 0.45
visitMethod · 0.45
extendMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected