Use the dedicated function to check arity

This commit is contained in:
Nobuyoshi Nakada 2022-10-01 16:18:03 +09:00
Родитель 15d3b7fe6d
Коммит 56f2fd3bc9
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 7CD2805BFA3770C6
2 изменённых файлов: 7 добавлений и 6 удалений

Просмотреть файл

@ -742,7 +742,7 @@ rb_struct_initialize_m(int argc, const VALUE *argv, VALUE self)
switch (rb_struct_s_keyword_init(klass)) {
default:
if (argc > 1 || !RB_TYPE_P(argv[0], T_HASH)) {
rb_raise(rb_eArgError, "wrong number of arguments (given %d, expected 0)", argc);
rb_error_arity(argc, 0, 0);
}
keyword_init = true;
break;
@ -1800,7 +1800,7 @@ rb_data_initialize_m(int argc, const VALUE *argv, VALUE self)
return Qnil;
}
if (argc > 1 || !RB_TYPE_P(argv[0], T_HASH)) {
rb_raise(rb_eArgError, "wrong number of arguments (given %d, expected 0)", argc);
rb_error_arity(argc, 0, 0);
}
if (RHASH_SIZE(argv[0]) < num_members) {

Просмотреть файл

@ -428,16 +428,17 @@ rb_vm_pop_frame(rb_execution_context_t *ec)
static inline VALUE
rb_arity_error_new(int argc, int min, int max)
{
VALUE err_mess = 0;
VALUE err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d", argc, min);
if (min == max) {
err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d)", argc, min);
/* max is not needed */
}
else if (max == UNLIMITED_ARGUMENTS) {
err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d+)", argc, min);
rb_str_cat_cstr(err_mess, "+");
}
else {
err_mess = rb_sprintf("wrong number of arguments (given %d, expected %d..%d)", argc, min, max);
rb_str_catf(err_mess, "..%d", max);
}
rb_str_cat_cstr(err_mess, ")");
return rb_exc_new3(rb_eArgError, err_mess);
}