pub fn visit<V: Visitor>(hir: &Hir, visitor: V) -> Result<V::Output, V::Err>
Expand description
Executes an implementation of Visitor
in constant stack space.
This function will visit every node in the given Hir
while calling
appropriate methods provided by the Visitor
trait.
The primary use case for this method is when one wants to perform case
analysis over an Hir
without using a stack size proportional to the depth
of the Hir
. Namely, this method will instead use constant stack space,
but will use heap space proportional to the size of the Hir
. This may be
desirable in cases where the size of Hir
is proportional to end user
input.
If the visitor returns an error at any point, then visiting is stopped and the error is returned.