diff options
| author | Léo Lanteri Thauvin <leseulartichaut@gmail.com> | 2021-08-16 17:29:49 +0200 |
|---|---|---|
| committer | Léo Lanteri Thauvin <leseulartichaut@gmail.com> | 2021-08-25 20:24:35 +0200 |
| commit | fde1b76b4b1d0d84f5691f4785906b31bb91f38d (patch) | |
| tree | 966691ff24d8ec26354d737e549bbfccaa658f3d /compiler/rustc_span/src | |
| parent | a992a11913b39a258158646bb1e03528c5aa5060 (diff) | |
| download | rust-fde1b76b4b1d0d84f5691f4785906b31bb91f38d.tar.gz rust-fde1b76b4b1d0d84f5691f4785906b31bb91f38d.zip | |
Use if-let guards in the codebase
Diffstat (limited to 'compiler/rustc_span/src')
| -rw-r--r-- | compiler/rustc_span/src/lib.rs | 2 | ||||
| -rw-r--r-- | compiler/rustc_span/src/source_map.rs | 35 |
2 files changed, 17 insertions, 20 deletions
diff --git a/compiler/rustc_span/src/lib.rs b/compiler/rustc_span/src/lib.rs index 9e127577b61..89e032b222f 100644 --- a/compiler/rustc_span/src/lib.rs +++ b/compiler/rustc_span/src/lib.rs @@ -16,10 +16,12 @@ #![doc(html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/")] #![feature(array_windows)] #![feature(crate_visibility_modifier)] +#![feature(if_let_guard)] #![feature(negative_impls)] #![feature(nll)] #![feature(min_specialization)] #![feature(thread_local_const_init)] +#![cfg_attr(bootstrap, allow(incomplete_features))] // if_let_guard #[macro_use] extern crate rustc_macros; diff --git a/compiler/rustc_span/src/source_map.rs b/compiler/rustc_span/src/source_map.rs index f700397fcdf..2c3af802be5 100644 --- a/compiler/rustc_span/src/source_map.rs +++ b/compiler/rustc_span/src/source_map.rs @@ -982,15 +982,13 @@ impl SourceMap { None } pub fn ensure_source_file_source_present(&self, source_file: Lrc<SourceFile>) -> bool { - source_file.add_external_src(|| match source_file.name { - FileName::Real(ref name) => { - if let Some(local_path) = name.local_path() { + source_file.add_external_src(|| { + match source_file.name { + FileName::Real(ref name) if let Some(local_path) = name.local_path() => { self.file_loader.read_file(local_path).ok() - } else { - None } + _ => None, } - _ => None, }) } @@ -1033,22 +1031,19 @@ impl FilePathMapping { fn map_filename_prefix(&self, file: &FileName) -> (FileName, bool) { match file { - FileName::Real(realfile) => { - if let RealFileName::LocalPath(local_path) = realfile { - let (mapped_path, mapped) = self.map_prefix(local_path.to_path_buf()); - let realfile = if mapped { - RealFileName::Remapped { - local_path: Some(local_path.clone()), - virtual_name: mapped_path, - } - } else { - realfile.clone() - }; - (FileName::Real(realfile), mapped) + FileName::Real(realfile) if let RealFileName::LocalPath(local_path) = realfile => { + let (mapped_path, mapped) = self.map_prefix(local_path.to_path_buf()); + let realfile = if mapped { + RealFileName::Remapped { + local_path: Some(local_path.clone()), + virtual_name: mapped_path, + } } else { - unreachable!("attempted to remap an already remapped filename"); - } + realfile.clone() + }; + (FileName::Real(realfile), mapped) } + FileName::Real(_) => unreachable!("attempted to remap an already remapped filename"), other => (other.clone(), false), } } |
