From a8782c454ce3590ecad3ec5da4a54347a7326683 Mon Sep 17 00:00:00 2001 From: Jimmy Miller Date: Thu, 30 Mar 2023 10:20:23 -0400 Subject: YJIT: Test more kw and rest cases and change exit name --- bootstraptest/test_yjit.rb | 12 +++++++----- yjit/src/codegen.rs | 2 +- yjit/src/stats.rs | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb index 7a3e6e5e70..b7a3d3a520 100644 --- a/bootstraptest/test_yjit.rb +++ b/bootstraptest/test_yjit.rb @@ -3802,16 +3802,18 @@ assert_equal '[{"/a"=>"b", :as=>:c, :via=>:post}, [], nil]', %q{ } # Test rest and kw_args -assert_equal '[[["test"], nil, true], [["test"], :base, true]]', %q{ +assert_equal '[true, true, true, true]', %q{ def my_func(*args, base: nil, sort: true) [args, base, sort] end def calling_my_func - result = [] - result << my_func("test") - result << my_func("test", base: :base) + results = [] + results << (my_func("test") == [["test"], nil, true]) + results << (my_func("test", base: :base) == [["test"], :base, true]) + results << (my_func("test", sort: false) == [["test"], nil, false]) + results << (my_func("test", "other", base: :base) == [["test", "other"], :base, true]) + results end - calling_my_func } diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 85520e5ae1..f754e4915d 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -5463,7 +5463,7 @@ fn gen_send_iseq( } if iseq_has_rest && unsafe { get_iseq_flags_has_kw(iseq) } && supplying_kws { - gen_counter_incr!(asm, send_iseq_has_rest_and_kw_supplying); + gen_counter_incr!(asm, send_iseq_has_rest_and_kw_supplied); return CantCompile; } diff --git a/yjit/src/stats.rs b/yjit/src/stats.rs index 6e3ea75775..79d1d66c44 100644 --- a/yjit/src/stats.rs +++ b/yjit/src/stats.rs @@ -254,7 +254,7 @@ make_counters! { send_send_builtin, send_iseq_has_rest_and_captured, send_iseq_has_rest_and_send, - send_iseq_has_rest_and_kw_supplying, + send_iseq_has_rest_and_kw_supplied, send_iseq_has_rest_and_optional, send_iseq_has_rest_and_splat_not_equal, send_is_a_class_mismatch, -- cgit v1.2.1