boolean (@NotNull PsiClass aClass, @NotNull PsiSubstitutor substitutor1, @NotNull PsiSubstitutor substitutor2, int level) { for (PsiTypeParameter typeParameter : PsiUtil.typeParametersIterable(aClass)) { PsiType typeArg1 = substitutor1.substitute(typeParameter); PsiType typeArg2 = substitutor2.substitute(typeParameter); if (typeArg1 == null || typeArg2 == null) return true; if (TypesDistinctProver.provablyDistinct(typeArg1, typeArg2, level)) return false; } return true; }