summaryrefslogtreecommitdiff
path: root/lib/prism/translation/ripper.rb
diff options
context:
space:
mode:
authorKevin Newton <kddnewton@gmail.com>2024-03-06 01:08:30 -0500
committergit <svn-admin@ruby-lang.org>2024-03-06 16:43:00 +0000
commit554ad9dc1c46be7a7fa0429d18804c1e171daa33 (patch)
tree4f51ca1466bdc9234597be45bfd22f6408dc5a99 /lib/prism/translation/ripper.rb
parent46e9f71a9194162d610e908b10afe3a1446d1490 (diff)
[ruby/prism] Allow rescue modifier after MRHS in ripper translation
https://github.com/ruby/prism/commit/37db4d8c2d
Diffstat (limited to 'lib/prism/translation/ripper.rb')
-rw-r--r--lib/prism/translation/ripper.rb13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb
index 08a53a27c1..344913f3e5 100644
--- a/lib/prism/translation/ripper.rb
+++ b/lib/prism/translation/ripper.rb
@@ -341,14 +341,15 @@ module Prism
constant = visit(node.constant)
requireds = visit_all(node.requireds) if node.requireds.any?
rest =
- if !node.rest.nil?
- if !node.rest.expression.nil?
- visit(node.rest.expression)
- else
- bounds(node.rest.location)
+ if (rest_node = node.rest).is_a?(SplatNode)
+ if rest_node.expression.nil?
+ bounds(rest_node.location)
on_var_field(nil)
+ else
+ visit(rest_node.expression)
end
end
+
posts = visit_all(node.posts) if node.posts.any?
bounds(node.location)
@@ -2284,7 +2285,7 @@ module Prism
# foo rescue bar
# ^^^^^^^^^^^^^^
def visit_rescue_modifier_node(node)
- expression = visit(node.expression)
+ expression = visit_write_value(node.expression)
rescue_expression = visit(node.rescue_expression)
bounds(node.location)