Commit 64a7ab2a authored by Kevin Modzelewski's avatar Kevin Modzelewski

Fix some error messages

parent 231ac3c9
...@@ -4371,8 +4371,11 @@ void rearrangeArgumentsInternal(ParamReceiveSpec paramspec, const ParamNames* pa ...@@ -4371,8 +4371,11 @@ void rearrangeArgumentsInternal(ParamReceiveSpec paramspec, const ParamNames* pa
for (int i = 0; i < paramspec.num_args - paramspec.num_defaults; i++) { for (int i = 0; i < paramspec.num_args - paramspec.num_defaults; i++) {
if (params_filled[i]) if (params_filled[i])
continue; continue;
raiseExcHelper(TypeError, "%s() takes exactly %d arguments (%ld given)", func_name_cb(), paramspec.num_args,
argspec.num_args + argspec.num_keywords + varargs_size); int min_args = paramspec.num_args - paramspec.num_defaults;
const char* exactly = (paramspec.num_defaults || paramspec.takes_varargs) ? "at least" : "exactly";
raiseExcHelper(TypeError, "%s() takes %s %d argument%s (%ld given)", func_name_cb(), exactly, min_args,
min_args == 1 ? "" : "s", argspec.num_args + argspec.num_keywords + varargs_size);
} }
// There can be more defaults than arguments. // There can be more defaults than arguments.
......
...@@ -36,6 +36,10 @@ def f2(a, b=3, c=4, d=5, *args, **kw): ...@@ -36,6 +36,10 @@ def f2(a, b=3, c=4, d=5, *args, **kw):
print a, b, c, d, args, kw print a, b, c, d, args, kw
def g(): def g():
try:
print f2()
except Exception as e:
print e
try: try:
print f2(1) print f2(1)
except Exception as e: except Exception as e:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment