Yes, this is a bug; there is a bad interaction between fused types and special methods.
I created http://trac.cython.org/cython_trac/ticket/802 On Fri, Feb 8, 2013 at 8:54 AM, Dave Hirschfeld <dave.hirschf...@gmail.com> wrote: > Is this a bug? > The following code fails to compile on windows VS2012, 32bit Python2.7 with a > recent 0.19-pre github cython: > > > cimport cython > > ctypedef fused char_or_float: > cython.char > cython.float > > > cdef class FusedExample: > > def __init__(self, char_or_float x): > pass > # > > Resulting in the following exception: > > C:\temp>C:\dev\bin\Python27\python.exe setup.py build_ext --inplace -- > compiler=msvc > Compiling example.pyx because it changed. > Cythonizing example.pyx > running build_ext > building 'example' extension > C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\cl.exe > /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -I. > -IC:\dev\code\Gazprom.MT\pricing\gazprom\mt\pricing > -IC:\dev\bin\Python27\lib\site-packages\numpy\core\include > "-IC:\dev\lib\Intel\Composer XE 2013\mkl\include" > -IC:\dev\bin\Python27\include > -IC:\dev\bin\Python27\PC > /Tp example.cpp > /Fobuild\temp.win32-2.7\Release\example.obj > /EHsc /openmp > example.cpp > example.cpp(1630) : error C2062: type 'int' unexpected > example.cpp(1630) : error C2143: syntax error : missing ';' before '{' > example.cpp(1630) : error C2447: '{' : missing function header (old-style > formal > list?) > example.cpp(1687) : error C2062: type 'int' unexpected > example.cpp(1687) : error C2143: syntax error : missing ';' before '{' > example.cpp(1687) : error C2447: '{' : missing function header (old-style > formal > list?) > example.cpp(3869) : error C2440: 'initializing' : cannot convert > from 'PyObject *(__cdecl *)(PyObject *,PyObject *,PyObject *)' to > 'initproc' > None of the functions with this name in scope match the target type > error: command '"C:\Program Files (x86)\Microsoft Visual Studio > 11.0\VC\BIN\cl.exe"' > failed with exit status 2 > > > If the cdef is removed from the class it compiles fine. Are fused types > supposed > to work with cdef classes? > > > Thanks, > Dave > > _______________________________________________ > cython-devel mailing list > cython-devel@python.org > http://mail.python.org/mailman/listinfo/cython-devel _______________________________________________ cython-devel mailing list cython-devel@python.org http://mail.python.org/mailman/listinfo/cython-devel