def unique_field_data_types(self):
data_type_names = set()<EOL>for field in self.fields:<EOL><INDENT>if not is_void_type(field.data_type):<EOL><INDENT>if field.data_type.name in data_type_names:<EOL><INDENT>return False<EOL><DEDENT>else:<EOL><INDENT>data_type_names.add(field.data_type.name)<EOL><DEDENT><DEDENT><DEDENT>else:<EOL><INDENT>return True<EOL><DEDENT>
Checks if all variants have different data types.

If so, the selected variant can be determined just by the data type of
the value without needing a field name / tag. In some languages, this
lets us make a shortcut