@@ -3227,3 +3227,79 @@ LL │ t.field;
32273227 let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
32283228 assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
32293229}
3230+
3231+ #[ test]
3232+ fn multiple_line_num_widths ( ) {
3233+ let source = r#"
3234+ cargo-features = ["path-bases"]
3235+
3236+ [package]
3237+ name = "foo"
3238+ version = "0.5.0"
3239+ authors = ["wycats@example.com"]
3240+
3241+ [dependencies]
3242+ bar = { base = '^^not-valid^^', path = 'bar' }
3243+ "# ;
3244+
3245+ let title = "invalid character `^` in path base name: `^^not-valid^^`, the first character must be a Unicode XID start character (most letters or `_`)" ;
3246+
3247+ let input = & [
3248+ Group :: with_title ( Level :: ERROR . primary_title ( title) ) . element (
3249+ Snippet :: source ( source)
3250+ . path ( "Cargo.toml" )
3251+ . annotation ( AnnotationKind :: Primary . span ( 243 ..282 ) )
3252+ . annotation ( AnnotationKind :: Visible . span ( 206 ..219 ) ) ,
3253+ ) ,
3254+ ] ;
3255+
3256+ #[ cfg( feature = "simd" ) ]
3257+ {
3258+ let expected_ascii = str![ [ r#"
3259+ error: invalid character `^` in path base name: `^^not-valid^^`, the first character must be a Unicode XID start character (most letters or `_`)
3260+ --> Cargo.toml:10:24
3261+ |
3262+ 9 | [dependencies]
3263+ 10| bar = { base = '^^not-valid^^', path = 'bar' }
3264+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3265+ "# ] ] ;
3266+ let renderer = Renderer :: plain ( ) ;
3267+ assert_data_eq ! ( renderer. render( input) , expected_ascii) ;
3268+
3269+ let expected_unicode = str![ [ r#"
3270+ error: invalid character `^` in path base name: `^^not-valid^^`, the first character must be a Unicode XID start character (most letters or `_`)
3271+ ╭▸ Cargo.toml:10:24
3272+ │
3273+ 9 │ [dependencies]
3274+ 10│ bar = { base = '^^not-valid^^', path = 'bar' }
3275+ ╰╴ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3276+ "# ] ] ;
3277+ let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
3278+ assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
3279+ }
3280+
3281+ #[ cfg( not( feature = "simd" ) ) ]
3282+ {
3283+ let expected_ascii = str![ [ r#"
3284+ error: invalid character `^` in path base name: `^^not-valid^^`, the first character must be a Unicode XID start character (most letters or `_`)
3285+ --> Cargo.toml:10:24
3286+ |
3287+ 9 | [dependencies]
3288+ 10 | bar = { base = '^^not-valid^^', path = 'bar' }
3289+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3290+ "# ] ] ;
3291+ let renderer = Renderer :: plain ( ) ;
3292+ assert_data_eq ! ( renderer. render( input) , expected_ascii) ;
3293+
3294+ let expected_unicode = str![ [ r#"
3295+ error: invalid character `^` in path base name: `^^not-valid^^`, the first character must be a Unicode XID start character (most letters or `_`)
3296+ ╭▸ Cargo.toml:10:24
3297+ │
3298+ 9 │ [dependencies]
3299+ 10 │ bar = { base = '^^not-valid^^', path = 'bar' }
3300+ ╰╴ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3301+ "# ] ] ;
3302+ let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
3303+ assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
3304+ }
3305+ }
0 commit comments