|
4 | 4 | //! Module used to configure a compiler session. |
5 | 5 |
|
6 | 6 | use crate::args::Arguments; |
| 7 | +use rustc_data_structures::sync::Lrc; |
| 8 | +use rustc_errors::emitter::Emitter; |
7 | 9 | use rustc_errors::{ |
8 | | - emitter::Emitter, emitter::HumanReadableErrorType, fallback_fluent_bundle, json::JsonEmitter, |
9 | | - ColorConfig, Diagnostic, TerminalUrl, |
| 10 | + emitter::HumanReadableErrorType, fallback_fluent_bundle, json::JsonEmitter, ColorConfig, |
| 11 | + DiagInner, |
10 | 12 | }; |
11 | 13 | use rustc_session::config::ErrorOutputType; |
12 | 14 | use rustc_session::EarlyDiagCtxt; |
| 15 | +use rustc_span::source_map::FilePathMapping; |
| 16 | +use rustc_span::source_map::SourceMap; |
| 17 | +use std::io; |
13 | 18 | use std::io::IsTerminal; |
14 | 19 | use std::panic; |
15 | 20 | use std::sync::LazyLock; |
@@ -49,17 +54,15 @@ static JSON_PANIC_HOOK: LazyLock<Box<dyn Fn(&panic::PanicInfo<'_>) + Sync + Send |
49 | 54 | let msg = format!("Kani unexpectedly panicked at {info}.",); |
50 | 55 | let fallback_bundle = |
51 | 56 | fallback_fluent_bundle(rustc_driver::DEFAULT_LOCALE_RESOURCES.to_vec(), false); |
52 | | - let mut emitter = JsonEmitter::basic( |
53 | | - false, |
54 | | - HumanReadableErrorType::Default(ColorConfig::Never), |
55 | | - None, |
| 57 | + let mut emitter = JsonEmitter::new( |
| 58 | + Box::new(io::BufWriter::new(io::stderr())), |
| 59 | + #[allow(clippy::arc_with_non_send_sync)] |
| 60 | + Lrc::new(SourceMap::new(FilePathMapping::empty())), |
56 | 61 | fallback_bundle, |
57 | | - None, |
58 | 62 | false, |
59 | | - false, |
60 | | - TerminalUrl::No, |
| 63 | + HumanReadableErrorType::Default(ColorConfig::Never), |
61 | 64 | ); |
62 | | - let diagnostic = Diagnostic::new(rustc_errors::Level::Bug, msg); |
| 65 | + let diagnostic = DiagInner::new(rustc_errors::Level::Bug, msg); |
63 | 66 | emitter.emit_diagnostic(diagnostic); |
64 | 67 | (*JSON_PANIC_HOOK)(info); |
65 | 68 | })); |
|
0 commit comments