instance method
Prism::Translation::RubyParser::Compiler#visit_class_node
visit_class_node(node)
lib/prism/translation/ruby_parser.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/translation/ruby_parser.rb, line 415
def visit_class_node(node)
name =
if node.constant_path.is_a?(ConstantReadNode)
node.name
else
visit(node.constant_path)
end
result =
if node.body.nil?
s(node, :class, name, visit(node.superclass))
elsif node.body.is_a?(StatementsNode)
compiler = copy_compiler(in_def: false)
s(node, :class, name, visit(node.superclass)).concat(node.body.body.map { |child| child.accept(compiler) })
else
s(node, :class, name, visit(node.superclass), node.body.accept(copy_compiler(in_def: false)))
end
attach_comments(result, node)
result
end
class Foo; end ^^^^^^^^^^^^^^