Skip to content

Commit

Permalink
Don't call self.parse() in Compiler::crate_name() unless necessary.
Browse files Browse the repository at this point in the history
  • Loading branch information
nnethercote committed Sep 1, 2019
1 parent dfd43f0 commit d61605c
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions src/librustc_interface/queries.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
)
}
})
})
}

Expand Down

0 comments on commit d61605c

Please sign in to comment.