From: Pablo Galindo Date: Fri, 31 May 2019 11:07:56 +0000 (+0100) Subject: bpo-37108: Support super with methods that use positional-only arguments (GH-13695) X-Git-Tag: v3.8.0b1~101 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a46d5c293d39995dc5218bf46a7d92b16fb2a15;p=python bpo-37108: Support super with methods that use positional-only arguments (GH-13695) --- diff --git a/Lib/test/test_positional_only_arg.py b/Lib/test/test_positional_only_arg.py index d4d259ef26..0aaad84cb3 100644 --- a/Lib/test/test_positional_only_arg.py +++ b/Lib/test/test_positional_only_arg.py @@ -398,6 +398,20 @@ class PositionalOnlyTestCase(unittest.TestCase): gen = f() self.assertEqual(next(gen), (1, 2)) + def test_super(self): + + sentinel = object() + + class A: + def method(self): + return sentinel + + class C(A): + def method(self, /): + return super().method() + + self.assertEqual(C().method(), sentinel) + if __name__ == "__main__": unittest.main() diff --git a/Objects/typeobject.c b/Objects/typeobject.c index b6d925c144..da249b569a 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -7807,7 +7807,7 @@ super_init(PyObject *self, PyObject *args, PyObject *kwds) "super(): no code object"); return -1; } - if (co->co_argcount == 0) { + if (co->co_posonlyargcount + co->co_argcount == 0) { PyErr_SetString(PyExc_RuntimeError, "super(): no arguments"); return -1;