summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/prism/translation/ripper.rb15
-rw-r--r--test/prism/ripper_test.rb4
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|