@@ -2889,3 +2889,79 @@ $DIR/short-error-format.rs:8:7: error[E0599]: no method named `salut` found for
2889
2889
. anonymized_line_numbers ( true ) ;
2890
2890
assert_data_eq ! ( renderer. render( input) , expected) ;
2891
2891
}
2892
+
2893
+ #[ test]
2894
+ #[ should_panic( expected = "range end index 47 out of range for slice of length 26" ) ]
2895
+ fn rustdoc_ui_diagnostic_width ( ) {
2896
+ // tests/rustdoc-ui/diagnostic-width.rs
2897
+
2898
+ let source_0 = r#"//@ compile-flags: --diagnostic-width=10
2899
+ #![deny(rustdoc::bare_urls)]
2900
+
2901
+ /// This is a long line that contains a http://link.com
2902
+ pub struct Foo; //~^ ERROR
2903
+ "# ;
2904
+ let source_1 = r#"/// This is a long line that contains a http://link.com
2905
+ "# ;
2906
+
2907
+ let input = Level :: ERROR
2908
+ . header ( "this URL is not a hyperlink" )
2909
+ . group (
2910
+ Group :: new ( )
2911
+ . element (
2912
+ Snippet :: source ( source_0)
2913
+ . origin ( "$DIR/diagnostic-width.rs" )
2914
+ . fold ( true )
2915
+ . annotation ( AnnotationKind :: Primary . span ( 111 ..126 ) ) ,
2916
+ )
2917
+ . element (
2918
+ Level :: NOTE
2919
+ . title ( "bare URLs are not automatically turned into clickable links" ) ,
2920
+ ) ,
2921
+ )
2922
+ . group (
2923
+ Group :: new ( )
2924
+ . element ( Level :: NOTE . title ( "the lint level is defined here" ) )
2925
+ . element (
2926
+ Snippet :: source ( source_0)
2927
+ . origin ( "$DIR/diagnostic-width.rs" )
2928
+ . fold ( true )
2929
+ . annotation ( AnnotationKind :: Primary . span ( 49 ..67 ) ) ,
2930
+ ) ,
2931
+ )
2932
+ . group (
2933
+ Group :: new ( )
2934
+ . element ( Level :: HELP . title ( "use an automatic link instead" ) )
2935
+ . element (
2936
+ Snippet :: source ( source_1)
2937
+ . origin ( "$DIR/diagnostic-width.rs" )
2938
+ . line_start ( 4 )
2939
+ . fold ( true )
2940
+ . patch ( Patch :: new ( 40 ..40 , "<" ) )
2941
+ . patch ( Patch :: new ( 55 ..55 , ">" ) ) ,
2942
+ ) ,
2943
+ ) ;
2944
+
2945
+ let expected = str![ [ r#"
2946
+ error: this URL is not a hyperlink
2947
+ --> $DIR/diagnostic-width.rs:4:41
2948
+ |
2949
+ LL | ... a http://link.com
2950
+ | ^^^^^^^^^^^^^^^
2951
+ |
2952
+ = note: bare URLs are not automatically turned into clickable links
2953
+ note: the lint level is defined here
2954
+ --> $DIR/diagnostic-width.rs:2:9
2955
+ |
2956
+ LL | ...ny(ru...are_urls)]
2957
+ | ^^...^^^^^^^^
2958
+ help: use an automatic link instead
2959
+ |
2960
+ LL | /// This is a long line that contains a <http://link.com>
2961
+ | + +
2962
+ "# ] ] ;
2963
+ let renderer = Renderer :: plain ( )
2964
+ . anonymized_line_numbers ( true )
2965
+ . term_width ( 10 ) ;
2966
+ assert_data_eq ! ( renderer. render( input) , expected) ;
2967
+ }
0 commit comments