'See :meth:`xblock.runtime.Runtime:applicable_aside_types` for documentation.'

def applicable_aside_types(self, block):

    potential_set = set(super(DescriptorSystem, self).applicable_aside_types(block))
    if (getattr(block, 'xmodule_runtime', None) is not None):
        if hasattr(block.xmodule_runtime, 'applicable_aside_types'):
            application_set = set(block.xmodule_runtime.applicable_aside_types(block))
            return list(potential_set.intersection(application_set))
    return list(potential_set)
