| 85 | : environment_(environment), impl_(std::move(impl)), root_(root) {} |
| 86 | |
| 87 | absl::StatusOr<Value> TraceImpl( |
| 88 | const ActivationInterface& activation, |
| 89 | EvaluationListener evaluation_listener, google::protobuf::Arena* absl_nonnull arena, |
| 90 | const EvaluateOptions& options) const override { |
| 91 | ABSL_DCHECK(arena != nullptr); |
| 92 | ComprehensionSlots slots(impl_.comprehension_slots_size()); |
| 93 | ExecutionFrameBase frame(activation, std::move(evaluation_listener), |
| 94 | impl_.options(), GetTypeProvider(), |
| 95 | environment_->descriptor_pool.get(), |
| 96 | options.message_factory != nullptr |
| 97 | ? options.message_factory |
| 98 | : environment_->MutableMessageFactory(), |
| 99 | arena, options.embedder_context, slots); |
| 100 | |
| 101 | Value result; |
| 102 | AttributeTrail attribute; |
| 103 | CEL_RETURN_IF_ERROR(root_->Evaluate(frame, result, attribute)); |
| 104 | |
| 105 | return result; |
| 106 | } |
| 107 | |
| 108 | const TypeProvider& GetTypeProvider() const override { |
| 109 | return environment_->type_registry.GetComposedTypeProvider(); |
nothing calls this directly
no test coverage detected