diff --git a/lib/prism/translation/ripper.rb b/lib/prism/translation/ripper.rb index 8f67c3d0774..42c4dfff877 100644 --- a/lib/prism/translation/ripper.rb +++ b/lib/prism/translation/ripper.rb @@ -693,22 +693,21 @@ def visit_call_node(node) block = nil end - arguments = + [ if arguments.length == 1 && arguments.first.is_a?(ForwardingArgumentsNode) visit(arguments.first) elsif arguments.any? args = visit_arguments(arguments) - if block.is_a?(BlockArgumentNode) || arguments.last.is_a?(ForwardingArgumentsNode) + if block_node.is_a?(BlockArgumentNode) || arguments.last.is_a?(ForwardingArgumentsNode) args else bounds(arguments.first.location) on_args_add_block(args, false) end - end - - block = visit(block) if !block.nil? - [arguments, block] + end, + visit(block) + ] end # foo.bar += baz @@ -1985,10 +1984,10 @@ def visit_next_node(node) bounds(node.location) on_next(on_args_new) else - arguments = visit_arguments(node.arguments.arguments) + arguments = visit(node.arguments) bounds(node.location) - on_next(on_args_add_block(arguments, false)) + on_next(arguments) end end diff --git a/test/prism/ripper_test.rb b/test/prism/ripper_test.rb index 8aae082f363..69906cc3bdb 100644 --- a/test/prism/ripper_test.rb +++ b/test/prism/ripper_test.rb @@ -32,7 +32,6 @@ class RipperTest < TestCase heredocs_with_ignored_newlines.txt if.txt method_calls.txt - methods.txt modules.txt multi_write.txt patterns.txt @@ -52,7 +51,6 @@ class RipperTest < TestCase seattlerb/call_args_command.txt seattlerb/call_array_lambda_block_call.txt seattlerb/call_assoc_trailing_comma.txt - seattlerb/call_block_arg_named.txt seattlerb/call_trailing_comma.txt seattlerb/case_in.txt seattlerb/defn_oneliner_eq2.txt @@ -113,7 +111,6 @@ class RipperTest < TestCase unparser/corpus/literal/pattern.txt unparser/corpus/literal/send.txt unparser/corpus/literal/since/27.txt - unparser/corpus/literal/since/31.txt unparser/corpus/literal/while.txt unparser/corpus/semantic/dstr.txt unparser/corpus/semantic/literal.txt @@ -121,17 +118,10 @@ class RipperTest < TestCase until.txt variables.txt while.txt - whitequark/anonymous_blockarg.txt - whitequark/args_args_assocs.txt whitequark/args_args_assocs_comma.txt whitequark/args_args_comma.txt - whitequark/args_args_star.txt - whitequark/args_assocs.txt whitequark/args_assocs_comma.txt - whitequark/args_assocs_legacy.txt - whitequark/args_block_pass.txt whitequark/args_cmd.txt - whitequark/args_star.txt whitequark/asgn_mrhs.txt whitequark/bug_480.txt whitequark/dedenting_heredoc.txt