diff options
-rw-r--r-- | Cython/CodeWriter.py | 5 | ||||
-rw-r--r-- | tests/run/embedsignatures.pyx | 5 |
2 files changed, 9 insertions, 1 deletions
diff --git a/Cython/CodeWriter.py b/Cython/CodeWriter.py index 2e4646a65..a5453b90b 100644 --- a/Cython/CodeWriter.py +++ b/Cython/CodeWriter.py @@ -678,7 +678,10 @@ class ExpressionWriter(TreeVisitor): self.visit(node.base) self.put(u"[") if isinstance(node.index, TupleNode): - self.emit_sequence(node.index) + if node.index.subexpr_nodes(): + self.emit_sequence(node.index) + else: + self.put(u"()") else: self.visit(node.index) self.put(u"]") diff --git a/tests/run/embedsignatures.pyx b/tests/run/embedsignatures.pyx index 147f7afdd..c007edde3 100644 --- a/tests/run/embedsignatures.pyx +++ b/tests/run/embedsignatures.pyx @@ -429,6 +429,7 @@ cdef class Foo: def m29(self, a: list(range(3))[0:1:1]): pass def m30(self, a: list(range(3))[7, 3:2:1, ...]): pass def m31(self, double[::1] a): pass + def m32(self, a: tuple[()]) -> tuple[tuple[()]]: pass __doc__ += ur""" >>> print(Foo.m00.__doc__) @@ -526,4 +527,8 @@ Foo.m30(self, a: list(range(3))[7, 3:2:1, ...]) >>> print(Foo.m31.__doc__) Foo.m31(self, double[::1] a) + +>>> print(Foo.m32.__doc__) +Foo.m32(self, a: tuple[()]) -> tuple[tuple[()]] + """ |