@@ -523,6 +523,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
523
523
pub fn note_type_err ( & self ,
524
524
diag : & mut DiagnosticBuilder < ' tcx > ,
525
525
origin : TypeOrigin ,
526
+ secondary_span : Option < ( Span , String ) > ,
526
527
values : Option < ValuePairs < ' tcx > > ,
527
528
terr : & TypeError < ' tcx > )
528
529
{
@@ -553,6 +554,9 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
553
554
}
554
555
555
556
diag. span_label ( span, & terr) ;
557
+ if let Some ( ( sp, msg) ) = secondary_span {
558
+ diag. span_label ( sp, & msg) ;
559
+ }
556
560
557
561
self . note_error_origin ( diag, & origin) ;
558
562
self . check_and_note_conflicting_crates ( diag, terr, span) ;
@@ -569,7 +573,7 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> {
569
573
self . tcx. sess, trace. origin. span( ) , E0308 ,
570
574
"{}" , trace. origin. as_failure_str( )
571
575
) ;
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) ;
573
577
diag
574
578
}
575
579
0 commit comments