fn transform_constant_expr<F: FnMut(Ty) -> VarId>(
span: &Span,
nst: &mut Vec<Statement>,
val: ConstantExpr,
make_new_var: &mut F,
) -> Operand
Expand description
If the constant value is a constant ADT, push Assign::Aggregate
statements
to the vector of statements, that bind new variables to the ADT parts and
the variable assigned to the complete ADT.
Goes fom e.g. f(T::A(x, y))
to let a = T::A(x, y); f(a)
.
The function is recursively called on the aggregate fields (e.g. here x and y).