boolean (@Nullable PsiType type, @NotNull PsiSubstitutor substitutor, @NotNull Collection<PsiClass> weakestTypeClasses) { final PsiClass aClass = PsiUtil.resolveClassInClassTypeOnly(type); if (aClass == null) { return false; } if (aClass instanceof PsiTypeParameter) { final PsiType substitution = substitutor.substitute((PsiTypeParameter)aClass); return checkType(substitution, weakestTypeClasses); } checkClass(aClass, weakestTypeClasses); return true; }