@@ -25,6 +25,7 @@ use rustc_span::hygiene::ExpnData;
2525use rustc_span:: source_map:: { FilePathMapping , SourceMap } ;
2626use serde:: Serialize ;
2727
28+ use crate :: annotate_snippet_emitter_writer:: AnnotateSnippetEmitter ;
2829use crate :: diagnostic:: IsLint ;
2930use crate :: emitter:: {
3031 ColorConfig , Destination , Emitter , HumanEmitter , HumanReadableErrorType , OutputTheme ,
@@ -378,21 +379,44 @@ impl Diagnostic {
378379 choice => choice,
379380 } ,
380381 ) ;
381- HumanEmitter :: new ( dst, je. translator . clone ( ) )
382- . short_message ( short)
383- . sm ( je. sm . clone ( ) )
384- . diagnostic_width ( je. diagnostic_width )
385- . macro_backtrace ( je. macro_backtrace )
386- . track_diagnostics ( je. track_diagnostics )
387- . terminal_url ( je. terminal_url )
388- . ui_testing ( je. ui_testing )
389- . ignored_directories_in_source_blocks ( je. ignored_directories_in_source_blocks . clone ( ) )
390- . theme ( if let HumanReadableErrorType :: Unicode = je. json_rendered {
391- OutputTheme :: Unicode
392- } else {
393- OutputTheme :: Ascii
394- } )
395- . emit_diagnostic ( diag, registry) ;
382+ if let HumanReadableErrorType :: AnnotateSnippet = je. json_rendered {
383+ AnnotateSnippetEmitter :: new ( dst, je. translator . clone ( ) )
384+ . short_message ( short)
385+ . sm ( je. sm . clone ( ) )
386+ . diagnostic_width ( je. diagnostic_width )
387+ . macro_backtrace ( je. macro_backtrace )
388+ . track_diagnostics ( je. track_diagnostics )
389+ . terminal_url ( je. terminal_url )
390+ . ui_testing ( je. ui_testing )
391+ . ignored_directories_in_source_blocks (
392+ je. ignored_directories_in_source_blocks . clone ( ) ,
393+ )
394+ . theme ( if let HumanReadableErrorType :: Unicode = je. json_rendered {
395+ OutputTheme :: Unicode
396+ } else {
397+ OutputTheme :: Ascii
398+ } )
399+ . emit_diagnostic ( diag, registry) ;
400+ } else {
401+ HumanEmitter :: new ( dst, je. translator . clone ( ) )
402+ . short_message ( short)
403+ . sm ( je. sm . clone ( ) )
404+ . diagnostic_width ( je. diagnostic_width )
405+ . macro_backtrace ( je. macro_backtrace )
406+ . track_diagnostics ( je. track_diagnostics )
407+ . terminal_url ( je. terminal_url )
408+ . ui_testing ( je. ui_testing )
409+ . ignored_directories_in_source_blocks (
410+ je. ignored_directories_in_source_blocks . clone ( ) ,
411+ )
412+ . theme ( if let HumanReadableErrorType :: Unicode = je. json_rendered {
413+ OutputTheme :: Unicode
414+ } else {
415+ OutputTheme :: Ascii
416+ } )
417+ . emit_diagnostic ( diag, registry) ;
418+ }
419+
396420 let buf = Arc :: try_unwrap ( buf. 0 ) . unwrap ( ) . into_inner ( ) . unwrap ( ) ;
397421 let buf = String :: from_utf8 ( buf) . unwrap ( ) ;
398422
0 commit comments