@Override
  @NotNull
  public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly) {
    return new JavaElementVisitor() {
      @Override
      public void visitParameterList(@NotNull PsiParameterList parameterList) {
        super.visitParameterList(parameterList);
        if (parameterList.getParent() instanceof PsiLambdaExpression &&
            RemoveRedundantParameterTypesFix.isApplicable(parameterList)) {
          for (PsiParameter parameter : parameterList.getParameters()) {
            if (parameter.getTypeElement() != null) {
              holder.problem(parameter.getTypeElement(), JavaBundle.message("inspection.message.lambda.parameter.type.is.redundant"))
                .fix(new RemoveRedundantParameterTypesFix((PsiLambdaExpression)parameterList.getParent())).register();
            }
          }
        }
      }
    };
  }
@Override
  @NotNull
  public PsiElementVisitor buildVisitor(@NotNull final ProblemsHolder holder, boolean isOnTheFly)