1
Fork 0

Record impl args in the InsepctCandiate rather than rematching during select

This commit is contained in:
Michael Goulet 2024-05-06 11:24:40 -04:00
parent fc47cf38e5
commit 207b4b8e88
7 changed files with 99 additions and 65 deletions

View file

@ -123,6 +123,8 @@ pub enum ProbeStep<'tcx> {
/// used whenever there are multiple candidates to prove the
/// current goalby .
NestedProbe(Probe<'tcx>),
/// A trait goal was satisfied by an impl candidate.
RecordImplArgs { impl_args: CanonicalState<'tcx, ty::GenericArgsRef<'tcx>> },
/// A call to `EvalCtxt::evaluate_added_goals_make_canonical_response` with
/// `Certainty` was made. This is the certainty passed in, so it's not unified
/// with the certainty of the `try_evaluate_added_goals` that is done within;

View file

@ -136,6 +136,9 @@ impl<'a, 'b> ProofTreeFormatter<'a, 'b> {
ProbeStep::MakeCanonicalResponse { shallow_certainty } => {
writeln!(this.f, "EVALUATE GOALS AND MAKE RESPONSE: {shallow_certainty:?}")?
}
ProbeStep::RecordImplArgs { impl_args } => {
writeln!(this.f, "RECORDED IMPL ARGS: {impl_args:?}")?
}
}
}
Ok(())