Commit 4af861cb authored by Sean Reifscheider's avatar Sean Reifscheider

Back-port of rev 61240 for issue #2238, fixing: Some syntax errors in *args

and **kwargs expressions could give bogus error messages.
parent eff5a4e9
......@@ -260,6 +260,10 @@ d31v(1)
def d32v((x,)): pass
d32v((1,))
# Check ast errors in *args and *kwargs
check_syntax("f(*g(1=2))")
check_syntax("f(**g(1=2))")
### lambdef: 'lambda' [varargslist] ':' test
print 'lambdef'
l1 = lambda : 0
......
......@@ -14,6 +14,9 @@ Core and builtins
- Issue #2321: use pymalloc for unicode object string data to reduce
memory usage in some circumstances.
- Issue #2238: Some syntax errors in *args and **kwargs expressions could give
bogus error messages.
Library
-------
......
......@@ -1878,10 +1878,14 @@ ast_for_call(struct compiling *c, const node *n, expr_ty func)
}
else if (TYPE(ch) == STAR) {
vararg = ast_for_expr(c, CHILD(n, i+1));
if (!vararg)
return NULL;
i++;
}
else if (TYPE(ch) == DOUBLESTAR) {
kwarg = ast_for_expr(c, CHILD(n, i+1));
if (!kwarg)
return NULL;
i++;
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment