PsiType (PsiTypeParameter typeParam, PsiType param, PsiType arg, boolean isContraVariantPosition, final LanguageLevel languageLevel) { final Pair<PsiType, ConstraintType> constraint = getSubstitutionForTypeParameterConstraint(typeParam, param, arg, isContraVariantPosition, languageLevel); return constraint == null ? (PsiPrimitiveType)PsiTypes.nullType() : constraint.getFirst(); }