Create an expression equivalent to: target.map(varIdent, mapExpr)
| 393 | // Create an expression equivalent to: |
| 394 | // target.map(varIdent, mapExpr) |
| 395 | absl::optional<Expr> MakeMapComprehension(MacroExprFactory& factory, |
| 396 | Expr target, Expr var_ident, |
| 397 | Expr map_expr) { |
| 398 | auto step = factory.NewCall( |
| 399 | google::api::expr::common::CelOperator::ADD, factory.NewAccuIdent(), |
| 400 | factory.NewList(factory.NewListElement(std::move(map_expr)))); |
| 401 | auto var_name = var_ident.ident_expr().name(); |
| 402 | return factory.NewComprehension(std::move(var_name), std::move(target), |
| 403 | factory.AccuVarName(), factory.NewList(), |
| 404 | factory.NewBoolConst(true), std::move(step), |
| 405 | factory.NewAccuIdent()); |
| 406 | } |
| 407 | |
| 408 | // Create an expression equivalent to: |
| 409 | // cel.bind(varIdent, varExpr, call_expr) |
no test coverage detected