diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-08-30 09:03:58 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-09-02 08:46:31 +1000 |
| commit | d61605cef866008a19e33eb596df1d76ff1571f3 (patch) | |
| tree | 2235a6dba8d9a20a5ed358caccecb2f54b96ca6a /src/librustc_interface | |
| parent | dfd43f0fdd4e6969c7d82c0670d70bf305fbccf8 (diff) | |
| download | rust-d61605cef866008a19e33eb596df1d76ff1571f3.tar.gz rust-d61605cef866008a19e33eb596df1d76ff1571f3.zip | |
Don't call `self.parse()` in `Compiler::crate_name()` unless necessary.
Diffstat (limited to 'src/librustc_interface')
| -rw-r--r-- | src/librustc_interface/queries.rs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/librustc_interface/queries.rs b/src/librustc_interface/queries.rs index ed50dadb600..996e9fae0db 100644 --- a/src/librustc_interface/queries.rs +++ b/src/librustc_interface/queries.rs @@ -126,17 +126,18 @@ impl Compiler { pub fn crate_name(&self) -> Result<&Query<String>> { self.queries.crate_name.compute(|| { - let parse_result = self.parse()?; - let krate = parse_result.peek(); - let result = match self.crate_name { + Ok(match self.crate_name { Some(ref crate_name) => crate_name.clone(), - None => rustc_codegen_utils::link::find_crate_name( - Some(self.session()), - &krate.attrs, - &self.input - ), - }; - Ok(result) + None => { + let parse_result = self.parse()?; + let krate = parse_result.peek(); + rustc_codegen_utils::link::find_crate_name( + Some(self.session()), + &krate.attrs, + &self.input + ) + } + }) }) } |
