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.
diff --git a/Python/ast.c b/Python/ast.c
index 6ad43dd..0127281 100644
--- a/Python/ast.c
+++ b/Python/ast.c
@@ -649,8 +649,8 @@
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)) {