class RuboCop::AST::Node

def initialize(type, children = EMPTY_CHILDREN, properties = EMPTY_PROPERTIES)

Other tags:
    See: https://www.rubydoc.info/gems/ast/AST/Node:initialize -
def initialize(type, children = EMPTY_CHILDREN, properties = EMPTY_PROPERTIES)
  @mutable_attributes = {}
  # ::AST::Node#initialize freezes itself.
  super
  # #parent= may be invoked multiple times for a node because there are
  # pending nodes while constructing AST and they are replaced later.
  # For example, `lvar` and `send` type nodes are initially created as an
  # `ident` type node and fixed to the appropriate type later.
  # So, the #parent attribute needs to be mutable.
  each_child_node do |child_node|
    child_node.parent = self unless child_node.complete?
  end
end