| 63 | } |
| 64 | |
| 65 | absl::optional<Expr> ExpandHasMacro(MacroExprFactory& factory, |
| 66 | absl::Span<Expr> args) { |
| 67 | if (args.size() != 1) { |
| 68 | return factory.ReportError("has() requires 1 arguments"); |
| 69 | } |
| 70 | if (!args[0].has_select_expr() || args[0].select_expr().test_only()) { |
| 71 | return factory.ReportErrorAt(args[0], |
| 72 | "has() argument must be a field selection"); |
| 73 | } |
| 74 | return factory.NewPresenceTest( |
| 75 | args[0].mutable_select_expr().release_operand(), |
| 76 | args[0].mutable_select_expr().release_field()); |
| 77 | } |
| 78 | |
| 79 | Macro MakeHasMacro() { |
| 80 | auto macro_or_status = Macro::Global(CelOperator::HAS, 1, ExpandHasMacro); |
nothing calls this directly
no test coverage detected