summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/test/test_positional_only_arg.py14
-rw-r--r--Objects/typeobject.c2
2 files changed, 15 insertions, 1 deletions
diff --git a/Lib/test/test_positional_only_arg.py b/Lib/test/test_positional_only_arg.py
index d4d259e..0aaad84 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 b6d925c..da249b5 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;