Commit b0432bc0 authored by Georg Brandl's avatar Georg Brandl

Do the check for no keyword arguments in __init__ so that

subclasses of Exception can be supplied keyword args
parent 5b72cd32
......@@ -299,7 +299,7 @@ for args in exceptionList:
try:
BaseException(a=1)
except TypeErrror:
except TypeError:
pass
else:
raise TestFailed("BaseException shouldn't take keyword args")
......@@ -32,9 +32,6 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
{
PyBaseExceptionObject *self;
if (!_PyArg_NoKeywords("BaseException", kwds))
return NULL;
self = (PyBaseExceptionObject *)type->tp_alloc(type, 0);
/* the dict is created on the fly in PyObject_GenericSetAttr */
self->message = self->dict = NULL;
......@@ -57,6 +54,9 @@ BaseException_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
static int
BaseException_init(PyBaseExceptionObject *self, PyObject *args, PyObject *kwds)
{
if (!_PyArg_NoKeywords(self->ob_type->tp_name, kwds))
return -1;
Py_DECREF(self->args);
self->args = args;
Py_INCREF(self->args);
......
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