Fix single arguments using python -builtin -O with %feature("compactdefaultargs")

Setattr argcount for non-default-args and non-varargs functions.
Fixes #607
Closes #610
This commit is contained in:
Ling Li 2016-02-09 10:55:24 -08:00 committed by William S Fulton
parent 1d62790928
commit 79bb343ffe
1 changed files with 2 additions and 1 deletions

View File

@ -2728,7 +2728,8 @@ public:
int noargs = funpack && (tuple_required == 0 && tuple_arguments == 0);
int onearg = funpack && (tuple_required == 1 && tuple_arguments == 1);
if (builtin && funpack && !overname && !builtin_ctor && !GetFlag(n, "feature:compactdefaultargs")) {
if (builtin && funpack && !overname && !builtin_ctor &&
!(GetFlag(n, "feature:compactdefaultargs") && (tuple_arguments > tuple_required || varargs))) {
String *argattr = NewStringf("%d", tuple_arguments);
Setattr(n, "python:argcount", argattr);
Delete(argattr);