diff options
| author | Kevin Newton <kddnewton@gmail.com> | 2024-03-06 01:35:04 -0500 |
|---|---|---|
| committer | git <svn-admin@ruby-lang.org> | 2024-03-06 16:43:02 +0000 |
| commit | 8528e765b7c62dc3e7f10f1a9df319bda37ac509 (patch) | |
| tree | 999e1e3b6a66c3016c0077c57aff29fa8277b3c1 | |
| parent | d23ebdfa6d3061b50ae726e6f494b14bc6019f8d (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.rb | 7 | ||||
| -rw-r--r-- | 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 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 |
