about summary refs log tree commit diff
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-10-08 23:09:36 +0100
committervarkor <github@varkor.com>2019-12-06 12:23:23 +0000
commit50985b012a6d14a1bee8ddf8d086d1741858dd3f (patch)
tree05552096e531ee5e338a6de1d2acfec982dcea74
parente3a8ea4e18a50da60036d2731768a9cb78c90f5a (diff)
downloadrust-50985b012a6d14a1bee8ddf8d086d1741858dd3f.tar.gz
rust-50985b012a6d14a1bee8ddf8d086d1741858dd3f.zip
Use `to_option_with` in several places
-rw-r--r--src/librustc_codegen_ssa/back/rpath.rs2
-rw-r--r--src/librustc_codegen_ssa/lib.rs11
-rw-r--r--src/librustc_interface/passes.rs2
-rw-r--r--src/librustc_session/session.rs2
4 files changed, 10 insertions, 7 deletions
diff --git a/src/librustc_codegen_ssa/back/rpath.rs b/src/librustc_codegen_ssa/back/rpath.rs
index b932a202093..c61f16da264 100644
--- a/src/librustc_codegen_ssa/back/rpath.rs
+++ b/src/librustc_codegen_ssa/back/rpath.rs
@@ -119,7 +119,7 @@ fn path_relative_from(path: &Path, base: &Path) -> Option<PathBuf> {
     use std::path::Component;
 
     if path.is_absolute() != base.is_absolute() {
-        path.is_absolute().to_option(PathBuf::from(path))
+        path.is_absolute().to_option_with(|| PathBuf::from(path))
     } else {
         let mut ita = path.components();
         let mut itb = base.components();
diff --git a/src/librustc_codegen_ssa/lib.rs b/src/librustc_codegen_ssa/lib.rs
index ebddff2af6e..2c2150e01a3 100644
--- a/src/librustc_codegen_ssa/lib.rs
+++ b/src/librustc_codegen_ssa/lib.rs
@@ -69,11 +69,14 @@ impl<M> ModuleCodegen<M> {
                             emit_bc: bool,
                             emit_bc_compressed: bool,
                             outputs: &OutputFilenames) -> CompiledModule {
-        let object = emit_obj.to_option(outputs.temp_path(OutputType::Object, Some(&self.name)));
-        let bytecode = emit_bc.to_option(outputs.temp_path(OutputType::Bitcode, Some(&self.name)));
-        let bytecode_compressed = emit_bc_compressed.to_option(
+        let object = emit_obj
+            .to_option_with(|| outputs.temp_path(OutputType::Object, Some(&self.name)));
+        let bytecode = emit_bc
+            .to_option_with(|| outputs.temp_path(OutputType::Bitcode, Some(&self.name)));
+        let bytecode_compressed = emit_bc_compressed.to_option_with(|| {
             outputs.temp_path(OutputType::Bitcode, Some(&self.name))
-                    .with_extension(RLIB_BYTECODE_EXTENSION));
+                .with_extension(RLIB_BYTECODE_EXTENSION)
+        });
 
         CompiledModule {
             name: self.name.clone(),
diff --git a/src/librustc_interface/passes.rs b/src/librustc_interface/passes.rs
index 6be41a23735..753d7b02cca 100644
--- a/src/librustc_interface/passes.rs
+++ b/src/librustc_interface/passes.rs
@@ -547,7 +547,7 @@ fn output_contains_path(output_paths: &[PathBuf], input_path: &PathBuf) -> bool
 }
 
 fn output_conflicts_with_dir(output_paths: &[PathBuf]) -> Option<PathBuf> {
-    let check = |output_path: &PathBuf| output_path.is_dir().to_option(output_path.clone());
+    let check = |output_path: &PathBuf| output_path.is_dir().to_option_with(|| output_path.clone());
     check_output(output_paths, check)
 }
 
diff --git a/src/librustc_session/session.rs b/src/librustc_session/session.rs
index 5f992710bec..9cdda56d2a2 100644
--- a/src/librustc_session/session.rs
+++ b/src/librustc_session/session.rs
@@ -752,7 +752,7 @@ impl Session {
     }
 
     pub fn incr_comp_session_dir_opt(&self) -> Option<cell::Ref<'_, PathBuf>> {
-        self.opts.incremental.is_some().to_option(self.incr_comp_session_dir())
+        self.opts.incremental.is_some().to_option_with(|| self.incr_comp_session_dir())
     }
 
     pub fn print_perf_stats(&self) {