about summary refs log tree commit diff
path: root/compiler/rustc_driver_impl/src/args.rs
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2025-02-02 15:17:29 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2025-02-02 16:06:43 +0000
commitd237378cd164e1bf2fd6f91271abd49c8573ded7 (patch)
treed2826e5c2f93a15120ac21e21ce13aabb095591a /compiler/rustc_driver_impl/src/args.rs
parent6dd75f0d6802f56564f5f9c947a85ded286d3986 (diff)
downloadrust-d237378cd164e1bf2fd6f91271abd49c8573ded7.tar.gz
rust-d237378cd164e1bf2fd6f91271abd49c8573ded7.zip
Some cleanups around EarlyDiagCtxt
All callers of EarlyDiagCtxt::early_error now emit a fatal error.
Diffstat (limited to 'compiler/rustc_driver_impl/src/args.rs')
-rw-r--r--compiler/rustc_driver_impl/src/args.rs19
1 files changed, 9 insertions, 10 deletions
diff --git a/compiler/rustc_driver_impl/src/args.rs b/compiler/rustc_driver_impl/src/args.rs
index 2fc767b3750..b0970144c42 100644
--- a/compiler/rustc_driver_impl/src/args.rs
+++ b/compiler/rustc_driver_impl/src/args.rs
@@ -1,7 +1,6 @@
 use std::{env, error, fmt, fs, io};
 
 use rustc_session::EarlyDiagCtxt;
-use rustc_span::ErrorGuaranteed;
 
 /// Expands argfiles in command line arguments.
 #[derive(Default)]
@@ -118,22 +117,22 @@ pub fn arg_expand_all(early_dcx: &EarlyDiagCtxt, at_args: &[String]) -> Vec<Stri
 ///
 /// This function is identical to [`env::args()`] except that it emits an error when it encounters
 /// non-Unicode arguments instead of panicking.
-pub fn raw_args(early_dcx: &EarlyDiagCtxt) -> Result<Vec<String>, ErrorGuaranteed> {
-    let mut res = Ok(Vec::new());
+pub fn raw_args(early_dcx: &EarlyDiagCtxt) -> Vec<String> {
+    let mut args = Vec::new();
+    let mut guar = Ok(());
     for (i, arg) in env::args_os().enumerate() {
         match arg.into_string() {
-            Ok(arg) => {
-                if let Ok(args) = &mut res {
-                    args.push(arg);
-                }
-            }
+            Ok(arg) => args.push(arg),
             Err(arg) => {
-                res =
+                guar =
                     Err(early_dcx.early_err(format!("argument {i} is not valid Unicode: {arg:?}")))
             }
         }
     }
-    res
+    if let Err(guar) = guar {
+        guar.raise_fatal();
+    }
+    args
 }
 
 #[derive(Debug)]