about summary refs log tree commit diff
path: root/compiler/rustc_interface/src/interface.rs
diff options
context:
space:
mode:
authorMaybe Waffle <waffle.lapkin@gmail.com>2024-02-18 19:26:45 +0000
committerMaybe Waffle <waffle.lapkin@gmail.com>2024-02-18 19:26:45 +0000
commit6d115f5d9a05380b983dd53d747150c8afbd48d8 (patch)
tree4989e099843d3ee6741f30a5665388af77864a08 /compiler/rustc_interface/src/interface.rs
parent5441523f0727639040fdd134abff1e298d88733e (diff)
downloadrust-6d115f5d9a05380b983dd53d747150c8afbd48d8.tar.gz
rust-6d115f5d9a05380b983dd53d747150c8afbd48d8.zip
Refactor out another repeating pattern
Diffstat (limited to 'compiler/rustc_interface/src/interface.rs')
-rw-r--r--compiler/rustc_interface/src/interface.rs26
1 files changed, 7 insertions, 19 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs
index a45762b2ce7..9783327efd3 100644
--- a/compiler/rustc_interface/src/interface.rs
+++ b/compiler/rustc_interface/src/interface.rs
@@ -338,7 +338,7 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se
 
             let sysroot = filesearch::materialize_sysroot(config.opts.maybe_sysroot.clone());
 
-            let (codegen_backend, target_cfg) = match config.make_codegen_backend {
+            let (codegen_backend, target_override) = match config.make_codegen_backend {
                 None => {
                     // Build a target without override, so that it can override the backend if needed
                     let target =
@@ -365,36 +365,24 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se
                         );
                     }
 
-                    // Re-build target with the (potential) override
-                    let target = config::build_target_config(
-                        &early_dcx,
-                        &config.opts,
-                        target_override,
-                        &sysroot,
-                    );
-
-                    (backend, target)
+                    (backend, target_override)
                 }
                 Some(make_codegen_backend) => {
                     // N.B. `make_codegen_backend` takes precedence over `target.default_codegen_backend`,
                     //      which is ignored in this case.
-
                     let backend = make_codegen_backend(&config.opts);
 
                     // target_override is documented to be called before init(), so this is okay
                     let target_override = backend.target_override(&config.opts);
 
-                    let target = config::build_target_config(
-                        &early_dcx,
-                        &config.opts,
-                        target_override,
-                        &sysroot,
-                    );
-
-                    (backend, target)
+                    (backend, target_override)
                 }
             };
 
+            // Re-build target with the (potential) override
+            let target_cfg =
+                config::build_target_config(&early_dcx, &config.opts, target_override, &sysroot);
+
             let temps_dir = config.opts.unstable_opts.temps_dir.as_deref().map(PathBuf::from);
 
             let bundle = match rustc_errors::fluent_bundle(