def global_pos_only_defaults(a=1, /, b=2):
return a, b
+def global_inner_has_pos_only():
+ def f(x: int, /): ...
+ return f
+
class PositionalOnlyTestCase(unittest.TestCase):
self.assertEqual(C().method(), sentinel)
+ def test_annotations(self):
+ assert global_inner_has_pos_only().__annotations__ == {'x': int}
+
if __name__ == "__main__":
unittest.main()
--- /dev/null
+Fix ``SystemError`` when nested function has annotation on positional-only
+argument - by Anthony Sottile.
symtable_visit_annotations(struct symtable *st, stmt_ty s,
arguments_ty a, expr_ty returns)
{
+ if (a->posonlyargs && !symtable_visit_argannotations(st, a->posonlyargs))
+ return 0;
if (a->args && !symtable_visit_argannotations(st, a->args))
return 0;
if (a->vararg && a->vararg->annotation)