void (@NotNull PsiReferenceParameterList referenceParameterList) { super.visitReferenceParameterList(referenceParameterList); final PsiTypeElement[] typeParameterElements = referenceParameterList.getTypeParameterElements(); if (typeParameterElements.length == 1) { final PsiTypeElement typeParameterElement = typeParameterElements[0]; final PsiType type = typeParameterElement.getType(); if (type instanceof PsiDiamondType) { final PsiNewExpression newExpression = PsiTreeUtil.getParentOfType(referenceParameterList, PsiNewExpression.class); if (newExpression != null) { final List<PsiType> types = PsiDiamondTypeImpl.resolveInferredTypesNoCheck(newExpression, newExpression).getInferredTypes(); if (!types.isEmpty()) { boolean pullToErrors = !PsiUtil.isLanguageLevel7OrHigher(referenceParameterList) || PsiDiamondTypeImpl.resolveInferredTypes(newExpression, newExpression).getErrorMessage() != null; registerError(referenceParameterList, pullToErrors ? ProblemHighlightType.ERROR : ProblemHighlightType.GENERIC_ERROR_OR_WARNING); } } } } }