ReferenceType originalLhsType = (ReferenceType) lhsType; ReferenceType originalRhsType = (ReferenceType) rhsType;
	static public @NonNull IncompatibleTypes getPriorityForAssumingCompatible(			Type lhsType, Type rhsType) {		if (!(lhsType instanceof ReferenceType))			return SEEMS_OK;		if (!(rhsType instanceof ReferenceType))			return SEEMS_OK;		ReferenceType originalLhsType = (ReferenceType) lhsType;		ReferenceType originalRhsType = (ReferenceType) rhsType;		while (lhsType instanceof ArrayType && rhsType instanceof ArrayType) {			lhsType = ((ArrayType) lhsType).getElementType();			rhsType = ((ArrayType) rhsType).getElementType();		} 		if (lhsType instanceof ArrayType) {			if (rhsType.equals(ObjectType.OBJECT))				return ARRAY_AND_OBJECT;			else				return ARRAY_AND_NON_ARRAY;		}		if (rhsType instanceof ArrayType) {			if (lhsType.equals(ObjectType.OBJECT))				return ARRAY_AND_OBJECT;			else				return ARRAY_AND_NON_ARRAY;		}		if (lhsType.equals(rhsType))			return SEEMS_OK;		// For now, ignore the case where either reference is not		// of an object type. (It could be either an array or null.)		if (!(lhsType instanceof ObjectType)				|| !(rhsType instanceof ObjectType))			return SEEMS_OK;		return getPriorityForAssumingCompatible((ObjectType) lhsType,				(ObjectType) rhsType);	}