diff options
author | Jimmy Miller <jimmy.miller@shopify.com> | 2023-03-16 17:40:36 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-03-16 17:40:36 -0400 |
commit | 5825d7d4a1a53ba84909a01679f4dfab63fa9739 (patch) | |
tree | c750e66a037c074c4d7536faf0a63b4660de7a17 | |
parent | 473009d7cbafc4a94be53694b5934167072068e6 (diff) | |
download | ruby-5825d7d4a1a53ba84909a01679f4dfab63fa9739.tar.gz |
YJIT: Remove exit for rest and send combo (#7546)
-rw-r--r-- | bootstraptest/test_yjit.rb | 8 | ||||
-rw-r--r-- | yjit/src/codegen.rs | 5 |
2 files changed, 8 insertions, 5 deletions
diff --git a/bootstraptest/test_yjit.rb b/bootstraptest/test_yjit.rb index d7dd0cd460..8902cd6cde 100644 --- a/bootstraptest/test_yjit.rb +++ b/bootstraptest/test_yjit.rb @@ -3654,3 +3654,11 @@ assert_equal "[]", %q{ test(custom) EMPTY } + +# Rest with send +assert_equal '[1, 2, 3]', %q{ + def bar(x, *rest) + rest.insert(0, x) + end + send(:bar, 1, 2, 3) +} diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index 0afed2effa..31582c26bc 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -5382,11 +5382,6 @@ fn gen_send_iseq( return CantCompile; } - if iseq_has_rest && flags & VM_CALL_OPT_SEND != 0 { - gen_counter_incr!(asm, send_iseq_has_rest_and_send); - return CantCompile; - } - if iseq_has_rest && unsafe { get_iseq_flags_has_block(iseq) } { gen_counter_incr!(asm, send_iseq_has_rest_and_block); return CantCompile; |