11#![ allow( rustc:: symbol_intern_string_literal) ]
2-
32use std:: assert_matches:: assert_matches;
43use std:: io:: prelude:: * ;
54use std:: iter:: Peekable ;
@@ -12,6 +11,7 @@ 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;
14+ use rustc_errors:: annotate_snippet_emitter_writer:: AnnotateSnippetEmitter ;
1515use rustc_errors:: emitter:: { HumanEmitter , OutputTheme } ;
1616use rustc_errors:: translation:: Translator ;
1717use rustc_errors:: { AutoStream , DiagCtxt , MultiSpan , PResult } ;
@@ -43,12 +43,22 @@ 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)
48- . sm ( Some ( source_map. clone ( ) ) )
49- . diagnostic_width ( Some ( 140 ) ) ;
50- emitter = emitter. theme ( theme) ;
51- let dcx = DiagCtxt :: new ( Box :: new ( emitter) ) ;
46+ let shared: Box < dyn Write + Send > = Box :: new ( Shared { data : output. clone ( ) } ) ;
47+ let auto_stream = AutoStream :: never ( shared) ;
48+ let dcx = DiagCtxt :: new ( match theme {
49+ OutputTheme :: Ascii => Box :: new (
50+ HumanEmitter :: new ( auto_stream, translator)
51+ . sm ( Some ( source_map. clone ( ) ) )
52+ . diagnostic_width ( Some ( 140 ) )
53+ . theme ( theme) ,
54+ ) ,
55+ OutputTheme :: Unicode => Box :: new (
56+ AnnotateSnippetEmitter :: new ( auto_stream, translator)
57+ . sm ( Some ( source_map. clone ( ) ) )
58+ . diagnostic_width ( Some ( 140 ) )
59+ . theme ( theme) ,
60+ ) ,
61+ } ) ;
5262 ( dcx, source_map, output)
5363}
5464
0 commit comments