summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-03-06 01:35:04 -0500
committergit <svn-admin@ruby-lang.org>2024-03-06 16:43:02 +0000
commit8528e765b7c62dc3e7f10f1a9df319bda37ac509 (patch)
tree999e1e3b6a66c3016c0077c57aff29fa8277b3c1
parentd23ebdfa6d3061b50ae726e6f494b14bc6019f8d (diff)
[ruby/prism] Handle single splat in rescue in ripper translation
https://github.com/ruby/prism/commit/76cf29e68d
-rw-r--r--lib/prism/translation/ripper.rb7
-rw-r--r--test/prism/ripper_test.rb1
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb
index 5f32e18872..be7157512b 100644
--- a/lib/prism/translation/ripper.rb
+++ b/lib/prism/translation/ripper.rb
@@ -2306,7 +2306,12 @@ module Prism
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 07ea32050e..004f32af40 100644
--- a/test/prism/ripper_test.rb
+++ b/test/prism/ripper_test.rb
@@ -57,7 +57,6 @@ module Prism
]
skips = incorrect | heredocs | %w[
- rescue.txt
seattlerb/TestRubyParserShared.txt
seattlerb/block_call_dot_op2_brace_block.txt
seattlerb/block_command_operation_colon.txt