PsiType (PsiType type1, PsiType type2, PsiManager manager) { if (TypeConversionUtil.isPrimitiveAndNotNull(type1) || TypeConversionUtil.isPrimitiveAndNotNull(type2)) return null; if (TypeConversionUtil.isNullType(type1)) return type2; if (TypeConversionUtil.isNullType(type2)) return type1; if (Comparing.equal(type1, type2)) return type1; return getLeastUpperBound(type1, type2, new LinkedHashSet<>(), manager); }