id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc
567,super doesn't work with cpdef methods,robertwb,somebody,"On Thu, Aug 12, 2010 at 1:32 PM, Ken wrote:

{{{
> Having a bit of a problem with the super keyword in cpdef functions.
> It works for __init__ and friends, but not this:
>
> cdef class A:
>    cpdef foo(self):
>        print ""Foo""
>
> cdef class B(A):
>    cpdef foo(self):
>        super(B,self).foo()
>        print ""Bar""
>
> cdef class C(B):
>    cpdef foo(self):
>        super(C,self).foo()
>        print ""Plugh""
>
> Calling foo from C results in an infinite recursion between B.foo and
> C.foo.
> If this were python code (and A extended object), this would work.
> Making A extend object doesn't help in the cython code. Changing
> super(C,self).foo() to B.foo(self) and super(B,self).foo() to
> A.foo(self) makes it work.
}}}",defect,new,major,wishlist,Code Generation,,,
