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