diff options
author | Aaron Patterson <[email protected]> | 2024-06-28 15:23:14 -0400 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2024-06-29 11:25:59 -0600 |
commit | a2c27bae9653a817b4e5f699f421836f8f97410b (patch) | |
tree | 440d73ec2cf6545265cde239af67ad2e66937c23 /yjit/src | |
parent | 99306471348ad3a1d41d37332dc78a1ee802d07a (diff) |
[YJIT] Don't expand kwargs on forwarding
Similarly to splat arrays, we shouldn't expand splat kwargs.
[ruby-core:118401]
Diffstat (limited to 'yjit/src')
-rw-r--r-- | yjit/src/codegen.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/yjit/src/codegen.rs b/yjit/src/codegen.rs index d456803931..7e85e4015c 100644 --- a/yjit/src/codegen.rs +++ b/yjit/src/codegen.rs @@ -6962,7 +6962,6 @@ fn gen_send_iseq( let iseq_has_rest = unsafe { get_iseq_flags_has_rest(iseq) }; let iseq_has_block_param = unsafe { get_iseq_flags_has_block(iseq) }; let arg_setup_block = captured_opnd.is_some(); // arg_setup_type: arg_setup_block (invokeblock) - let kw_splat = flags & VM_CALL_KW_SPLAT != 0; // Is this iseq tagged as "forwardable"? Iseqs that take `...` as a // parameter are tagged as forwardable (e.g. `def foo(...); end`) @@ -6975,6 +6974,7 @@ fn gen_send_iseq( // // `def foo(...); end; foo(*blah)` let splat_call = (flags & VM_CALL_ARGS_SPLAT != 0) && !forwarding; + let kw_splat = (flags & VM_CALL_KW_SPLAT != 0) && !forwarding; // For computing offsets to callee locals let num_params = unsafe { get_iseq_body_param_size(iseq) as i32 }; |