@Override
      public void visitLambdaExpression(@NotNull PsiLambdaExpression lambda) {
        PsiElement parent = lambda.getParent();
        if (!(parent instanceof PsiExpressionList)) return;
        PsiMethodCallExpression call = ObjectUtils.tryCast(parent.getParent(), PsiMethodCallExpression.class);
        if (call == null) return;
        if (!(lambda.getBody() instanceof PsiExpression expr)) return;
        if (!ExpressionUtils.isSafelyRecomputableExpression(expr)) return;
        if (ContainerUtil.or(lambda.getParameterList().getParameters(),
                             param -> ExpressionUtils.isReferenceTo(expr, param))) {
          return;
        }
        if (LIST_REPLACE_ALL.test(call)) {
          registerProblem(lambda, expr, new ReplaceWithCollectionsFillFix());
          return;
        }
        for (LambdaAndExplicitMethodPair info : LambdaAndExplicitMethodPair.INFOS) {
          if (info.isLambdaCall(call, lambda)) {
            registerProblem(lambda, expr, new RemoveExcessiveLambdaFix(info, info.getExplicitMethodName(call)));
          }
        }
      }
@Override
      public void visitLambdaExpression(@NotNull PsiLambdaExpression lambda)