@@ -5646,3 +5646,55 @@ LL │ static ROOK_ATTACKS_TABLE: () = {
56465646 let renderer = renderer. decor_style ( DecorStyle :: Unicode ) ;
56475647 assert_data_eq ! ( renderer. render( input) , expected_unicode) ;
56485648}
5649+
5650+ #[ test]
5651+ fn emitter_overflow_bad_whitespace ( ) {
5652+ // tests/ui/errors/emitter-overflow-bad-whitespace.rs
5653+ let source = r#" fn main() { return; }
5654+ "# ;
5655+ let title_0 = "Unicode character ' ' (No-Break Space) looks like ' ' (Space), but it is not" ;
5656+
5657+ let report = & [
5658+ Group :: with_title ( Level :: ERROR . primary_title ( "unknown start of token: \u{a0} " ) ) . element (
5659+ Snippet :: source ( source)
5660+ . path ( "$DIR/emitter-overflow-bad-whitespace.rs" )
5661+ . line_start ( 10 )
5662+ . annotation ( AnnotationKind :: Primary . span ( 0 ..2 ) ) ,
5663+ ) ,
5664+ Group :: with_title ( Level :: HELP . secondary_title ( title_0) ) . element (
5665+ Snippet :: source ( source)
5666+ . path ( "$DIR/emitter-overflow-bad-whitespace.rs" )
5667+ . line_start ( 10 )
5668+ . patch ( Patch :: new ( 0 ..2 , " " ) ) ,
5669+ ) ,
5670+ ] ;
5671+ let expected_ascii = str![ [ r#"
5672+ error: unknown start of token:
5673+ --> $DIR/emitter-overflow-bad-whitespace.rs:10:1
5674+ |
5675+ 10 | ...
5676+ | ^
5677+ |
5678+ help: Unicode character ' ' (No-Break Space) looks like ' ' (Space), but it is not
5679+ |
5680+ 10 | fn main() { return; }
5681+ | +
5682+ "# ] ] ;
5683+ let renderer_ascii = Renderer :: plain ( ) . term_width ( 1 ) ;
5684+ assert_data_eq ! ( renderer_ascii. render( report) , expected_ascii) ;
5685+
5686+ let expected_unicode = str![ [ r#"
5687+ error: unknown start of token:
5688+ ╭▸ $DIR/emitter-overflow-bad-whitespace.rs:10:1
5689+ │
5690+ 10 │ …
5691+ │ ━
5692+ ╰╴
5693+ help: Unicode character ' ' (No-Break Space) looks like ' ' (Space), but it is not
5694+ ╭╴
5695+ 10 │ fn main() { return; }
5696+ ╰╴+
5697+ "# ] ] ;
5698+ let renderer_unicode = renderer_ascii. decor_style ( DecorStyle :: Unicode ) ;
5699+ assert_data_eq ! ( renderer_unicode. render( report) , expected_unicode) ;
5700+ }
0 commit comments