@Override
	public void dataTypeDeleted(DataType dt) {
		boolean changed = false;
		for (int i = components.size() - 1; i >= 0; i--) { // reverse order
			DataTypeComponentImpl dtc = components.get(i);
			if (dtc.isBitFieldComponent()) {
				// Do not allow bitfield to be destroyed
				// If base type is removed - revert to primitive type
				BitFieldDataType bitfieldDt = (BitFieldDataType) dtc.getDataType();
				if (bitfieldDt.getBaseDataType() == dt &&
					updateBitFieldDataType(dtc, dt, bitfieldDt.getPrimitiveBaseDataType())) {
					changed = true;
				}
			}
			else if (dtc.getDataType() == dt) {
				dt.removeParent(this);
				dtc.setDataType(BadDataType.dataType); // updates record
				changed = true;
			}
		}
		if (changed && isPackingEnabled() && !repack(true)) {
			// NOTE: Must assume alignment change since we are unable to determine
			// without stored alignment
			notifyAlignmentChanged();
		}
	}
Construct a new UnionDataType.
NOTE: A constructor form which accepts a {@link DataTypeManager} should be used when possible
since there may be performance benefits during datatype resolution.
@param name the name of this dataType
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/data/UnionDataType.java