@@ -5,7 +5,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
55use rustc_data_structures:: sync:: IntoDynSyncSend ;
66use rustc_errors:: emitter:: { DynEmitter , Emitter , HumanEmitter , SilentEmitter , stderr_destination} ;
77use rustc_errors:: registry:: Registry ;
8- use rustc_errors:: translation:: Translate ;
8+ use rustc_errors:: translation:: Translator ;
99use rustc_errors:: { ColorConfig , Diag , DiagCtxt , DiagInner , Level as DiagnosticLevel } ;
1010use rustc_session:: parse:: ParseSess as RawParseSess ;
1111use rustc_span:: {
@@ -47,16 +47,6 @@ impl SilentOnIgnoredFilesEmitter {
4747 }
4848}
4949
50- impl Translate for SilentOnIgnoredFilesEmitter {
51- fn fluent_bundle ( & self ) -> Option < & rustc_errors:: FluentBundle > {
52- self . emitter . fluent_bundle ( )
53- }
54-
55- fn fallback_fluent_bundle ( & self ) -> & rustc_errors:: FluentBundle {
56- self . emitter . fallback_fluent_bundle ( )
57- }
58- }
59-
6050impl Emitter for SilentOnIgnoredFilesEmitter {
6151 fn source_map ( & self ) -> Option < & SourceMap > {
6252 None
@@ -84,6 +74,10 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
8474 }
8575 self . handle_non_ignoreable_error ( diag, registry) ;
8676 }
77+
78+ fn translator ( & self ) -> & Translator {
79+ self . emitter . translator ( )
80+ }
8781}
8882
8983impl From < Color > for ColorConfig {
@@ -110,23 +104,15 @@ fn default_dcx(
110104 ColorConfig :: Never
111105 } ;
112106
113- let fallback_bundle = rustc_errors:: fallback_fluent_bundle (
114- rustc_driver:: DEFAULT_LOCALE_RESOURCES . to_vec ( ) ,
115- false ,
116- ) ;
117- let emitter = Box :: new (
118- HumanEmitter :: new ( stderr_destination ( emit_color) , fallback_bundle)
119- . sm ( Some ( source_map. clone ( ) ) ) ,
120- ) ;
121-
122- let emitter: Box < DynEmitter > = if !show_parse_errors {
123- Box :: new ( SilentEmitter {
124- fatal_emitter : emitter,
125- fatal_note : None ,
126- emit_fatal_diagnostic : false ,
127- } )
107+ let translator = rustc_driver:: default_translator ( ) ;
108+
109+ let emitter: Box < DynEmitter > = if show_parse_errors {
110+ Box :: new (
111+ HumanEmitter :: new ( stderr_destination ( emit_color) , translator)
112+ . sm ( Some ( source_map. clone ( ) ) ) ,
113+ )
128114 } else {
129- emitter
115+ Box :: new ( SilentEmitter { translator } )
130116 } ;
131117 DiagCtxt :: new ( Box :: new ( SilentOnIgnoredFilesEmitter {
132118 has_non_ignorable_parser_errors : false ,
@@ -205,7 +191,7 @@ impl ParseSess {
205191 }
206192
207193 pub ( crate ) fn set_silent_emitter ( & mut self ) {
208- self . raw_psess . dcx ( ) . make_silent ( None , false ) ;
194+ self . raw_psess . dcx ( ) . make_silent ( ) ;
209195 }
210196
211197 pub ( crate ) fn span_to_filename ( & self , span : Span ) -> FileName {
@@ -335,16 +321,6 @@ mod tests {
335321 num_emitted_errors : Arc < AtomicU32 > ,
336322 }
337323
338- impl Translate for TestEmitter {
339- fn fluent_bundle ( & self ) -> Option < & rustc_errors:: FluentBundle > {
340- None
341- }
342-
343- fn fallback_fluent_bundle ( & self ) -> & rustc_errors:: FluentBundle {
344- panic ! ( "test emitter attempted to translate a diagnostic" ) ;
345- }
346- }
347-
348324 impl Emitter for TestEmitter {
349325 fn source_map ( & self ) -> Option < & SourceMap > {
350326 None
@@ -353,6 +329,10 @@ mod tests {
353329 fn emit_diagnostic ( & mut self , _diag : DiagInner , _registry : & Registry ) {
354330 self . num_emitted_errors . fetch_add ( 1 , Ordering :: Release ) ;
355331 }
332+
333+ fn translator ( & self ) -> & Translator {
334+ panic ! ( "test emitter attempted to translate a diagnostic" ) ;
335+ }
356336 }
357337
358338 fn build_diagnostic ( level : DiagnosticLevel , span : Option < MultiSpan > ) -> DiagInner {
0 commit comments