instance method
Prism::Translation::Ripper#visit_multi_target_node_targets
visit_multi_target_node_targets(lefts, rest, rights, skippable)
lib/prism/translation/ripper.rb
View on GitHub ↗
# File tmp/rubies/ruby-4.0.0/lib/prism/translation/ripper.rb, line 2488
def visit_multi_target_node_targets(lefts, rest, rights, skippable)
if skippable && lefts.length == 1 && lefts.first.is_a?(MultiTargetNode) && rest.nil? && rights.empty?
return visit(lefts.first)
end
mlhs = on_mlhs_new
lefts.each do |left|
bounds(left.location)
mlhs = on_mlhs_add(mlhs, visit(left))
end
case rest
when nil
# do nothing
when ImplicitRestNode
# these do not get put into the generated tree
bounds(rest.location)
on_excessed_comma
else
bounds(rest.location)
mlhs = on_mlhs_add_star(mlhs, visit(rest))
end
if rights.any?
bounds(rights.first.location)
post = on_mlhs_new
rights.each do |right|
bounds(right.location)
post = on_mlhs_add(post, visit(right))
end
mlhs = on_mlhs_add_post(mlhs, post)
end
mlhs
end
Visit the targets of a multi-target node.
See also
#visit_multi_target_node
#visit_multi_write_node
#visit_module_node
#visit_next_node
also in
3.4