PsiClassType () { PsiJavaCodeReferenceElement reference = getReference(); PsiElement resolved = reference.resolve(); if (resolved instanceof PsiClass) { PsiClass aClass = (PsiClass)resolved; if (!PsiUtil.typeParametersIterable(aClass).iterator().hasNext()) return this; PsiManager manager = reference.getManager(); PsiElementFactory factory = JavaPsiFacade.getElementFactory(manager.getProject()); PsiSubstitutor rawSubstitutor = factory.createRawSubstitutor(aClass); return new PsiImmediateClassType(aClass, rawSubstitutor, getLanguageLevel(), getAnnotationProvider()); } String qualifiedName = reference.getQualifiedName(); String name = reference.getReferenceName(); if (name == null) name = ""; LightClassReference lightReference = new LightClassReference(reference.getManager(), name, qualifiedName, reference.getResolveScope()); return new PsiClassReferenceType(lightReference, null, getAnnotationProvider()); }