# used to fail with a SystemError.
lambda *, k1=unittest: None
+ def test_mangling(self):
+ class X:
+ def f(self, *, __a=42):
+ return __a
+ self.assertEqual(X().f(), 42)
+
def test_main():
run_unittest(KeywordOnlyArgTestCase)
Core and Builtins
-----------------
+- Issue #14607: Fix defaults keyword-only arguments which started with ``__``.
+
- Issue #13889: Check and (if necessary) set FPU control word before calling
any of the dtoa.c string <-> float conversion functions, on MSVC builds of
Python. This fixes issues when embedding Python in a Delphi app.
arg_ty arg = asdl_seq_GET(kwonlyargs, i);
expr_ty default_ = asdl_seq_GET(kw_defaults, i);
if (default_) {
- ADDOP_O(c, LOAD_CONST, arg->arg, consts);
+ PyObject *mangled = _Py_Mangle(c->u->u_private, arg->arg);
+ if (!mangled)
+ return -1;
+ ADDOP_O(c, LOAD_CONST, mangled, consts);
+ Py_DECREF(mangled);
if (!compiler_visit_expr(c, default_)) {
return -1;
}