boolean (PsiType checked, PsiFile placeFile, String typeText) { final boolean isClassType = checked instanceof PsiClassType; if (isClassType) { final PsiClass psiClass = ((PsiClassType)checked).resolve(); if (psiClass != null) { final int i = typeText.indexOf("<"); String rawName = i > 0 ? typeText.substring(0, i) : typeText; if (!ClassUtil.getSuperClassesWithCache(psiClass).containsKey(rawName)) { return false; } } } PsiType myType = getCachedType(typeText, placeFile); if (checked == PsiTypes.nullType()) return myType == PsiTypes.nullType(); return TypesUtil.isAssignableByMethodCallConversion(myType, checked, placeFile); }