Allow classes to be defined with empty parentheses. This means that

``class C(): pass`` is no longer a syntax error.
This commit is contained in:
Brett Cannon 2005-03-05 06:47:57 +00:00
parent 653a5adcca
commit 409d8f2ebd
4 changed files with 14 additions and 9 deletions

View file

@ -4624,7 +4624,7 @@ com_classdef(struct compiling *c, node *n)
char *name;
REQ(n, classdef);
/* classdef: class NAME ['(' testlist ')'] ':' suite */
/* classdef: class NAME ['(' [testlist] ')'] ':' suite */
if ((v = PyString_InternFromString(STR(CHILD(n, 1)))) == NULL) {
c->c_errors++;
return;
@ -4635,7 +4635,8 @@ com_classdef(struct compiling *c, node *n)
com_push(c, 1);
Py_DECREF(v);
/* Push the tuple of base classes on the stack */
if (TYPE(CHILD(n, 2)) != LPAR) {
if (TYPE(CHILD(n, 2)) != LPAR ||
TYPE(CHILD(n, 3)) == RPAR) {
com_addoparg(c, BUILD_TUPLE, 0);
com_push(c, 1);
}