@@ -2494,3 +2494,96 @@ LL │ �|�␂!5�cc␕␂�Ӻi��WWj�ȥ�'�}�␒�J�ȉ��W
24942494 let renderer_unicode = renderer_ascii. theme ( OutputTheme :: Unicode ) ;
24952495 assert_data_eq ! ( renderer_unicode. render( input) , expected_unicode) ;
24962496}
2497+
2498+ #[ test]
2499+ fn secondary_title_no_level_text ( ) {
2500+ let source = r#"fn main() {
2501+ let b: &[u8] = include_str!("file.txt"); //~ ERROR mismatched types
2502+ let s: &str = include_bytes!("file.txt"); //~ ERROR mismatched types
2503+ }"# ;
2504+
2505+ let input = Level :: ERROR . header ( "mismatched types" ) . id ( "E0308" ) . group (
2506+ Group :: new ( )
2507+ . element (
2508+ Snippet :: source ( source)
2509+ . path ( "$DIR/mismatched-types.rs" )
2510+ . fold ( true )
2511+ . annotation (
2512+ AnnotationKind :: Primary
2513+ . span ( 105 ..131 )
2514+ . label ( "expected `&str`, found `&[u8; 0]`" ) ,
2515+ )
2516+ . annotation (
2517+ AnnotationKind :: Context
2518+ . span ( 98 ..102 )
2519+ . label ( "expected due to this" ) ,
2520+ ) ,
2521+ )
2522+ . element (
2523+ Level :: NOTE
2524+ . text ( None )
2525+ . title ( "expected reference `&str`\n found reference `&'static [u8; 0]`" ) ,
2526+ ) ,
2527+ ) ;
2528+
2529+ let expected = str![ [ r#"
2530+ error[E0308]: mismatched types
2531+ --> $DIR/mismatched-types.rs:3:19
2532+ |
2533+ LL | let s: &str = include_bytes!("file.txt"); //~ ERROR mismatched types
2534+ | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `&[u8; 0]`
2535+ | |
2536+ | expected due to this
2537+ expected reference `&str`
2538+ found reference `&'static [u8; 0]`
2539+ "# ] ] ;
2540+ let renderer = Renderer :: plain ( ) . anonymized_line_numbers ( true ) ;
2541+ assert_data_eq ! ( renderer. render( input) , expected) ;
2542+ }
2543+
2544+ #[ test]
2545+ fn secondary_title_custom_level_text ( ) {
2546+ let source = r#"fn main() {
2547+ let b: &[u8] = include_str!("file.txt"); //~ ERROR mismatched types
2548+ let s: &str = include_bytes!("file.txt"); //~ ERROR mismatched types
2549+ }"# ;
2550+
2551+ let input = Level :: ERROR . header ( "mismatched types" ) . id ( "E0308" ) . group (
2552+ Group :: new ( )
2553+ . element (
2554+ Snippet :: source ( source)
2555+ . path ( "$DIR/mismatched-types.rs" )
2556+ . fold ( true )
2557+ . annotation (
2558+ AnnotationKind :: Primary
2559+ . span ( 105 ..131 )
2560+ . label ( "expected `&str`, found `&[u8; 0]`" ) ,
2561+ )
2562+ . annotation (
2563+ AnnotationKind :: Context
2564+ . span ( 98 ..102 )
2565+ . label ( "expected due to this" ) ,
2566+ ) ,
2567+ )
2568+ . element (
2569+ Level :: NOTE
2570+ . text ( Some ( "custom" ) )
2571+ . title ( "expected reference `&str`\n found reference `&'static [u8; 0]`" ) ,
2572+ ) ,
2573+ ) ;
2574+
2575+ let expected = str![ [ r#"
2576+ error[E0308]: mismatched types
2577+ --> $DIR/mismatched-types.rs:3:19
2578+ |
2579+ LL | let s: &str = include_bytes!("file.txt"); //~ ERROR mismatched types
2580+ | ---- ^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `&str`, found `&[u8; 0]`
2581+ | |
2582+ | expected due to this
2583+ |
2584+ = custom: expected reference `&str`
2585+ found reference `&'static [u8; 0]`
2586+ "# ] ] ;
2587+ let renderer = Renderer :: plain ( ) . anonymized_line_numbers ( true ) ;
2588+ assert_data_eq ! ( renderer. render( input) , expected) ;
2589+ }
0 commit comments