| 339 | } // namespace |
| 340 | |
| 341 | absl::StatusOr<bool> ResolveReferences(const Resolver& resolver, |
| 342 | IssueCollector& issues, cel::Ast& ast) { |
| 343 | ReferenceResolver ref_resolver(ast.reference_map(), resolver, issues); |
| 344 | |
| 345 | // Rewriting interface doesn't support failing mid traverse propagate first |
| 346 | // error encountered if fail fast enabled. |
| 347 | bool was_rewritten = cel::AstRewrite(ast.mutable_root_expr(), ref_resolver); |
| 348 | if (!ref_resolver.GetProgressStatus().ok()) { |
| 349 | return ref_resolver.GetProgressStatus(); |
| 350 | } |
| 351 | return was_rewritten; |
| 352 | } |
| 353 | |
| 354 | std::unique_ptr<AstTransform> NewReferenceResolverExtension( |
| 355 | ReferenceResolverOption option) { |