From 5d0a1ffafa61da04dbda38a5cb5565bcb8032a78 Mon Sep 17 00:00:00 2001 From: Jimmy Miller Date: Fri, 17 Mar 2023 16:11:30 -0400 Subject: YJIT: Rest and block_arg support (#7557) * YJIT: Rest and block_arg support * Update bootstraptest/test_yjit.rb --------- Co-authored-by: Maxime Chevalier-Boisvert --- bootstraptest/test_yjit.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'bootstraptest') diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb index 8902cd6cde..f29f0ce876 100644 --- a/bootstraptest/test_yjit.rb +++ b/bootstraptest/test_yjit.rb @@ -3662,3 +3662,24 @@ assert_equal '[1, 2, 3]', %q{ end send(:bar, 1, 2, 3) } + +# Rest with block +# Simplified code from railsbench +assert_equal '[{"/a"=>"b", :as=>:c, :via=>:post}, [], nil]', %q{ + def match(path, *rest, &block) + [path, rest, block] + end + + def map_method(method, args, &block) + options = args.last + args.pop + options[:via] = method + match(*args, options, &block) + end + + def post(*args, &block) + map_method(:post, args, &block) + end + + post "/a" => "b", as: :c +} -- cgit v1.2.1