11#![ allow( rustc:: symbol_intern_string_literal) ]
2-
32use std:: assert_matches:: assert_matches;
43use std:: io:: prelude:: * ;
54use std:: iter:: Peekable ;
@@ -12,7 +11,8 @@ use rustc_ast::token::{self, Delimiter, Token};
1211use rustc_ast:: tokenstream:: { DelimSpacing , DelimSpan , Spacing , TokenStream , TokenTree } ;
1312use rustc_ast:: { self as ast, PatKind , visit} ;
1413use rustc_ast_pretty:: pprust:: item_to_string;
15- use rustc_errors:: emitter:: { HumanEmitter , OutputTheme } ;
14+ use rustc_errors:: annotate_snippet_emitter_writer:: AnnotateSnippetEmitter ;
15+ use rustc_errors:: emitter:: { DynamicHumanEmitter , HumanEmitter , OutputTheme } ;
1616use rustc_errors:: translation:: Translator ;
1717use rustc_errors:: { AutoStream , DiagCtxt , MultiSpan , PResult } ;
1818use rustc_session:: parse:: ParseSess ;
@@ -43,11 +43,17 @@ fn create_test_handler(theme: OutputTheme) -> (DiagCtxt, Arc<SourceMap>, Arc<Mut
4343 let output = Arc :: new ( Mutex :: new ( Vec :: new ( ) ) ) ;
4444 let source_map = Arc :: new ( SourceMap :: new ( FilePathMapping :: empty ( ) ) ) ;
4545 let translator = Translator :: with_fallback_bundle ( vec ! [ crate :: DEFAULT_LOCALE_RESOURCE ] , false ) ;
46- let mut emitter =
47- HumanEmitter :: new ( AutoStream :: never ( Box :: new ( Shared { data : output. clone ( ) } ) ) , translator)
46+ let auto_stream = AutoStream :: never ( Box :: new ( Shared { data : output. clone ( ) } ) ) ;
47+ let emitter = match theme {
48+ OutputTheme :: Ascii => HumanEmitter :: new ( auto_stream, translator)
49+ . sm ( Some ( source_map. clone ( ) ) )
50+ . diagnostic_width ( Some ( 140 ) )
51+ . theme ( theme) ,
52+ OutputTheme :: Unicode => AnnotateSnippetEmitter :: new ( auto_stream, translator)
4853 . sm ( Some ( source_map. clone ( ) ) )
49- . diagnostic_width ( Some ( 140 ) ) ;
50- emitter = emitter. theme ( theme) ;
54+ . diagnostic_width ( Some ( 140 ) )
55+ . theme ( theme) ,
56+ } ;
5157 let dcx = DiagCtxt :: new ( Box :: new ( emitter) ) ;
5258 ( dcx, source_map, output)
5359}
0 commit comments