@@ -3227,3 +3227,79 @@ LL │ t.field;
3227
3227
let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
3228
3228
assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
3229
3229
}
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
+
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