@@ -590,14 +590,10 @@ pub fn run(mut krate: clean::Crate,
590
590
591
591
let markdown_warnings = scx. markdown_warnings . borrow ( ) ;
592
592
if !markdown_warnings. is_empty ( ) {
593
- println ! ( "WARNING: documentation for this crate may be rendered \
594
- differently using the new Pulldown renderer.") ;
595
- println ! ( " See https://github.com/rust-lang/rust/issues/44229 for details." ) ;
593
+ let mut intro_msg = false ;
596
594
for & ( ref span, ref text, ref diffs) in & * markdown_warnings {
597
- println ! ( "WARNING: rendering difference in `{}`" , concise_str( text) ) ;
598
- println ! ( " --> {}:{}:{}" , span. filename, span. loline, span. locol) ;
599
595
for d in diffs {
600
- render_difference ( d) ;
596
+ render_difference ( d, & mut intro_msg , span , text ) ;
601
597
}
602
598
}
603
599
}
@@ -650,43 +646,67 @@ fn concise_compared_strs(s1: &str, s2: &str) -> (String, String) {
650
646
( format ! ( "...{}" , concise_str( s1) ) , format ! ( "...{}" , concise_str( s2) ) )
651
647
}
652
648
653
- fn render_difference ( diff : & html_diff:: Difference ) {
649
+
650
+ fn print_message ( msg : & str , intro_msg : & mut bool , span : & Span , text : & str ) {
651
+ if !* intro_msg {
652
+ println ! ( "WARNING: documentation for this crate may be rendered \
653
+ differently using the new Pulldown renderer.") ;
654
+ println ! ( " See https://github.com/rust-lang/rust/issues/44229 for details." ) ;
655
+ * intro_msg = true ;
656
+ }
657
+ println ! ( "WARNING: rendering difference in `{}`" , concise_str( text) ) ;
658
+ println ! ( " --> {}:{}:{}" , span. filename, span. loline, span. locol) ;
659
+ println ! ( "{}" , msg) ;
660
+ }
661
+
662
+ fn render_difference ( diff : & html_diff:: Difference , intro_msg : & mut bool , span : & Span , text : & str ) {
654
663
match * diff {
655
664
html_diff:: Difference :: NodeType { ref elem, ref opposite_elem } => {
656
- println ! ( " {} Types differ: expected: `{}`, found: `{}`" ,
657
- elem. path, elem. element_name, opposite_elem. element_name) ;
665
+ print_message ( & format ! ( " {} Types differ: expected: `{}`, found: `{}`" ,
666
+ elem. path, elem. element_name, opposite_elem. element_name) ,
667
+ intro_msg, span, text) ;
658
668
}
659
669
html_diff:: Difference :: NodeName { ref elem, ref opposite_elem } => {
660
- println ! ( " {} Tags differ: expected: `{}`, found: `{}`" ,
661
- elem. path, elem. element_name, opposite_elem. element_name) ;
670
+ print_message ( & format ! ( " {} Tags differ: expected: `{}`, found: `{}`" ,
671
+ elem. path, elem. element_name, opposite_elem. element_name) ,
672
+ intro_msg, span, text) ;
662
673
}
663
674
html_diff:: Difference :: NodeAttributes { ref elem,
664
- ref elem_attributes,
665
- ref opposite_elem_attributes,
666
- .. } => {
667
- println ! ( " {} Attributes differ in `{}`: expected: `{:?}`, found: `{:?}`" ,
668
- elem. path, elem. element_name, elem_attributes, opposite_elem_attributes) ;
675
+ ref elem_attributes,
676
+ ref opposite_elem_attributes,
677
+ .. } => {
678
+ print_message ( & format ! ( " {} Attributes differ in `{}`: expected: `{:?}`, \
679
+ found: `{:?}`",
680
+ elem. path, elem. element_name, elem_attributes,
681
+ opposite_elem_attributes) ,
682
+ intro_msg, span, text) ;
669
683
}
670
684
html_diff:: Difference :: NodeText { ref elem, ref elem_text, ref opposite_elem_text, .. } => {
671
685
if elem_text. split ( "\n " )
672
686
. zip ( opposite_elem_text. split ( "\n " ) )
673
687
. any ( |( a, b) | a. trim ( ) != b. trim ( ) ) {
674
688
let ( s1, s2) = concise_compared_strs ( elem_text, opposite_elem_text) ;
675
- println ! ( " {} Text differs:\n expected: `{}`\n found: `{}`" ,
676
- elem. path, s1, s2) ;
689
+ print_message ( & format ! ( " {} Text differs:\n expected: `{}`\n \
690
+ found: `{}`",
691
+ elem. path, s1, s2) ,
692
+ intro_msg, span, text) ;
677
693
}
678
694
}
679
695
html_diff:: Difference :: NotPresent { ref elem, ref opposite_elem } => {
680
696
if let Some ( ref elem) = * elem {
681
- println ! ( " {} One element is missing: expected: `{}`" ,
682
- elem. path, elem. element_name) ;
697
+ print_message ( & format ! ( " {} One element is missing: expected: `{}`" ,
698
+ elem. path, elem. element_name) ,
699
+ intro_msg, span, text) ;
683
700
} else if let Some ( ref elem) = * opposite_elem {
684
701
if elem. element_name . is_empty ( ) {
685
- println ! ( " {} Unexpected element: `{}`" ,
686
- elem. path, concise_str( & elem. element_content) ) ;
702
+ print_message ( & format ! ( " {} One element is missing: expected: `{}`" ,
703
+ elem. path, concise_str( & elem. element_content) ) ,
704
+ intro_msg, span, text) ;
687
705
} else {
688
- println ! ( " {} Unexpected element `{}`: found: `{}`" ,
689
- elem. path, elem. element_name, concise_str( & elem. element_content) ) ;
706
+ print_message ( & format ! ( " {} Unexpected element `{}`: found: `{}`" ,
707
+ elem. path, elem. element_name,
708
+ concise_str( & elem. element_content) ) ,
709
+ intro_msg, span, text) ;
690
710
}
691
711
}
692
712
}
0 commit comments