def _generate_union_tag_vars_funcs(self, union):
for field in union.all_fields:<EOL><INDENT>if not is_void_type(field.data_type):<EOL><INDENT>enum_field_name = fmt_enum_name(field.name, union)<EOL>with self.block_func(<EOL>func=fmt_camel(field.name),<EOL>args=[],<EOL>return_type=fmt_type(field.data_type)):<EOL><INDENT>with self.block(<EOL>'<STR_LIT>'.format(<EOL>fmt_camel_upper(field.name)),<EOL>delim=('<STR_LIT:{>', '<STR_LIT:}>')):<EOL><INDENT>error_msg = '<STR_LIT>'.format(<EOL>enum_field_name)<EOL>throw_exc = (<EOL>'<STR_LIT>'<EOL>'<STR_LIT>')<EOL>self.emit(throw_exc.format(error_msg))<EOL><DEDENT>self.emit('<STR_LIT>'.format(fmt_var(field.name)))<EOL><DEDENT>self.emit()<EOL><DEDENT><DEDENT>
Emits the getter methods for retrieving tag-specific state. Setters throw
        an error in the event an associated tag state variable is accessed without
        the correct tag state.