diff --git a/src/librustc/session/config.rs b/src/librustc/session/config.rs index 8b921a4b46c2..d2020ac852d0 100644 --- a/src/librustc/session/config.rs +++ b/src/librustc/session/config.rs @@ -490,10 +490,10 @@ pub enum Input { } impl Input { - pub fn filestem(&self) -> String { + pub fn filestem(&self) -> &str { match *self { - Input::File(ref ifile) => ifile.file_stem().unwrap().to_str().unwrap().to_string(), - Input::Str { .. } => "rust_out".to_string(), + Input::File(ref ifile) => ifile.file_stem().unwrap().to_str().unwrap(), + Input::Str { .. } => "rust_out", } } @@ -1406,6 +1406,7 @@ pub fn default_configuration(sess: &Session) -> ast::CrateConfig { let atomic_cas = sess.target.target.options.atomic_cas; let mut ret = FxHashSet::default(); + ret.reserve(6); // the minimum number of insertions // Target bindings. ret.insert((Symbol::intern("target_os"), Some(Symbol::intern(os)))); if let Some(ref fam) = sess.target.target.options.target_family { diff --git a/src/librustc/session/filesearch.rs b/src/librustc/session/filesearch.rs index e55b82c63c3e..fb8bf8be1c24 100644 --- a/src/librustc/session/filesearch.rs +++ b/src/librustc/session/filesearch.rs @@ -41,7 +41,7 @@ impl<'a> FileSearch<'a> { F: FnMut(&Path, PathKind) { let mut visited_dirs = FxHashSet::default(); - + visited_dirs.reserve(self.search_paths.paths.len() + 1); for (path, kind) in self.search_paths.iter(self.kind) { f(path, kind); visited_dirs.insert(path.to_path_buf()); diff --git a/src/librustc/session/search_paths.rs b/src/librustc/session/search_paths.rs index be1bfcc0894d..768d4f1e5fb6 100644 --- a/src/librustc/session/search_paths.rs +++ b/src/librustc/session/search_paths.rs @@ -14,7 +14,7 @@ use session::{early_error, config}; #[derive(Clone, Debug)] pub struct SearchPaths { - paths: Vec<(PathKind, PathBuf)>, + crate paths: Vec<(PathKind, PathBuf)>, } pub struct Iter<'a> { diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index b4f95b915eb8..223df7cbb187 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -1657,7 +1657,7 @@ pub fn build_output_filenames( .crate_name .clone() .or_else(|| attr::find_crate_name(attrs).map(|n| n.to_string())) - .unwrap_or_else(|| input.filestem()); + .unwrap_or_else(|| input.filestem().to_owned()); OutputFilenames { out_directory: dirpath,