Commit 24e2ac27 authored by Stefan Behnel's avatar Stefan Behnel

trial fix for ticket #583: method signatures of overridden C methods in pure mode

parent c4538858
...@@ -1559,7 +1559,8 @@ class CClassScope(ClassScope): ...@@ -1559,7 +1559,8 @@ class CClassScope(ClassScope):
error(pos, "'%s' already defined" % name) error(pos, "'%s' already defined" % name)
#print "CClassScope.declare_cfunction: checking signature" ### #print "CClassScope.declare_cfunction: checking signature" ###
if type.same_c_signature_as(entry.type, as_cmethod = 1) and type.nogil == entry.type.nogil: 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: 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) entry = self.add_cfunction(name, type, pos, cname or name, visibility='ignore', modifiers=modifiers)
defining = 1 defining = 1
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment