(Merge into trunk.)

Fix for SF bug #492345.  (I could've sworn I checked this in, but
apparently I didn't!)

This code:

    class Classic:
        pass

    class New(Classic):
        __metaclass__ = type

attempts to create a new-style class with only classic bases -- but it
doesn't work right.  Attempts to fix it so it works caused problems
elsewhere, so I'm now raising a TypeError in this case.
This commit is contained in:
Guido van Rossum 2001-12-14 04:19:56 +00:00
parent 7ec1c85d7a
commit e54616cb6f
2 changed files with 13 additions and 1 deletions

View file

@ -757,7 +757,9 @@ best_base(PyObject *bases)
return NULL;
}
}
assert(base != NULL);
if (base == NULL)
PyErr_SetString(PyExc_TypeError,
"a new-style class can't have only classic bases");
return base;
}