1
Fork 0

Normalize both trait and inherent

This commit is contained in:
Santiago Pastorino 2022-03-24 14:17:54 -03:00
parent 22b311bd82
commit f4bd1e14bd
No known key found for this signature in database
GPG key ID: 8131A24E0C79EFAF

View file

@ -305,22 +305,15 @@ fn negative_impl<'cx, 'tcx>(
tcx.infer_ctxt().enter(|infcx| { tcx.infer_ctxt().enter(|infcx| {
// create a parameter environment corresponding to a (placeholder) instantiation of impl1 // create a parameter environment corresponding to a (placeholder) instantiation of impl1
let impl_env = tcx.param_env(impl1_def_id); let impl_env = tcx.param_env(impl1_def_id);
let subject1 = match tcx.impl_subject(impl1_def_id) { let subject1 = match traits::fully_normalize(
ImplSubject::Trait(impl1_trait_ref) => { &infcx,
match traits::fully_normalize( FulfillmentContext::new(),
&infcx, ObligationCause::dummy(),
FulfillmentContext::new(), impl_env,
ObligationCause::dummy(), tcx.impl_subject(impl1_def_id),
impl_env, ) {
impl1_trait_ref, Ok(s) => s,
) { Err(err) => bug!("failed to fully normalize {:?}: {:?}", impl1_def_id, err),
Ok(impl1_trait_ref) => ImplSubject::Trait(impl1_trait_ref),
Err(err) => {
bug!("failed to fully normalize {:?}: {:?}", impl1_trait_ref, err);
}
}
}
subject @ ImplSubject::Inherent(_) => subject,
}; };
let (subject2, obligations) = let (subject2, obligations) =