about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/util.rs
diff options
context:
space:
mode:
authorJubilee Young <workingjubilee@gmail.com>2024-05-19 19:59:06 -0700
committerJubilee Young <workingjubilee@gmail.com>2024-05-19 20:09:03 -0700
commitb6d0d6da553d3836767b484530b23ad89807f470 (patch)
treea890f7d31382a0a03cdfb01ff494b7abe91c4b3f /compiler/rustc_interface/src/util.rs
parent9985821b2fe20a969b799ec920563170fcc45d8f (diff)
downloadrust-b6d0d6da553d3836767b484530b23ad89807f470.tar.gz
rust-b6d0d6da553d3836767b484530b23ad89807f470.zip
note value of RUST_MIN_STACK and explain unsetting
Diffstat (limited to 'compiler/rustc_interface/src/util.rs')
-rw-r--r--compiler/rustc_interface/src/util.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/compiler/rustc_interface/src/util.rs b/compiler/rustc_interface/src/util.rs
index f549ae49012..ce2382b9501 100644
--- a/compiler/rustc_interface/src/util.rs
+++ b/compiler/rustc_interface/src/util.rs
@@ -65,9 +65,15 @@ fn init_stack_size(early_dcx: &EarlyDiagCtxt) -> usize {
             // so no one thinks we parsed them setting `RUST_MIN_STACK="64 megabytes"`
             // FIXME: we could accept `RUST_MIN_STACK=64MB`, perhaps?
             .map(|s| {
-                s.trim().parse::<usize>().unwrap_or_else(|_| {
-                    #[allow(rustc::untranslatable_diagnostic)]
-                    early_dcx.early_fatal("`RUST_MIN_STACK` should be unset or a number of bytes")
+                let s = s.trim();
+                // FIXME(workingjubilee): add proper diagnostics when we factor out "pre-run" setup
+                #[allow(rustc::untranslatable_diagnostic, rustc::diagnostic_outside_of_impl)]
+                s.parse::<usize>().unwrap_or_else(|_| {
+                    let mut err = early_dcx.early_struct_fatal(format!(
+                        r#"`RUST_MIN_STACK` should be a number of bytes, but was "{s}""#,
+                    ));
+                    err.note("you can also unset `RUST_MIN_STACK` to use the default stack size");
+                    err.emit()
                 })
             })
             // otherwise pick a consistent default