code: def _get_subtype_tags(self):
          
          assert self.is_member_of_enumerated_subtypes_tree(), \
              'Not a part of a subtypes tree.'
          cur = self.parent_type
          cur_dt = self
          tags = []
          while cur:
              assert cur.has_enumerated_subtypes()
              for subtype_field in cur.get_enumerated_subtypes():
                  if subtype_field.data_type is cur_dt:
                      tags.append(subtype_field.name)
                      break
              else:
                  assert False, 'Could not find?!'
              cur_dt = cur
              cur = cur.parent_type
          tags.reverse()
          return tuple(tags)
docs: Returns a list of type tags that refer to this type starting from the
          base of the struct hierarchy.