diff options
| author | Maybe Waffle <waffle.lapkin@gmail.com> | 2022-11-16 21:58:58 +0000 |
|---|---|---|
| committer | Maybe Waffle <waffle.lapkin@gmail.com> | 2022-11-16 21:58:58 +0000 |
| commit | 94470f4efd2ec0786dd1f201e9ea84651b4bb0d0 (patch) | |
| tree | 1bcf415fa3d0bedc9b223162446ab9653c8f5bec /compiler/rustc_interface/src | |
| parent | e702534763599db252f2ca308739ec340d0933de (diff) | |
| download | rust-94470f4efd2ec0786dd1f201e9ea84651b4bb0d0.tar.gz rust-94470f4efd2ec0786dd1f201e9ea84651b4bb0d0.zip | |
Use `as_deref` in compiler (but only where it makes sense)
Diffstat (limited to 'compiler/rustc_interface/src')
| -rw-r--r-- | compiler/rustc_interface/src/interface.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_interface/src/queries.rs | 6 | ||||
| -rw-r--r-- | compiler/rustc_interface/src/util.rs | 7 |
3 files changed, 4 insertions, 11 deletions
diff --git a/compiler/rustc_interface/src/interface.rs b/compiler/rustc_interface/src/interface.rs index 89aaa0b95e4..99c934862c4 100644 --- a/compiler/rustc_interface/src/interface.rs +++ b/compiler/rustc_interface/src/interface.rs @@ -304,7 +304,7 @@ pub fn run_compiler<R: Send>(config: Config, f: impl FnOnce(&Compiler) -> R + Se parse_sess_created(&mut sess.parse_sess); } - let temps_dir = sess.opts.unstable_opts.temps_dir.as_ref().map(|o| PathBuf::from(&o)); + let temps_dir = sess.opts.unstable_opts.temps_dir.as_deref().map(PathBuf::from); let compiler = Compiler { sess: Lrc::new(sess), diff --git a/compiler/rustc_interface/src/queries.rs b/compiler/rustc_interface/src/queries.rs index 91d180e1eb7..fc0b11183f7 100644 --- a/compiler/rustc_interface/src/queries.rs +++ b/compiler/rustc_interface/src/queries.rs @@ -33,11 +33,7 @@ pub struct Query<T> { impl<T> Query<T> { fn compute<F: FnOnce() -> Result<T>>(&self, f: F) -> Result<&Query<T>> { - let mut result = self.result.borrow_mut(); - if result.is_none() { - *result = Some(f()); - } - result.as_ref().unwrap().as_ref().map(|_| self).map_err(|err| *err) + self.result.borrow_mut().get_or_insert_with(f).as_ref().map(|_| self).map_err(|&err| err) } /// Takes ownership of the query result. Further attempts to take or peek the query diff --git a/compiler/rustc_interface/src/util.rs b/compiler/rustc_interface/src/util.rs index 2fe3fb2fa56..4142964a0da 100644 --- a/compiler/rustc_interface/src/util.rs +++ b/compiler/rustc_interface/src/util.rs @@ -68,10 +68,7 @@ pub fn create_session( let codegen_backend = if let Some(make_codegen_backend) = make_codegen_backend { make_codegen_backend(&sopts) } else { - get_codegen_backend( - &sopts.maybe_sysroot, - sopts.unstable_opts.codegen_backend.as_ref().map(|name| &name[..]), - ) + get_codegen_backend(&sopts.maybe_sysroot, sopts.unstable_opts.codegen_backend.as_deref()) }; // target_override is documented to be called before init(), so this is okay @@ -260,7 +257,7 @@ pub fn rustc_path<'a>() -> Option<&'a Path> { const BIN_PATH: &str = env!("RUSTC_INSTALL_BINDIR"); - RUSTC_PATH.get_or_init(|| get_rustc_path_inner(BIN_PATH)).as_ref().map(|v| &**v) + RUSTC_PATH.get_or_init(|| get_rustc_path_inner(BIN_PATH)).as_deref() } fn get_rustc_path_inner(bin_path: &str) -> Option<PathBuf> { |
