void (@NotNull PsiParameter parameter) { super.visitParameter(parameter); PsiElement parent = parameter.getParent(); if (parent instanceof PsiParameterList && parameter.isVarArgs()) { if (!hasErrorResults()) add(checkFeature(parameter, HighlightingFeature.VARARGS)); if (!hasErrorResults()) add(GenericsHighlightUtil.checkVarArgParameterIsLast(parameter)); if (!hasErrorResults()) add(HighlightUtil.checkCStyleDeclaration(parameter)); } else if (parent instanceof PsiCatchSection) { if (!hasErrorResults() && parameter.getType() instanceof PsiDisjunctionType) { add(checkFeature(parameter, HighlightingFeature.MULTI_CATCH)); } if (!hasErrorResults()) add(HighlightUtil.checkCatchParameterIsThrowable(parameter)); if (!hasErrorResults()) GenericsHighlightUtil.checkCatchParameterIsClass(parameter, myErrorSink); if (!hasErrorResults()) HighlightUtil.checkCatchTypeIsDisjoint(parameter, myErrorSink); } else if (parent instanceof PsiForeachStatement forEach) { add(checkFeature(forEach, HighlightingFeature.FOR_EACH)); if (!hasErrorResults()) add(GenericsHighlightUtil.checkForEachParameterType((PsiForeachStatement)parent, parameter)); } }