Mercurial > cpython-lru_cache-weakref
diff Modules/parsermodule.c @ 62769:124a76ae7a70 2.6
Issue #9128: Fix validation of class decorators in parser module.
| author | Mark Dickinson <dickinsm@gmail.com> |
|---|---|
| date | Sun, 04 Jul 2010 16:28:57 +0000 |
| parents | 9f5430e47770 |
| children | be662d124385 |
line wrap: on
line diff
--- a/Modules/parsermodule.c Sat Jul 03 13:39:22 2010 +0000 +++ b/Modules/parsermodule.c Sun Jul 04 16:28:57 2010 +0000 @@ -2679,14 +2679,15 @@ static int validate_decorated(node *tree) { - int nch = NCH(tree); - int ok = (validate_ntype(tree, decorated) - && (nch == 2) - && validate_decorators(RCHILD(tree, -2)) - && (validate_funcdef(RCHILD(tree, -1)) - || validate_class(RCHILD(tree, -1))) - ); - return ok; + int nch = NCH(tree); + int ok = (validate_ntype(tree, decorated) + && (nch == 2) + && validate_decorators(RCHILD(tree, -2))); + if (TYPE(RCHILD(tree, -1)) == funcdef) + ok = ok && validate_funcdef(RCHILD(tree, -1)); + else + ok = ok && validate_class(RCHILD(tree, -1)); + return ok; } static int
