private static boolean isSameKindBuiltInDataType(BuiltInDataType dataType1,
			DataType dataType2) {
		if (dataType1 instanceof BuiltIn) {
			// Same kind if both types share a common BuiltIn implementation
			Class<?> baseClass = dataType1.getClass();
			Class<?> superClass;
			while ((superClass = baseClass.getSuperclass()) != BuiltIn.class) {
				baseClass = superClass;
			}
			return baseClass.isAssignableFrom(dataType2.getClass());
		}
		// Ensure built-in implementation class is the same
		return dataType1.getClass().equals(dataType2.getClass());
	}
Determine if two dataTypes are the same kind of datatype without considering naming or
component makeup.  The use of Typedefs is ignored and stripped away for comparison.
This method also ignores details about most built-in types, pointers and arrays 
(e.g., number of elements or size).  Implementations of the following abstract classes
will be treated as the same kind as another datatype which extends the same abstract
class:
<ul>
<li>{@link AbstractIntegerDataType}</li> 
<li>{@link AbstractFloatDataType}</li>
<li>{@link AbstractStringDataType}</li>
</ul>
 Other uses of {@link BuiltInDataType} must match the specific implementation class. 
@param dataType1 first data type
@param dataType2 second data type
@return true if the two dataTypes are the same basic kind else false
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/data/DataTypeUtilities.java