@@ -523,6 +523,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
523523    pub  fn  note_type_err ( & self , 
524524                         diag :  & mut  DiagnosticBuilder < ' tcx > , 
525525                         origin :  TypeOrigin , 
526+                          secondary_span :  Option < ( Span ,  String ) > , 
526527                         values :  Option < ValuePairs < ' tcx > > , 
527528                         terr :  & TypeError < ' tcx > ) 
528529    { 
@@ -553,6 +554,9 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
553554        } 
554555
555556        diag. span_label ( span,  & terr) ; 
557+         if  let  Some ( ( sp,  msg) )  = secondary_span { 
558+             diag. span_label ( sp,  & msg) ; 
559+         } 
556560
557561        self . note_error_origin ( diag,  & origin) ; 
558562        self . check_and_note_conflicting_crates ( diag,  terr,  span) ; 
@@ -569,7 +573,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
569573            self . tcx. sess,  trace. origin. span( ) ,  E0308 , 
570574            "{}" ,  trace. origin. as_failure_str( ) 
571575        ) ; 
572-         self . note_type_err ( & mut  diag,  trace. origin ,  Some ( trace. values ) ,  terr) ; 
576+         self . note_type_err ( & mut  diag,  trace. origin ,  None ,   Some ( trace. values ) ,  terr) ; 
573577        diag
574578    } 
575579
0 commit comments