@@ -10,7 +10,7 @@ use crate::traits::{ObligationCause, ObligationCauseCode};
1010use rustc_data_structures:: intern:: Interned ;
1111use rustc_errors:: { Diag , IntoDiagArg } ;
1212use rustc_hir:: def:: Namespace ;
13- use rustc_hir:: def_id:: { DefId , CRATE_DEF_ID } ;
13+ use rustc_hir:: def_id:: DefId ;
1414use rustc_middle:: bug;
1515use rustc_middle:: ty:: error:: ExpectedFound ;
1616use rustc_middle:: ty:: print:: { FmtPrinter , Print , PrintTraitRefExt as _, RegionHighlightMode } ;
@@ -240,21 +240,17 @@ impl<'tcx> NiceRegionError<'_, 'tcx> {
240240 ) -> Diag < ' tcx > {
241241 let span = cause. span ( ) ;
242242
243- let ( leading_ellipsis, satisfy_span, where_span, dup_span, def_id) =
244- if let ObligationCauseCode :: WhereClause ( def_id, span)
245- | ObligationCauseCode :: WhereClauseInExpr ( def_id, span, ..) = * cause. code ( )
246- && def_id != CRATE_DEF_ID . to_def_id ( )
247- {
248- (
249- true ,
250- Some ( span) ,
251- Some ( self . tcx ( ) . def_span ( def_id) ) ,
252- None ,
253- self . tcx ( ) . def_path_str ( def_id) ,
254- )
255- } else {
256- ( false , None , None , Some ( span) , String :: new ( ) )
257- } ;
243+ let ( leading_ellipsis, satisfy_span, where_span, dup_span, def_id) = match * cause. code ( ) {
244+ ObligationCauseCode :: WhereClause ( def_id, pred_span)
245+ | ObligationCauseCode :: WhereClauseInExpr ( def_id, pred_span, ..) => (
246+ true ,
247+ Some ( span) ,
248+ if pred_span. is_dummy ( ) { Some ( span) } else { Some ( pred_span) } ,
249+ None ,
250+ self . tcx ( ) . def_path_str ( def_id) ,
251+ ) ,
252+ _ => ( false , None , None , Some ( span) , String :: new ( ) ) ,
253+ } ;
258254
259255 let expected_trait_ref = self . cx . resolve_vars_if_possible ( ty:: TraitRef :: new_from_args (
260256 self . cx . tcx ,
0 commit comments