pub(in solve) fn make_canonical_state<Infcx, T, I>(
    infcx: &Infcx,
    var_values: &[I::GenericArg],
    max_input_universe: UniverseIndex,
    data: T,
) -> CanonicalState<I, T>
where Infcx: InferCtxtLike<Interner = I>, I: Interner, T: TypeFoldable<I>,
Expand description

Used by proof trees to be able to recompute intermediate actions while evaluating a goal. The var_values not only include the bound variables of the query input, but also contain all unconstrained inference vars created while evaluating this goal.