Add back in normalize call

This commit is contained in:
Jack Huey 2022-09-16 17:52:04 -04:00
parent e09242d5b8
commit 1eb71f0893
1 changed files with 10 additions and 5 deletions

View File

@ -76,15 +76,18 @@ struct AscribeUserTypeCx<'me, 'tcx> {
impl<'me, 'tcx> AscribeUserTypeCx<'me, 'tcx> {
fn normalize<T>(&mut self, value: T) -> T
where
T: TypeFoldable<'tcx>,
{
self.normalize_with_cause(value, ObligationCause::misc(self.span, hir::CRATE_HIR_ID))
}
fn normalize_with_cause<T>(&mut self, value: T, cause: ObligationCause<'tcx>) -> T
where
T: TypeFoldable<'tcx>,
{
self.infcx
.partially_normalize_associated_types_in(
ObligationCause::misc(self.span, hir::CRATE_HIR_ID),
self.param_env,
value,
)
.partially_normalize_associated_types_in(cause, self.param_env, value)
.into_value_registering_obligations(self.infcx, self.fulfill_cx)
}
@ -154,6 +157,8 @@ impl<'me, 'tcx> AscribeUserTypeCx<'me, 'tcx> {
hir::CRATE_HIR_ID,
ObligationCauseCode::AscribeUserTypeProvePredicate(predicate_span),
);
let instantiated_predicate =
self.normalize_with_cause(instantiated_predicate, cause.clone());
self.prove_predicate(instantiated_predicate, cause);
}