diff options
| author | Michael Goulet <michael@errs.io> | 2022-07-27 05:06:46 +0000 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2022-08-03 01:37:02 +0000 |
| commit | 16a3601f62e1a2e2ae34668005a317d931e13a09 (patch) | |
| tree | d3625a069ebda9ef6b05eb4f86b153ed3e53e3b8 /compiler/rustc_trait_selection/src/traits | |
| parent | e4417cf020fbcd6182c11637bc6b8694434bd81a (diff) | |
| download | rust-16a3601f62e1a2e2ae34668005a317d931e13a09.tar.gz rust-16a3601f62e1a2e2ae34668005a317d931e13a09.zip | |
Delay a bug when failed to normalize trait ref during specialization
Diffstat (limited to 'compiler/rustc_trait_selection/src/traits')
| -rw-r--r-- | compiler/rustc_trait_selection/src/traits/specialize/mod.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/compiler/rustc_trait_selection/src/traits/specialize/mod.rs b/compiler/rustc_trait_selection/src/traits/specialize/mod.rs index 5f77aae6f22..f9c06178368 100644 --- a/compiler/rustc_trait_selection/src/traits/specialize/mod.rs +++ b/compiler/rustc_trait_selection/src/traits/specialize/mod.rs @@ -149,8 +149,6 @@ pub(super) fn specializes(tcx: TyCtxt<'_>, (impl1_def_id, impl2_def_id): (DefId, // Create an infcx, taking the predicates of impl1 as assumptions: tcx.infer_ctxt().enter(|infcx| { - // Normalize the trait reference. The WF rules ought to ensure - // that this always succeeds. let impl1_trait_ref = match traits::fully_normalize( &infcx, FulfillmentContext::new(), @@ -159,8 +157,12 @@ pub(super) fn specializes(tcx: TyCtxt<'_>, (impl1_def_id, impl2_def_id): (DefId, impl1_trait_ref, ) { Ok(impl1_trait_ref) => impl1_trait_ref, - Err(err) => { - bug!("failed to fully normalize {:?}: {:?}", impl1_trait_ref, err); + Err(_errors) => { + tcx.sess.delay_span_bug( + tcx.def_span(impl1_def_id), + format!("failed to fully normalize {impl1_trait_ref}"), + ); + impl1_trait_ref } }; |
