From f75aa767f75a0ed8c10af31d07f2db875d26d420 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Mar 2024 00:46:34 -0500 Subject: [ruby/prism] Better handle splat in MRHS https://github.com/ruby/prism/commit/8331874218 --- lib/prism/translation/ripper.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'lib/prism/translation/ripper.rb') diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 79eaac3bd0..97274cabf9 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -2812,13 +2812,14 @@ module Prism length = elements.length bounds(elements.first.location) - elements.each_with_index.inject(on_args_new) do |args, (element, index)| + elements.each_with_index.inject((elements.first.is_a?(SplatNode) && length == 1) ? on_mrhs_new : on_args_new) do |args, (element, index)| arg = visit(element) bounds(element.location) if index == length - 1 if element.is_a?(SplatNode) - on_mrhs_add_star(on_mrhs_new_from_args(args), arg) + mrhs = index == 0 ? args : on_mrhs_new_from_args(args) + on_mrhs_add_star(mrhs, arg) else on_mrhs_add(on_mrhs_new_from_args(args), arg) end -- cgit v1.2.3