about summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Wood <david.wood@huawei.com>2022-04-12 09:34:40 +0100
committerDavid Wood <david.wood@huawei.com>2022-04-13 02:44:59 +0100
commit5b7df246cffdfeeadb95412a0143442a36c08496 (patch)
tree13cecc0da0d37cefbfbba47ebe08498e5ebeadc7
parent62d912e24dc1ec3816dfcddba96c792b660edc9b (diff)
downloadrust-5b7df246cffdfeeadb95412a0143442a36c08496.tar.gz
rust-5b7df246cffdfeeadb95412a0143442a36c08496.zip
errors: lazily load fallback fluent bundle
Loading the fallback bundle in compilation sessions that won't go on to
emit any errors unnecessarily degrades compile time performance, so
lazily create the Fluent bundle when it is first required.

Signed-off-by: David Wood <david.wood@huawei.com>
-rw-r--r--clippy_lints/src/doc.rs6
-rw-r--r--src/driver.rs3
2 files changed, 6 insertions, 3 deletions
diff --git a/clippy_lints/src/doc.rs b/clippy_lints/src/doc.rs
index 28d0c75fde6..503cef76775 100644
--- a/clippy_lints/src/doc.rs
+++ b/clippy_lints/src/doc.rs
@@ -621,8 +621,10 @@ fn check_code(cx: &LateContext<'_>, text: &str, edition: Edition, span: Span) {
                 let filename = FileName::anon_source_code(&code);
 
                 let sm = Lrc::new(SourceMap::new(FilePathMapping::empty()));
-                let fallback_bundle =
-                    rustc_errors::fallback_fluent_bundle(false).expect("failed to load fallback fluent bundle");
+                let fallback_bundle = rustc_errors::fallback_fluent_bundle(
+                    rustc_errors::DEFAULT_LOCALE_RESOURCES,
+                    false
+                );
                 let emitter = EmitterWriter::new(
                     Box::new(io::sink()),
                     None,
diff --git a/src/driver.rs b/src/driver.rs
index 00dc916b217..32a09fdb9d9 100644
--- a/src/driver.rs
+++ b/src/driver.rs
@@ -165,7 +165,8 @@ fn report_clippy_ice(info: &panic::PanicInfo<'_>, bug_report_url: &str) {
     // Separate the output with an empty line
     eprintln!();
 
-    let fallback_bundle = rustc_errors::fallback_fluent_bundle(false).expect("failed to load fallback fluent bundle");
+    let fallback_bundle =
+        rustc_errors::fallback_fluent_bundle(rustc_errors::DEFAULT_LOCALE_RESOURCES, false);
     let emitter = Box::new(rustc_errors::emitter::EmitterWriter::stderr(
         rustc_errors::ColorConfig::Auto,
         None,