def walk(parents): for parent in parents: parent_name = parent.type.id if IsDartCollectionType(parent_name): result.append(parent_name) continue if self.HasInterface(parent_name): parent_interface = self.GetInterface(parent_name) result.append(parent_interface) walk(parent_interface.parents)
def walk(parents): for parent in parents: parent_name = parent.type.id if parent_name == 'EventTarget': # Currently EventTarget is implemented as a mixin, not a proper # super interface---ignore its members. continue if IsDartCollectionType(parent_name): result.append(parent_name) continue if self._database.HasInterface(parent_name): parent_interface = self._database.GetInterface(parent_name) result.append(parent_interface) walk(parent_interface.parents)
def walk(parents, walk_result): for parent in parents: parent_name = parent.type.id if IsDartCollectionType(parent_name): if not (parent_name in walk_result): walk_result.append(parent_name) continue if self.HasInterface(parent_name): parent_interface = self.GetInterface(parent_name) if not (parent_interface in walk_result): # Interface has multi-inherited don't add interfaces more than once # to our parent result list. walk_result.append(parent_interface) walk(parent_interface.parents, walk_result) return walk_result