From 79bb343ffe11e35cb69c583f292f45ed90ca7fa7 Mon Sep 17 00:00:00 2001 From: Ling Li Date: Tue, 9 Feb 2016 10:55:24 -0800 Subject: [PATCH] Fix single arguments using python -builtin -O with %feature("compactdefaultargs") Setattr argcount for non-default-args and non-varargs functions. Fixes #607 Closes #610 --- Source/Modules/python.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/Modules/python.cxx b/Source/Modules/python.cxx index 1c11801e2..f931cb273 100644 --- a/Source/Modules/python.cxx +++ b/Source/Modules/python.cxx @@ -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);