From 6b76a765abcb328be1e89a6380df71d2b09f4eff Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Tue, 5 Mar 2024 21:29:27 -0500 Subject: [PATCH] [ruby/prism] Fix up yield arguments in ripper translation https://github.com/ruby/prism/commit/22b9f3ccd9 --- lib/prism/translation/ripper.rb | 15 +++++++++++++-- test/prism/ripper_test.rb | 4 ---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 12fa2a5cc8..a088165dde 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -2500,11 +2500,22 @@ module Prism # yield 1 # ^^^^^^^ def visit_yield_node(node) - if node.arguments.nil? + if node.arguments.nil? && node.lparen_loc.nil? bounds(node.location) on_yield0 else - arguments = visit(node.arguments) + arguments = + if node.arguments.nil? + bounds(node.location) + on_args_new + else + visit(node.arguments) + end + + unless node.lparen_loc.nil? + bounds(node.lparen_loc) + arguments = on_paren(arguments) + end bounds(node.location) on_yield(arguments) diff --git a/test/prism/ripper_test.rb b/test/prism/ripper_test.rb index ddae1d582a..4d04199e51 100644 --- a/test/prism/ripper_test.rb +++ b/test/prism/ripper_test.rb @@ -167,7 +167,6 @@ module Prism seattlerb/str_single_double_escaped_newline.txt seattlerb/thingy.txt seattlerb/yield_call_assocs.txt - seattlerb/yield_empty_parens.txt single_method_call_with_bang.txt spanning_heredoc.txt spanning_heredoc_newlines.txt @@ -197,7 +196,6 @@ module Prism unparser/corpus/literal/since/27.txt unparser/corpus/literal/since/31.txt unparser/corpus/literal/while.txt - unparser/corpus/literal/yield.txt unparser/corpus/semantic/dstr.txt unparser/corpus/semantic/literal.txt unparser/corpus/semantic/while.txt @@ -276,9 +274,7 @@ module Prism whitequark/ternary.txt whitequark/ternary_ambiguous_symbol.txt whitequark/trailing_forward_arg.txt - whitequark/yield.txt xstring.txt - yield.txt ] relatives.each do |relative|