summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authordearblue <[email protected]>2021-11-28 18:21:29 +0900
committerdearblue <[email protected]>2021-11-28 18:21:29 +0900
commitc4bca7cbb3eda883c7b09b6c0568a90fb8a85a5d (patch)
tree48bb84aa1582cbf63332319509d7288bffa7b73f
parente4d691778676f8cb284c91b8ca72b2dff41e2560 (diff)
downloadmruby-c4bca7cbb3eda883c7b09b6c0568a90fb8a85a5d.tar.gz
mruby-c4bca7cbb3eda883c7b09b6c0568a90fb8a85a5d.zip
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) ```
-rw-r--r--mrbgems/mruby-array-ext/mrblib/array.rb2
-rw-r--r--mrbgems/mruby-proc-ext/mrblib/proc.rb2
-rw-r--r--mrbgems/mruby-string-ext/mrblib/string.rb2
-rw-r--r--mrblib/string.rb2
-rw-r--r--src/vm.c8
5 files changed, 5 insertions, 11 deletions
diff --git a/mrbgems/mruby-array-ext/mrblib/array.rb b/mrbgems/mruby-array-ext/mrblib/array.rb
index f7576cbf7..d04c11e64 100644
--- a/mrbgems/mruby-array-ext/mrblib/array.rb
+++ b/mrbgems/mruby-array-ext/mrblib/array.rb
@@ -382,7 +382,7 @@ class Array
def fill(arg0=nil, arg1=nil, arg2=nil, &block)
if arg0.nil? && arg1.nil? && arg2.nil? && !block
- raise ArgumentError, "wrong number of arguments (0 for 1..3)"
+ raise ArgumentError, "wrong number of arguments (given 0, expected 1..3)"
end
beg = len = 0
diff --git a/mrbgems/mruby-proc-ext/mrblib/proc.rb b/mrbgems/mruby-proc-ext/mrblib/proc.rb
index 3be0afbbc..0c0df205e 100644
--- a/mrbgems/mruby-proc-ext/mrblib/proc.rb
+++ b/mrbgems/mruby-proc-ext/mrblib/proc.rb
@@ -21,7 +21,7 @@ class Proc
self_arity = self.arity
if (self_arity >= 0 && arity != self_arity) ||
(self_arity < 0 && abs[self_arity] > arity)
- raise ArgumentError, "wrong number of arguments (#{arity} for #{abs[self_arity]})"
+ raise ArgumentError, "wrong number of arguments (given #{arity}, expected #{abs[self_arity]})"
end
end
diff --git a/mrbgems/mruby-string-ext/mrblib/string.rb b/mrbgems/mruby-string-ext/mrblib/string.rb
index d485c51ef..d8fd120a0 100644
--- a/mrbgems/mruby-string-ext/mrblib/string.rb
+++ b/mrbgems/mruby-string-ext/mrblib/string.rb
@@ -151,7 +151,7 @@ class String
#
def slice!(arg1, arg2=nil)
raise FrozenError, "can't modify frozen String" if frozen?
- raise "wrong number of arguments (for 1..2)" if arg1.nil? && arg2.nil?
+ raise ArgumentError, "wrong number of arguments (expected 1..2)" if arg1.nil? && arg2.nil?
if !arg1.nil? && !arg2.nil?
idx = arg1
diff --git a/mrblib/string.rb b/mrblib/string.rb
index 2b3178688..81ddf6784 100644
--- a/mrblib/string.rb
+++ b/mrblib/string.rb
@@ -51,7 +51,7 @@ class String
# ISO 15.2.10.5.18
def gsub(*args, &block)
return to_enum(:gsub, *args) if args.length == 1 && !block
- raise ArgumentError, "wrong number of arguments" unless (1..2).include?(args.length)
+ raise ArgumentError, "wrong number of arguments (given #{args.length}, expected 1..2)" unless (1..2).include?(args.length)
pattern, replace = *args
plen = pattern.length
diff --git a/src/vm.c b/src/vm.c
index 65af8dcc0..84ec08cfe 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -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);
}