Fix error message -- "expects either 0 or 0 arguments"
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index 08592bc..29e2547 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -595,8 +595,10 @@
res = 0; /* if no error occurs, this stays 0 to the end */
if (PyTuple_GET_SIZE(args) > 0) {
if (numfields != PyTuple_GET_SIZE(args)) {
- PyErr_Format(PyExc_TypeError, "%.400s constructor takes either 0 or "
- "%d positional argument%s", Py_TYPE(self)->tp_name,
+ PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s"
+ "%" PY_FORMAT_SIZE_T "d positional argument%s",
+ Py_TYPE(self)->tp_name,
+ numfields == 0 ? "" : "either 0 or ",
numfields, numfields == 1 ? "" : "s");
res = -1;
goto cleanup;
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index d473418..ba310e6 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -386,8 +386,10 @@
res = 0; /* if no error occurs, this stays 0 to the end */
if (PyTuple_GET_SIZE(args) > 0) {
if (numfields != PyTuple_GET_SIZE(args)) {
- PyErr_Format(PyExc_TypeError, "%.400s constructor takes either 0 or "
- "%d positional argument%s", Py_TYPE(self)->tp_name,
+ PyErr_Format(PyExc_TypeError, "%.400s constructor takes %s"
+ "%" PY_FORMAT_SIZE_T "d positional argument%s",
+ Py_TYPE(self)->tp_name,
+ numfields == 0 ? "" : "either 0 or ",
numfields, numfields == 1 ? "" : "s");
res = -1;
goto cleanup;