[Cython] Misleading error message when assigning function pointers with differing except* declarations

Michael Enßlin michael at ensslin.cc
Thu May 7 15:13:13 CEST 2015


consider the following example:

$ cat demo.pyx
cdef void (*foo)()

cdef void bar() except*:

foo = bar

$ cython demo.pyx

Error compiling Cython file:
cdef void (*foo)()

cdef void bar() except*:

foo = bar

demo.pyx:6:9: Cannot assign type 'void (void)' to 'void (*)(void)'

this is all expected behavior, but the error message is entirely
misleading; it should be something like

demo.pyx:6:9: Function pointers have incompatible 'except *' declarations.

Note that the same error message also occurs when the pointer is
declared except*, and the function isn't.

~ mic_e

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://mail.python.org/pipermail/cython-devel/attachments/20150507/e100f745/attachment.sig>

More information about the cython-devel mailing list