@@ -5,7 +5,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
5
5
use rustc_data_structures:: sync:: IntoDynSyncSend ;
6
6
use rustc_errors:: emitter:: { DynEmitter , Emitter , HumanEmitter , SilentEmitter , stderr_destination} ;
7
7
use rustc_errors:: registry:: Registry ;
8
- use rustc_errors:: translation:: Translate ;
8
+ use rustc_errors:: translation:: Translator ;
9
9
use rustc_errors:: { ColorConfig , Diag , DiagCtxt , DiagInner , Level as DiagnosticLevel } ;
10
10
use rustc_session:: parse:: ParseSess as RawParseSess ;
11
11
use rustc_span:: {
@@ -47,16 +47,6 @@ impl SilentOnIgnoredFilesEmitter {
47
47
}
48
48
}
49
49
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
-
60
50
impl Emitter for SilentOnIgnoredFilesEmitter {
61
51
fn source_map ( & self ) -> Option < & SourceMap > {
62
52
None
@@ -84,6 +74,10 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
84
74
}
85
75
self . handle_non_ignoreable_error ( diag, registry) ;
86
76
}
77
+
78
+ fn translator ( & self ) -> & Translator {
79
+ self . emitter . translator ( )
80
+ }
87
81
}
88
82
89
83
impl From < Color > for ColorConfig {
@@ -110,23 +104,15 @@ fn default_dcx(
110
104
ColorConfig :: Never
111
105
} ;
112
106
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
+ )
128
114
} else {
129
- emitter
115
+ Box :: new ( SilentEmitter { translator } )
130
116
} ;
131
117
DiagCtxt :: new ( Box :: new ( SilentOnIgnoredFilesEmitter {
132
118
has_non_ignorable_parser_errors : false ,
@@ -205,7 +191,7 @@ impl ParseSess {
205
191
}
206
192
207
193
pub ( crate ) fn set_silent_emitter ( & mut self ) {
208
- self . raw_psess . dcx ( ) . make_silent ( None , false ) ;
194
+ self . raw_psess . dcx ( ) . make_silent ( ) ;
209
195
}
210
196
211
197
pub ( crate ) fn span_to_filename ( & self , span : Span ) -> FileName {
@@ -335,16 +321,6 @@ mod tests {
335
321
num_emitted_errors : Arc < AtomicU32 > ,
336
322
}
337
323
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
-
348
324
impl Emitter for TestEmitter {
349
325
fn source_map ( & self ) -> Option < & SourceMap > {
350
326
None
@@ -353,6 +329,10 @@ mod tests {
353
329
fn emit_diagnostic ( & mut self , _diag : DiagInner , _registry : & Registry ) {
354
330
self . num_emitted_errors . fetch_add ( 1 , Ordering :: Release ) ;
355
331
}
332
+
333
+ fn translator ( & self ) -> & Translator {
334
+ panic ! ( "test emitter attempted to translate a diagnostic" ) ;
335
+ }
356
336
}
357
337
358
338
fn build_diagnostic ( level : DiagnosticLevel , span : Option < MultiSpan > ) -> DiagInner {
0 commit comments