summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_extcall.py6
-rw-r--r--Python/ceval.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/Lib/test/test_extcall.py b/Lib/test/test_extcall.py
index a5af50b..cf882a5 100644
--- a/Lib/test/test_extcall.py
+++ b/Lib/test/test_extcall.py
@@ -280,6 +280,12 @@ The number of arguments passed in includes keywords:
Traceback (most recent call last):
...
TypeError: f() takes exactly 1 argument (5 given)
+ >>> def f(a, *, kw):
+ ... pass
+ >>> f(6, 4, kw=4)
+ Traceback (most recent call last):
+ ...
+ TypeError: f() takes exactly 2 arguments (3 given)
"""
import sys
diff --git a/Python/ceval.c b/Python/ceval.c
index 22c6155..0bd785b 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3078,8 +3078,8 @@ PyEval_EvalCodeEx(PyCodeObject *co, PyObject *globals, PyObject *locals,
"argument%s (%d given)",
co->co_name,
defcount ? "at most" : "exactly",
- co->co_argcount,
- co->co_argcount == 1 ? "" : "s",
+ total_args,
+ total_args == 1 ? "" : "s",
argcount + kwcount);
goto fail;
}