Make first raise argument optional
diff --git a/Python/compile.c b/Python/compile.c
index b4658e4..312600d 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -659,6 +659,8 @@
{
int n = PyList_Size(list);
int i;
+ /* XXX This is quadratic in the number of names per compilation unit.
+ XXX Should use a dictionary. */
for (i = n; --i >= 0; ) {
PyObject *w = PyList_GetItem(list, i);
if (v->ob_type == w->ob_type && PyObject_Compare(v, w) == 0)
@@ -2050,12 +2052,14 @@
node *n;
{
int i;
- REQ(n, raise_stmt); /* 'raise' test [',' test [',' test]] */
- com_node(c, CHILD(n, 1));
- if (NCH(n) > 3) {
- com_node(c, CHILD(n, 3));
- if (NCH(n) > 5)
- com_node(c, CHILD(n, 5));
+ REQ(n, raise_stmt); /* 'raise' [test [',' test [',' test]]] */
+ if (NCH(n) > 1) {
+ com_node(c, CHILD(n, 1));
+ if (NCH(n) > 3) {
+ com_node(c, CHILD(n, 3));
+ if (NCH(n) > 5)
+ com_node(c, CHILD(n, 5));
+ }
}
i = NCH(n)/2;
com_addoparg(c, RAISE_VARARGS, i);