diff options
| author | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-02-02 15:17:29 +0000 |
|---|---|---|
| committer | bjorn3 <17426603+bjorn3@users.noreply.github.com> | 2025-02-02 16:06:43 +0000 |
| commit | d237378cd164e1bf2fd6f91271abd49c8573ded7 (patch) | |
| tree | d2826e5c2f93a15120ac21e21ce13aabb095591a /compiler/rustc_driver_impl/src/args.rs | |
| parent | 6dd75f0d6802f56564f5f9c947a85ded286d3986 (diff) | |
| download | rust-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.rs | 19 |
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)] |
