From 661ad9fb034bcc1283734e7c2f0aa413fc253786 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Tue, 27 Jan 2026 15:59:20 +0900 Subject: [PATCH] codegen.c: fix keyword arguments in super and yield The first keyword argument was dropped because gen_hash() was called with callargs->keyword_args->cdr instead of callargs->keyword_args. Co-authored-by: Claude --- mrbgems/mruby-compiler/core/codegen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index 2aa9832ac..99ebf26d7 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -5596,7 +5596,7 @@ codegen_yield(codegen_scope *s, node *varnode, int val) } } if (callargs->keyword_args) { - nk = gen_hash(s, callargs->keyword_args->cdr, VAL, 14); + nk = gen_hash(s, callargs->keyword_args, VAL, 14); if (nk < 0) { nk = 15; } @@ -5648,7 +5648,7 @@ codegen_super(codegen_scope *s, node *varnode, int val) /* Keyword arguments */ if (callargs->keyword_args) { - nk = gen_hash(s, callargs->keyword_args->cdr, VAL, 14); + nk = gen_hash(s, callargs->keyword_args, VAL, 14); if (nk < 0) {st++; nk = 15;} else st += nk*2; n |= nk<<4;