@@ -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