summaryrefslogtreecommitdiff
path: root/lib/prism/translation/ripper.rb
diff options
context:
space:
mode:
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)