From bc8734174a0cd6513e55627464038aed22b3c32c Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Sat, 8 Dec 2007 22:11:32 +0000 Subject: [PATCH] Fixed #1573: Improper use of the keyword-only syntax makes the parser crash >>> def f(*, **kw): ... pass ... python: Python/ast.c:652: handle_keywordonly_args: Assertion 'kwonlyargs != ((void *)0)' failed. --- Misc/NEWS | 20 ++++++++++++++++++++ Python/ast.c | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index b3905c6ac3..f5ab8689bd 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -4,7 +4,27 @@ Python News (editors: check NEWS.help for information about editing NEWS using ReST.) +What's New in Python 3.0a3? +=========================== + +*Release data: XX-XXX-2008* + +Core and Builtins +----------------- + +- Issue #1573: Improper use of the keyword-only syntax makes the parser crash + + +Extension Modules +----------------- + + +Library +------- + + What's New in Python 3.0a2? +=========================== *Release date: 07-Dec-2007* diff --git a/Python/ast.c b/Python/ast.c index 6ad43dd798..0127281a4d 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -649,8 +649,8 @@ handle_keywordonly_args(struct compiling *c, const node *n, int start, arg_ty arg; int i = start; int j = 0; /* index for kwdefaults and kwonlyargs */ - assert(kwonlyargs != NULL); - assert(kwdefaults != NULL); + assert((kwonlyargs != NULL && kwdefaults != NULL) || + TYPE(CHILD(n, i)) == DOUBLESTAR); while (i < NCH(n)) { ch = CHILD(n, i); switch (TYPE(ch)) { -- 2.40.0