@@ -3,6 +3,7 @@ use std::sync::atomic::{AtomicBool, Ordering};
33
44use rustc_data_structures:: sync:: { IntoDynSyncSend , Lrc } ;
55use rustc_errors:: emitter:: { DynEmitter , Emitter , HumanEmitter , SilentEmitter , stderr_destination} ;
6+ use rustc_errors:: registry:: Registry ;
67use rustc_errors:: translation:: Translate ;
78use rustc_errors:: { ColorConfig , Diag , DiagCtxt , DiagInner , Level as DiagnosticLevel } ;
89use rustc_session:: parse:: ParseSess as RawParseSess ;
@@ -38,10 +39,10 @@ struct SilentOnIgnoredFilesEmitter {
3839}
3940
4041impl SilentOnIgnoredFilesEmitter {
41- fn handle_non_ignoreable_error ( & mut self , diag : DiagInner ) {
42+ fn handle_non_ignoreable_error ( & mut self , diag : DiagInner , registry : & Registry ) {
4243 self . has_non_ignorable_parser_errors = true ;
4344 self . can_reset . store ( false , Ordering :: Release ) ;
44- self . emitter . emit_diagnostic ( diag) ;
45+ self . emitter . emit_diagnostic ( diag, registry ) ;
4546 }
4647}
4748
@@ -60,9 +61,9 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
6061 None
6162 }
6263
63- fn emit_diagnostic ( & mut self , diag : DiagInner ) {
64+ fn emit_diagnostic ( & mut self , diag : DiagInner , registry : & Registry ) {
6465 if diag. level ( ) == DiagnosticLevel :: Fatal {
65- return self . handle_non_ignoreable_error ( diag) ;
66+ return self . handle_non_ignoreable_error ( diag, registry ) ;
6667 }
6768 if let Some ( primary_span) = & diag. span . primary_span ( ) {
6869 let file_name = self . source_map . span_to_filename ( * primary_span) ;
@@ -80,7 +81,7 @@ impl Emitter for SilentOnIgnoredFilesEmitter {
8081 }
8182 } ;
8283 }
83- self . handle_non_ignoreable_error ( diag) ;
84+ self . handle_non_ignoreable_error ( diag, registry ) ;
8485 }
8586}
8687
@@ -358,7 +359,7 @@ mod tests {
358359 None
359360 }
360361
361- fn emit_diagnostic ( & mut self , _diag : DiagInner ) {
362+ fn emit_diagnostic ( & mut self , _diag : DiagInner , _registry : & Registry ) {
362363 self . num_emitted_errors . fetch_add ( 1 , Ordering :: Release ) ;
363364 }
364365 }
@@ -412,6 +413,7 @@ mod tests {
412413 SourceMapFileName :: Real ( RealFileName :: LocalPath ( PathBuf :: from ( "foo.rs" ) ) ) ,
413414 source,
414415 ) ;
416+ let registry = Registry :: new ( & [ ] ) ;
415417 let mut emitter = build_emitter (
416418 Lrc :: clone ( & num_emitted_errors) ,
417419 Lrc :: clone ( & can_reset_errors) ,
@@ -420,7 +422,7 @@ mod tests {
420422 ) ;
421423 let span = MultiSpan :: from_span ( mk_sp ( BytePos ( 0 ) , BytePos ( 1 ) ) ) ;
422424 let fatal_diagnostic = build_diagnostic ( DiagnosticLevel :: Fatal , Some ( span) ) ;
423- emitter. emit_diagnostic ( fatal_diagnostic) ;
425+ emitter. emit_diagnostic ( fatal_diagnostic, & registry ) ;
424426 assert_eq ! ( num_emitted_errors. load( Ordering :: Acquire ) , 1 ) ;
425427 assert_eq ! ( can_reset_errors. load( Ordering :: Acquire ) , false ) ;
426428 }
@@ -437,6 +439,7 @@ mod tests {
437439 SourceMapFileName :: Real ( RealFileName :: LocalPath ( PathBuf :: from ( "foo.rs" ) ) ) ,
438440 source,
439441 ) ;
442+ let registry = Registry :: new ( & [ ] ) ;
440443 let mut emitter = build_emitter (
441444 Lrc :: clone ( & num_emitted_errors) ,
442445 Lrc :: clone ( & can_reset_errors) ,
@@ -445,7 +448,7 @@ mod tests {
445448 ) ;
446449 let span = MultiSpan :: from_span ( mk_sp ( BytePos ( 0 ) , BytePos ( 1 ) ) ) ;
447450 let non_fatal_diagnostic = build_diagnostic ( DiagnosticLevel :: Warning , Some ( span) ) ;
448- emitter. emit_diagnostic ( non_fatal_diagnostic) ;
451+ emitter. emit_diagnostic ( non_fatal_diagnostic, & registry ) ;
449452 assert_eq ! ( num_emitted_errors. load( Ordering :: Acquire ) , 0 ) ;
450453 assert_eq ! ( can_reset_errors. load( Ordering :: Acquire ) , true ) ;
451454 }
@@ -461,6 +464,7 @@ mod tests {
461464 SourceMapFileName :: Real ( RealFileName :: LocalPath ( PathBuf :: from ( "foo.rs" ) ) ) ,
462465 source,
463466 ) ;
467+ let registry = Registry :: new ( & [ ] ) ;
464468 let mut emitter = build_emitter (
465469 Lrc :: clone ( & num_emitted_errors) ,
466470 Lrc :: clone ( & can_reset_errors) ,
@@ -469,7 +473,7 @@ mod tests {
469473 ) ;
470474 let span = MultiSpan :: from_span ( mk_sp ( BytePos ( 0 ) , BytePos ( 1 ) ) ) ;
471475 let non_fatal_diagnostic = build_diagnostic ( DiagnosticLevel :: Warning , Some ( span) ) ;
472- emitter. emit_diagnostic ( non_fatal_diagnostic) ;
476+ emitter. emit_diagnostic ( non_fatal_diagnostic, & registry ) ;
473477 assert_eq ! ( num_emitted_errors. load( Ordering :: Acquire ) , 1 ) ;
474478 assert_eq ! ( can_reset_errors. load( Ordering :: Acquire ) , false ) ;
475479 }
@@ -497,6 +501,7 @@ mod tests {
497501 SourceMapFileName :: Real ( RealFileName :: LocalPath ( PathBuf :: from ( "fatal.rs" ) ) ) ,
498502 fatal_source,
499503 ) ;
504+ let registry = Registry :: new ( & [ ] ) ;
500505 let mut emitter = build_emitter (
501506 Lrc :: clone ( & num_emitted_errors) ,
502507 Lrc :: clone ( & can_reset_errors) ,
@@ -508,9 +513,9 @@ mod tests {
508513 let bar_diagnostic = build_diagnostic ( DiagnosticLevel :: Warning , Some ( bar_span) ) ;
509514 let foo_diagnostic = build_diagnostic ( DiagnosticLevel :: Warning , Some ( foo_span) ) ;
510515 let fatal_diagnostic = build_diagnostic ( DiagnosticLevel :: Fatal , None ) ;
511- emitter. emit_diagnostic ( bar_diagnostic) ;
512- emitter. emit_diagnostic ( foo_diagnostic) ;
513- emitter. emit_diagnostic ( fatal_diagnostic) ;
516+ emitter. emit_diagnostic ( bar_diagnostic, & registry ) ;
517+ emitter. emit_diagnostic ( foo_diagnostic, & registry ) ;
518+ emitter. emit_diagnostic ( fatal_diagnostic, & registry ) ;
514519 assert_eq ! ( num_emitted_errors. load( Ordering :: Acquire ) , 2 ) ;
515520 assert_eq ! ( can_reset_errors. load( Ordering :: Acquire ) , false ) ;
516521 }
0 commit comments