PsiType (final PsiElement element) { final PsiType originalType = Util.getType(element); if (myBinding != null) { final PsiType type = myBinding.substitute(myTypes.get(element)); @NonNls final String objectFQName = CommonClassNames.JAVA_LANG_OBJECT; if (originalType.getCanonicalText().equals(objectFQName)) { if (type == null) { return originalType; } if (type instanceof PsiWildcardType){ final PsiType bound = ((PsiWildcardType)type).getBound(); if (bound != null){ return bound; } return originalType; } } return type; } return originalType; }