private void checkFieldType(String searchName, String fieldDesc, String fieldName, DataType fieldType,
                                Map<String, DataType> seenFields) {
        DataType seenType = seenFields.get(fieldName);
        if (seenType == null) {
            seenFields.put(fieldName, fieldType);
        } else if ( ! compatibleTypes(seenType, fieldType)) {
            throw newProcessException(searchName, fieldName, "Incompatible types. Expected " +
                                                             seenType.getName() + " for " + fieldDesc +
                                                             " '" + fieldName + "', got " + fieldType.getName() + ".");
        }
    }
This Processor makes sure all fields with the same name have the same {@link DataType}. This check
explicitly disregards whether a field is an index field, an attribute or a summary field. This is a requirement if we
hope to move to a model where index fields, attributes and summary fields share a common field class.

@author Simon Thoresen Hult
config-model/src/main/java/com/yahoo/schema/processing/ValidateFieldTypes.java