Align "wrong number of arguments" messages

Make "N for M" into the form "given N, expected M".

As I worked, I noticed that the `argnum_error()` function had a part to include the method name in the message.
I think this part is no longer needed by https://github.com/mruby/mruby/pull/5394.

  - Before this patch

    ```console
    % bin/mruby -e '[1, 2, 3].each 0'
    trace (most recent call last):
            [1] -e:1
    -e:1:in each: 'each': wrong number of arguments (1 for 0) (ArgumentError)
    ```

  - After this patch

    ```console
    % bin/mruby -e '[1, 2, 3].each 0'
    trace (most recent call last):
            [1] -e:1
    -e:1:in each: wrong number of arguments (given 1, expected 0) (ArgumentError)
    ```
This commit is contained in:
dearblue
2021-11-28 18:21:29 +09:00
parent e4d6917786
commit c4bca7cbb3
5 changed files with 5 additions and 11 deletions
+1 -7
View File
@@ -963,13 +963,7 @@ argnum_error(mrb_state *mrb, mrb_int num)
if (argc == 0 && mrb->c->ci->nk != 0 && !mrb_hash_empty_p(mrb, mrb->c->ci->stack[1])) {
argc++;
}
if (mrb->c->ci->mid) {
str = mrb_format(mrb, "'%n': wrong number of arguments (%i for %i)",
mrb->c->ci->mid, argc, num);
}
else {
str = mrb_format(mrb, "wrong number of arguments (%i for %i)", argc, num);
}
str = mrb_format(mrb, "wrong number of arguments (given %i, expected %i)", argc, num);
exc = mrb_exc_new_str(mrb, E_ARGUMENT_ERROR, str);
mrb_exc_set(mrb, exc);
}