def _get_subtype_tags(self):
assert self.is_member_of_enumerated_subtypes_tree(),'<STR_LIT>'<EOL>cur = self.parent_type<EOL>cur_dt = self<EOL>tags = []<EOL>while cur:<EOL><INDENT>assert cur.has_enumerated_subtypes()<EOL>for subtype_field in cur.get_enumerated_subtypes():<EOL><INDENT>if subtype_field.data_type is cur_dt:<EOL><INDENT>tags.append(subtype_field.name)<EOL>break<EOL><DEDENT><DEDENT>else:<EOL><INDENT>assert False, '<STR_LIT>'<EOL><DEDENT>cur_dt = cur<EOL>cur = cur.parent_type<EOL><DEDENT>tags.reverse()<EOL>return tuple(tags)<EOL>
Returns a list of type tags that refer to this type starting from the
base of the struct hierarchy.