From 76cf29e68d555239a7b2e7ce2e5e0f4ab58d135e Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Mar 2024 01:35:04 -0500 Subject: [PATCH] Handle single splat in rescue in ripper translation --- lib/prism/translation/ripper.rb | 7 ++++++- test/prism/ripper_test.rb | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 5f32e18872b..be7157512b9 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -2306,7 +2306,12 @@ def visit_rescue_node(node) when 0 nil when 1 - [visit(node.exceptions.first)] + if (exception = node.exceptions.first).is_a?(SplatNode) + bounds(exception.location) + on_mrhs_add_star(on_mrhs_new, visit(exception)) + else + [visit(node.exceptions.first)] + end else bounds(node.location) length = node.exceptions.length diff --git a/test/prism/ripper_test.rb b/test/prism/ripper_test.rb index 07ea32050e7..004f32af40d 100644 --- a/test/prism/ripper_test.rb +++ b/test/prism/ripper_test.rb @@ -57,7 +57,6 @@ class RipperTest < TestCase ] skips = incorrect | heredocs | %w[ - rescue.txt seattlerb/TestRubyParserShared.txt seattlerb/block_call_dot_op2_brace_block.txt seattlerb/block_command_operation_colon.txt