Skip to content

Commit 6a566ee

Browse files
committed
Replace ParseSess::set_dcx with DiagCtxt::set_emitter
Replacing the error emitter doesn't accidentally clear the error count.
1 parent 6556147 commit 6a566ee

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

compiler/rustc_errors/src/lib.rs

+4
Original file line numberDiff line numberDiff line change
@@ -712,6 +712,10 @@ impl DiagCtxt {
712712
inner.emitter = new_emitter;
713713
}
714714

715+
pub fn set_emitter(&self, emitter: Box<dyn Emitter + DynSend>) {
716+
self.inner.borrow_mut().emitter = emitter;
717+
}
718+
715719
/// Translate `message` eagerly with `args` to `SubdiagMessage::Eager`.
716720
pub fn eagerly_translate<'a>(
717721
&self,

compiler/rustc_session/src/parse.rs

-4
Original file line numberDiff line numberDiff line change
@@ -337,8 +337,4 @@ impl ParseSess {
337337
pub fn dcx(&self) -> DiagCtxtHandle<'_> {
338338
self.dcx.handle()
339339
}
340-
341-
pub fn set_dcx(&mut self, dcx: DiagCtxt) {
342-
self.dcx = dcx;
343-
}
344340
}

src/doc/rustc-dev-guide/examples/rustc-interface-getting-diagnostics.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,15 @@ extern crate rustc_interface;
1010
extern crate rustc_session;
1111
extern crate rustc_span;
1212

13+
use std::sync::{Arc, Mutex};
14+
1315
use rustc_errors::emitter::Emitter;
1416
use rustc_errors::registry::{self, Registry};
1517
use rustc_errors::translation::Translate;
1618
use rustc_errors::{DiagCtxt, DiagInner, FluentBundle};
1719
use rustc_session::config;
1820
use rustc_span::source_map::SourceMap;
1921

20-
use std::sync::{Arc, Mutex};
21-
2222
struct DebugEmitter {
2323
source_map: Arc<SourceMap>,
2424
diagnostics: Arc<Mutex<Vec<DiagInner>>>,
@@ -67,10 +67,10 @@ fn main() {
6767
locale_resources: rustc_driver::DEFAULT_LOCALE_RESOURCES.to_owned(),
6868
lint_caps: rustc_hash::FxHashMap::default(),
6969
psess_created: Some(Box::new(|parse_sess| {
70-
parse_sess.set_dcx(DiagCtxt::new(Box::new(DebugEmitter {
70+
parse_sess.dcx().set_emitter(Box::new(DebugEmitter {
7171
source_map: parse_sess.clone_source_map(),
7272
diagnostics,
73-
})));
73+
}));
7474
})),
7575
register_lints: None,
7676
override_queries: None,

0 commit comments

Comments
 (0)