Skip to main content

visit_unique

Function visit_unique 

Source
pub(crate) fn visit_unique<'a, B>(
    word: Option<&'a SymExpr>,
    condition: Option<&'a SymBoolExpr>,
    visitor: impl FnMut(&SymExpr) -> ControlFlow<B>,
) -> ControlFlow<B>
Expand description

Visits reachable word nodes in depth-first, left-to-right order until the visitor breaks.

Expressions are hash-consed DAGs, so each distinct node is visited once. A tree walk would revisit shared subexpressions, which grows exponentially along chains such as nested hashes.