trial fix for ticket #583: method signatures of overridden C methods in pure mode
authorStefan Behnel <scoder@users.berlios.de>
Mon, 8 Nov 2010 09:14:32 +0000 (10:14 +0100)
committerStefan Behnel <scoder@users.berlios.de>
Mon, 8 Nov 2010 09:14:32 +0000 (10:14 +0100)
Cython/Compiler/Symtab.py

index c6062ec15b7cc841cf250d94ef8d4b6069b71b98..92276775dd6e1c692679a75fdd0b0ad16c61f63b 100644 (file)
@@ -1559,7 +1559,8 @@ class CClassScope(ClassScope):
                     error(pos, "'%s' already defined" % name)
                 #print "CClassScope.declare_cfunction: checking signature" ###
                 if type.same_c_signature_as(entry.type, as_cmethod = 1) and type.nogil == entry.type.nogil:
-                    pass
+                    # may still need to adjust the type of 'self' => simply override the type
+                    entry.type = type
                 elif type.compatible_signature_with(entry.type, as_cmethod = 1) and type.nogil == entry.type.nogil:
                     entry = self.add_cfunction(name, type, pos, cname or name, visibility='ignore', modifiers=modifiers)
                     defining = 1