Apparently, in C++ implicit conversions are not transitive.
This commit is contained in:
1 parent
944cef3e14
commit
6fbd1c3bf3
1 file changed
+11
-10
+11
-10
@@ -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):
|
||||
|
||||
|
||||
Reference in new issue
Block a user