Replace ParseSess::set_dcx with DiagCtxt::set_emitter

Replacing the error emitter doesn't accidentally clear the error count.
This commit is contained in:
bjorn3 2025-02-02 16:06:16 +00:00
parent c70d1afe80
commit 65daf3b01a
1 changed files with 4 additions and 4 deletions

View File

@ -10,6 +10,8 @@ extern crate rustc_interface;
extern crate rustc_session;
extern crate rustc_span;
use std::sync::{Arc, Mutex};
use rustc_errors::emitter::Emitter;
use rustc_errors::registry::{self, Registry};
use rustc_errors::translation::Translate;
@ -17,8 +19,6 @@ use rustc_errors::{DiagCtxt, DiagInner, FluentBundle};
use rustc_session::config;
use rustc_span::source_map::SourceMap;
use std::sync::{Arc, Mutex};
struct DebugEmitter {
source_map: Arc<SourceMap>,
diagnostics: Arc<Mutex<Vec<DiagInner>>>,
@ -67,10 +67,10 @@ fn main() {
locale_resources: rustc_driver::DEFAULT_LOCALE_RESOURCES.to_owned(),
lint_caps: rustc_hash::FxHashMap::default(),
psess_created: Some(Box::new(|parse_sess| {
parse_sess.set_dcx(DiagCtxt::new(Box::new(DebugEmitter {
parse_sess.dcx().set_emitter(Box::new(DebugEmitter {
source_map: parse_sess.clone_source_map(),
diagnostics,
})));
}));
})),
register_lints: None,
override_queries: None,