From 0c008fcf340055f74a8a7f0c869cc5bcbc4f2c65 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Wed, 6 Mar 2024 01:30:26 -0500 Subject: [PATCH] Support elsif in ripper translation --- lib/prism/translation/ripper.rb | 6 +++++- test/prism/ripper_test.rb | 3 --- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 0965c0536bf..5f32e18872b 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -1488,7 +1488,11 @@ def visit_if_node(node) 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 d9114d57dfc..07ea32050e7 100644 --- a/test/prism/ripper_test.rb +++ b/test/prism/ripper_test.rb @@ -57,16 +57,13 @@ class RipperTest < TestCase ] 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 ]