diff options
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r-- | vm_insnhelper.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c index e67e0b9cd4..8a21f21ec0 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -154,10 +154,9 @@ unknown_keyword_error(const rb_iseq_t *iseq, VALUE hash) } keys = rb_funcall(hash, rb_intern("keys"), 0, 0); if (!RB_TYPE_P(keys, T_ARRAY)) rb_raise(rb_eArgError, "unknown keyword"); - msg = RARRAY_LEN(keys) == 1 ? "unknown keyword: %s" : "unknown keywords: %s"; + msg = RARRAY_LEN(keys) == 1 ? "" : "s"; keys = rb_funcall(keys, rb_intern("join"), 1, sep); - RB_GC_GUARD(keys); - rb_raise(rb_eArgError, msg, RSTRING_PTR(keys)); + rb_raise(rb_eArgError, "unknown keyword%s: %"PRIsVALUE, msg, keys); } void |