@Override
  public void visitParameter(@NotNull PsiParameter parameter) {
    super.visitParameter(parameter);

    PsiElement parent = parameter.getParent();
    if (parent instanceof PsiParameterList && parameter.isVarArgs()) {
      if (!hasErrorResults()) add(checkFeature(parameter, JavaFeature.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, JavaFeature.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, JavaFeature.FOR_EACH));
      if (!hasErrorResults()) add(GenericsHighlightUtil.checkForEachParameterType((PsiForeachStatement)parent, parameter));
    }
  }
@Override
  public void visitParameter(@NotNull PsiParameter parameter)