Apparently, in C++ implicit conversions are not transitive.

This commit is contained in:
Gustavo J. A. M. Carneiro committed 2008-03-22 14:51:00 +00:00
1 parent 944cef3e14
commit 6fbd1c3bf3
1 file changed
+11 -10
+11 -10
View File
@@ -613,17 +613,18 @@ class CppClass(object):
>>> l = Foo.get_all_implicit_conversions()
>>> l.sort(lambda cls1, cls2: cmp(cls1.name, cls2.name))
>>> [cls.name for cls in l]
['Bar', 'Zbr']
['Bar']
"""
classes = []
to_visit = list(self.implicitly_converts_from)
while to_visit:
source = to_visit.pop(0)
if source in classes or source is self:
continue
classes.append(source)
to_visit.extend(source.implicitly_converts_from)
return classes
return list(self.implicitly_converts_from)
# classes = []
# to_visit = list(self.implicitly_converts_from)
# while to_visit:
# source = to_visit.pop(0)
# if source in classes or source is self:
# continue
# classes.append(source)
# to_visit.extend(source.implicitly_converts_from)
# return classes
def _update_names(self):