about summary refs log tree commit diff
path: root/compiler/rustc_session/src/parse.rs
diff options
context:
space:
mode:
authorDavid Wood <david.wood@huawei.com>2024-02-19 15:07:08 +0000
committerDavid Wood <david@davidtw.co>2024-03-05 10:14:36 +0000
commit2ee0409f323574af15c5d75dbfc42b1721720de8 (patch)
treeef29d7ca25c9c469566c6431eddc450c98cf4650 /compiler/rustc_session/src/parse.rs
parent5a1e5449c8f4cb6b12b4f64238e3c058767ebf02 (diff)
downloadrust-2ee0409f323574af15c5d75dbfc42b1721720de8.tar.gz
rust-2ee0409f323574af15c5d75dbfc42b1721720de8.zip
errors: share `SilentEmitter` between rustc and rustfmt
Signed-off-by: David Wood <david@davidtw.co>
Diffstat (limited to 'compiler/rustc_session/src/parse.rs')
-rw-r--r--compiler/rustc_session/src/parse.rs18
1 files changed, 12 insertions, 6 deletions
diff --git a/compiler/rustc_session/src/parse.rs b/compiler/rustc_session/src/parse.rs
index 25b5422f322..506bd5d5dbd 100644
--- a/compiler/rustc_session/src/parse.rs
+++ b/compiler/rustc_session/src/parse.rs
@@ -265,14 +265,20 @@ impl ParseSess {
         }
     }
 
-    pub fn with_silent_emitter(fatal_note: String) -> Self {
-        let fallback_bundle = fallback_fluent_bundle(Vec::new(), false);
+    pub fn with_silent_emitter(locale_resources: Vec<&'static str>, fatal_note: String) -> Self {
+        let fallback_bundle = fallback_fluent_bundle(locale_resources, false);
         let sm = Lrc::new(SourceMap::new(FilePathMapping::empty()));
-        let emitter =
-            Box::new(HumanEmitter::new(stderr_destination(ColorConfig::Auto), fallback_bundle));
+        let emitter = Box::new(HumanEmitter::new(
+            stderr_destination(ColorConfig::Auto),
+            fallback_bundle.clone(),
+        ));
         let fatal_dcx = DiagCtxt::new(emitter);
-        let dcx =
-            DiagCtxt::new(Box::new(SilentEmitter { fatal_dcx, fatal_note })).disable_warnings();
+        let dcx = DiagCtxt::new(Box::new(SilentEmitter {
+            fallback_bundle,
+            fatal_dcx,
+            fatal_note: Some(fatal_note),
+        }))
+        .disable_warnings();
         ParseSess::with_dcx(dcx, sm)
     }