diff --git a/class.c b/class.c index f0b6ba0c07..263cb759ca 100644 --- a/class.c +++ b/class.c @@ -1804,15 +1804,12 @@ static void unknown_keyword_error(VALUE hash, const ID *table, int keywords) { st_table *tbl = rb_hash_tbl_raw(hash); - VALUE keys; int i; for (i = 0; i < keywords; i++) { st_data_t key = ID2SYM(table[i]); st_delete(tbl, &key, NULL); } - keys = rb_funcallv(hash, rb_intern("keys"), 0, 0); - if (!RB_TYPE_P(keys, T_ARRAY)) rb_raise(rb_eArgError, "unknown keyword"); - rb_keyword_error("unknown", keys); + rb_keyword_error("unknown", rb_hash_keys(hash)); } static int