def ExpandSubClasses(self, t):
    'Generate a set of all (known) subclasses for a type.\n\n    Arguments:\n      t: A type. E.g. NamedType("int").\n\n    Returns:\n      A set of types. This set includes t as well as all its subclasses. For\n      example, this will return "int" and "bool" for "int".\n    '
    queue = [t]
    seen = set()
    while queue:
        item = queue.pop()
        if (item not in seen):
            seen.add(item)
            queue.extend(self._subclasses[item])
    return seen
Generate a set of all (known) subclasses for a type.

Arguments:
  t: A type. E.g. NamedType("int").

Returns:
  A set of types. This set includes t as well as all its subclasses. For
  example, this will return "int" and "bool" for "int".
def ExpandSubClasses(self, t):
    'Generate a set of all (known) subclasses for a type.\n\n    Arguments:\n      t: A type. E.g. NamedType("int").\n\n    Returns:\n      A set of types. This set includes t as well as all its subclasses. For\n      example, this will return "int" and "bool" for "int".\n    '
    queue = [t]
    seen = set()
    while queue:
        item = queue.pop()
        if (item not in seen):
            seen.add(item)
            queue.extend(self._subclasses[item])
    return seen