summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/prism/translation/ripper.rb6
-rw-r--r--test/prism/ripper_test.rb3
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb
index 0965c0536b..5f32e18872 100644
--- a/lib/prism/translation/ripper.rb
+++ b/lib/prism/translation/ripper.rb
@@ -1488,7 +1488,11 @@ module Prism
consequent = visit(node.consequent)
bounds(node.location)
- on_if(predicate, statements, consequent)
+ if node.if_keyword == "if"
+ on_if(predicate, statements, consequent)
+ else
+ on_elsif(predicate, statements, consequent)
+ end
else
statements = visit(node.statements.body.first)
predicate = visit(node.predicate)
diff --git a/test/prism/ripper_test.rb b/test/prism/ripper_test.rb
index d9114d57df..07ea32050e 100644
--- a/test/prism/ripper_test.rb
+++ b/test/prism/ripper_test.rb
@@ -57,16 +57,13 @@ module Prism
]
skips = incorrect | heredocs | %w[
- if.txt
rescue.txt
seattlerb/TestRubyParserShared.txt
seattlerb/block_call_dot_op2_brace_block.txt
seattlerb/block_command_operation_colon.txt
seattlerb/block_command_operation_dot.txt
- seattlerb/if_elsif.txt
unparser/corpus/literal/block.txt
unparser/corpus/literal/kwbegin.txt
- whitequark/if_elsif.txt
whitequark/send_block_chain_cmd.txt
]