Skip to content

Commit 2e0dbf1

Browse files
authored
Rollup merge of #76735 - jyn514:no-clone, r=Mark-Simulacrum
Remove unnecessary `clone()`s in bootstrap The performance difference is negligible, but it makes me feel better. r? @Mark-Simulacrum
2 parents 6e57eec + d04ca00 commit 2e0dbf1

File tree

4 files changed

+39
-40
lines changed

4 files changed

+39
-40
lines changed

src/bootstrap/builder.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1209,7 +1209,7 @@ impl<'a> Builder<'a> {
12091209
cargo.env(format!("CC_{}", target.triple), &cc);
12101210

12111211
let cflags = self.cflags(target, GitRepo::Rustc).join(" ");
1212-
cargo.env(format!("CFLAGS_{}", target.triple), cflags.clone());
1212+
cargo.env(format!("CFLAGS_{}", target.triple), &cflags);
12131213

12141214
if let Some(ar) = self.ar(target) {
12151215
let ranlib = format!("{} s", ar.display());

src/bootstrap/config.rs

+33-32
Original file line numberDiff line numberDiff line change
@@ -500,6 +500,7 @@ impl Config {
500500

501501
pub fn parse(args: &[String]) -> Config {
502502
let flags = Flags::parse(&args);
503+
503504
let mut config = Config::default_opts();
504505
config.exclude = flags.exclude;
505506
config.rustc_error_format = flags.rustc_error_format;
@@ -551,14 +552,14 @@ impl Config {
551552
let has_targets = build.target.is_some() || flags.target.is_some();
552553
config.skip_only_host_steps = !has_hosts && has_targets;
553554

554-
config.hosts = if let Some(arg_host) = flags.host.clone() {
555+
config.hosts = if let Some(arg_host) = flags.host {
555556
arg_host
556557
} else if let Some(file_host) = build.host {
557558
file_host.iter().map(|h| TargetSelection::from_user(h)).collect()
558559
} else {
559560
vec![config.build]
560561
};
561-
config.targets = if let Some(arg_target) = flags.target.clone() {
562+
config.targets = if let Some(arg_target) = flags.target {
562563
arg_target
563564
} else if let Some(file_target) = build.target {
564565
file_target.iter().map(|h| TargetSelection::from_user(h)).collect()
@@ -628,14 +629,14 @@ impl Config {
628629

629630
config.verbose = cmp::max(config.verbose, flags.verbose);
630631

631-
if let Some(ref install) = toml.install {
632-
config.prefix = install.prefix.clone().map(PathBuf::from);
633-
config.sysconfdir = install.sysconfdir.clone().map(PathBuf::from);
634-
config.datadir = install.datadir.clone().map(PathBuf::from);
635-
config.docdir = install.docdir.clone().map(PathBuf::from);
636-
set(&mut config.bindir, install.bindir.clone().map(PathBuf::from));
637-
config.libdir = install.libdir.clone().map(PathBuf::from);
638-
config.mandir = install.mandir.clone().map(PathBuf::from);
632+
if let Some(install) = toml.install {
633+
config.prefix = install.prefix.map(PathBuf::from);
634+
config.sysconfdir = install.sysconfdir.map(PathBuf::from);
635+
config.datadir = install.datadir.map(PathBuf::from);
636+
config.docdir = install.docdir.map(PathBuf::from);
637+
set(&mut config.bindir, install.bindir.map(PathBuf::from));
638+
config.libdir = install.libdir.map(PathBuf::from);
639+
config.mandir = install.mandir.map(PathBuf::from);
639640
}
640641

641642
// We want the llvm-skip-rebuild flag to take precedence over the
@@ -658,7 +659,7 @@ impl Config {
658659
let mut optimize = None;
659660
let mut ignore_git = None;
660661

661-
if let Some(ref llvm) = toml.llvm {
662+
if let Some(llvm) = toml.llvm {
662663
match llvm.ccache {
663664
Some(StringOrBool::String(ref s)) => config.ccache = Some(s.to_string()),
664665
Some(StringOrBool::Bool(true)) => {
@@ -726,7 +727,7 @@ impl Config {
726727
}
727728
}
728729

729-
if let Some(ref rust) = toml.rust {
730+
if let Some(rust) = toml.rust {
730731
debug = rust.debug;
731732
debug_assertions = rust.debug_assertions;
732733
debug_assertions_std = rust.debug_assertions_std;
@@ -746,7 +747,7 @@ impl Config {
746747
set(&mut config.test_compare_mode, rust.test_compare_mode);
747748
set(&mut config.llvm_libunwind, rust.llvm_libunwind);
748749
set(&mut config.backtrace, rust.backtrace);
749-
set(&mut config.channel, rust.channel.clone());
750+
set(&mut config.channel, rust.channel);
750751
set(&mut config.rust_dist_src, rust.dist_src);
751752
set(&mut config.verbose_tests, rust.verbose_tests);
752753
// in the case "false" is set explicitly, do not overwrite the command line args
@@ -757,9 +758,9 @@ impl Config {
757758
set(&mut config.lld_enabled, rust.lld);
758759
set(&mut config.llvm_tools_enabled, rust.llvm_tools);
759760
config.rustc_parallel = rust.parallel_compiler.unwrap_or(false);
760-
config.rustc_default_linker = rust.default_linker.clone();
761-
config.musl_root = rust.musl_root.clone().map(PathBuf::from);
762-
config.save_toolstates = rust.save_toolstates.clone().map(PathBuf::from);
761+
config.rustc_default_linker = rust.default_linker;
762+
config.musl_root = rust.musl_root.map(PathBuf::from);
763+
config.save_toolstates = rust.save_toolstates.map(PathBuf::from);
763764
set(&mut config.deny_warnings, flags.deny_warnings.or(rust.deny_warnings));
764765
set(&mut config.backtrace_on_ice, rust.backtrace_on_ice);
765766
set(&mut config.rust_verify_llvm_ir, rust.verify_llvm_ir);
@@ -776,9 +777,9 @@ impl Config {
776777
config.rust_codegen_units_std = rust.codegen_units_std.map(threads_from_config);
777778
}
778779

779-
if let Some(ref t) = toml.target {
780+
if let Some(t) = toml.target {
780781
for (triple, cfg) in t {
781-
let mut target = Target::from_triple(triple);
782+
let mut target = Target::from_triple(&triple);
782783

783784
if let Some(ref s) = cfg.llvm_config {
784785
target.llvm_config = Some(config.src.join(s));
@@ -792,18 +793,18 @@ impl Config {
792793
if let Some(s) = cfg.no_std {
793794
target.no_std = s;
794795
}
795-
target.cc = cfg.cc.clone().map(PathBuf::from);
796-
target.cxx = cfg.cxx.clone().map(PathBuf::from);
797-
target.ar = cfg.ar.clone().map(PathBuf::from);
798-
target.ranlib = cfg.ranlib.clone().map(PathBuf::from);
799-
target.linker = cfg.linker.clone().map(PathBuf::from);
796+
target.cc = cfg.cc.map(PathBuf::from);
797+
target.cxx = cfg.cxx.map(PathBuf::from);
798+
target.ar = cfg.ar.map(PathBuf::from);
799+
target.ranlib = cfg.ranlib.map(PathBuf::from);
800+
target.linker = cfg.linker.map(PathBuf::from);
800801
target.crt_static = cfg.crt_static;
801-
target.musl_root = cfg.musl_root.clone().map(PathBuf::from);
802-
target.musl_libdir = cfg.musl_libdir.clone().map(PathBuf::from);
803-
target.wasi_root = cfg.wasi_root.clone().map(PathBuf::from);
804-
target.qemu_rootfs = cfg.qemu_rootfs.clone().map(PathBuf::from);
802+
target.musl_root = cfg.musl_root.map(PathBuf::from);
803+
target.musl_libdir = cfg.musl_libdir.map(PathBuf::from);
804+
target.wasi_root = cfg.wasi_root.map(PathBuf::from);
805+
target.qemu_rootfs = cfg.qemu_rootfs.map(PathBuf::from);
805806

806-
config.target_config.insert(TargetSelection::from_user(triple), target);
807+
config.target_config.insert(TargetSelection::from_user(&triple), target);
807808
}
808809
}
809810

@@ -821,10 +822,10 @@ impl Config {
821822
build_target.llvm_filecheck = Some(ci_llvm_bin.join(exe("FileCheck", config.build)));
822823
}
823824

824-
if let Some(ref t) = toml.dist {
825-
config.dist_sign_folder = t.sign_folder.clone().map(PathBuf::from);
826-
config.dist_gpg_password_file = t.gpg_password_file.clone().map(PathBuf::from);
827-
config.dist_upload_addr = t.upload_addr.clone();
825+
if let Some(t) = toml.dist {
826+
config.dist_sign_folder = t.sign_folder.map(PathBuf::from);
827+
config.dist_gpg_password_file = t.gpg_password_file.map(PathBuf::from);
828+
config.dist_upload_addr = t.upload_addr;
828829
set(&mut config.rust_dist_src, t.src_tarball);
829830
set(&mut config.missing_tools, t.missing_tools);
830831
}

src/bootstrap/format.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -105,15 +105,13 @@ pub fn format(build: &Build, check: bool) {
105105
eprintln!("./x.py fmt is not supported on this channel");
106106
std::process::exit(1);
107107
});
108-
let src = build.src.clone();
109-
let walker = WalkBuilder::new(&build.src).types(matcher).overrides(ignore_fmt).build_parallel();
108+
let src = &build.src;
109+
let walker = WalkBuilder::new(src).types(matcher).overrides(ignore_fmt).build_parallel();
110110
walker.run(|| {
111-
let src = src.clone();
112-
let rustfmt_path = rustfmt_path.clone();
113111
Box::new(move |entry| {
114112
let entry = t!(entry);
115113
if entry.file_type().map_or(false, |t| t.is_file()) {
116-
rustfmt(&src, &rustfmt_path, &entry.path(), check);
114+
rustfmt(src, &rustfmt_path, &entry.path(), check);
117115
}
118116
ignore::WalkState::Continue
119117
})

src/bootstrap/sanity.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ impl Finder {
3030
Self { cache: HashMap::new(), path: env::var_os("PATH").unwrap_or_default() }
3131
}
3232

33-
pub fn maybe_have<S: AsRef<OsStr>>(&mut self, cmd: S) -> Option<PathBuf> {
34-
let cmd: OsString = cmd.as_ref().into();
33+
pub fn maybe_have<S: Into<OsString>>(&mut self, cmd: S) -> Option<PathBuf> {
34+
let cmd: OsString = cmd.into();
3535
let path = &self.path;
3636
self.cache
3737
.entry(cmd.clone())

0 commit comments

Comments
 (0)