Invoked after all child nodes are processed.
| 1383 | |
| 1384 | // Invoked after all child nodes are processed. |
| 1385 | void PostVisitComprehension( |
| 1386 | const cel::Expr& expr, |
| 1387 | const cel::ComprehensionExpr& comprehension_expr) override { |
| 1388 | if (!progress_status_.ok()) { |
| 1389 | return; |
| 1390 | } |
| 1391 | |
| 1392 | ComprehensionStackRecord& record = comprehension_stack_.back(); |
| 1393 | if (comprehension_stack_.empty() || |
| 1394 | record.comprehension != &comprehension_expr) { |
| 1395 | return; |
| 1396 | } |
| 1397 | |
| 1398 | record.visitor->PostVisit(&expr); |
| 1399 | |
| 1400 | index_manager_.ReleaseSlots(record.slot_count); |
| 1401 | comprehension_stack_.pop_back(); |
| 1402 | } |
| 1403 | |
| 1404 | void PreVisitComprehensionSubexpression( |
| 1405 | const cel::Expr& expr, const cel::ComprehensionExpr& compr, |
nothing calls this directly
no test coverage detected