From 67ae3e97388bc9083cb3cc2f22ba8abc28d6fda3 Mon Sep 17 00:00:00 2001 From: yui-knk Date: Tue, 29 Nov 2022 11:42:53 +0900 Subject: [PATCH] Add a test case for argument forwarding --- test/ruby/test_ast.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index c3de36b4fb..667f8c0fd2 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -526,6 +526,16 @@ class TestAst < Test::Unit::TestCase assert_equal([:a], kwrest.call('**a')) end + def test_argument_forwarding + forwarding = lambda do |arg_str| + node = RubyVM::AbstractSyntaxTree.parse("def a(#{arg_str}) end") + node = node.children.last.children.last.children[1] + node ? [node.children[-4], node.children[-2].children, node.children[-1]] : [] + end + + assert_equal([:*, [:**], :&], forwarding.call('...')) + end + def test_ranges_numbered_parameter helper = Helper.new(__FILE__, src: "1.times {_1}") helper.validate_range