diff options
author | Lisandro Dalcin <dalcinl@gmail.com> | 2023-04-05 13:38:56 +0100 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2023-04-05 14:39:29 +0200 |
commit | f5bf43e3aa1c408358b7b928e0736890a9dc8477 (patch) | |
tree | ba5a3f8f4cb7ec26f38c32dfd22e0b467aede06d | |
parent | 81cc29aedc0d0df69e81812cb8321cc0bcf41065 (diff) | |
download | cython-f5bf43e3aa1c408358b7b928e0736890a9dc8477.tar.gz |
Fix AnnotationWriter for IndexNode with empty TupleNode (GH-5355)
-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[()]] + """ |