Function mz_transform::normalize_lets::let_motion::digest_lets
source · fn digest_lets(expr: &mut MirRelationExpr)
Expand description
Promotes all available let bindings to the root of the expression.
The method only extracts bindings that can be placed in the same LetRec
scope, so in particular
it does not continue recursively through LetRec
nodes and stops once it arrives at the first one
along each path from the root. Each of values
and body
may need further processing to promote
all bindings to their respective roots.
If the resulting expr
is not a LetRec
node, then it contains no further Let
or LetRec
nodes.