| 1049 | } |
| 1050 | |
| 1051 | std::any ParserVisitor::visitMemberCall(CelParser::MemberCallContext* ctx) { |
| 1052 | auto operand = ExprFromAny(visit(ctx->member())); |
| 1053 | // Handle the error case where no valid identifier is specified. |
| 1054 | if (!ctx->id) { |
| 1055 | return ExprToAny(factory_.NewUnspecified( |
| 1056 | factory_.NextId(SourceRangeFromParserRuleContext(ctx)))); |
| 1057 | } |
| 1058 | auto id = ctx->id->getText(); |
| 1059 | int64_t op_id = factory_.NextId(SourceRangeFromToken(ctx->open)); |
| 1060 | auto args = visitList(ctx->args); |
| 1061 | return ExprToAny( |
| 1062 | ReceiverCallOrMacroImpl(op_id, id, std::move(operand), std::move(args))); |
| 1063 | } |
| 1064 | |
| 1065 | std::any ParserVisitor::visitIndex(CelParser::IndexContext* ctx) { |
| 1066 | auto target = ExprFromAny(visit(ctx->member())); |
nothing calls this directly
no test coverage detected