+
#
# Pyrex - Types
#
if other_type is error_type:
return 1
if other_type.is_ptr:
- if other_type.base_type == self.base_type:
- return 1
- else:
- pass
+ return 0
+ #print self, other_type
+ #if other_type.base_type == self.base_type:
+ # return 1
+ #else:
+ # pass
#TODO: should send a warning message: initialization from incompatible pointer type (in C/C++)
if other_type == self.base_type:
return 1
src_type = args[i].type
dst_type = func_type.args[i].type
if dst_type.assignable_from(src_type):
- #print src_type, src_type.is_pyobject, dst_type, dst_type.is_pyobject
- if src_type == dst_type or (dst_type.is_reference and src_type == dst_type.base_type):
+ if src_type == dst_type or (dst_type.is_reference and \
+ src_type == dst_type.base_type) or \
+ dst_type.same_as(src_type):
pass # score 0
elif is_promotion(src_type, dst_type):
score[2] += 1
entry.in_cinclude = self.in_cinclude
if name:
entry.qualified_name = self.qualify_name(name)
-# if name in entries and self.is_cpp():
-# entries[name].overloaded_alternatives.append(entry)
-# else:
-# entries[name] = entry
- entries[name] = entry
+ if name in entries and self.is_cpp():
+ entries[name].overloaded_alternatives.append(entry)
+ else:
+ entries[name] = entry
+# entries[name] = entry
entry.scope = self
entry.visibility = visibility
return entry