@@ -500,6 +500,7 @@ impl Config {
500
500
501
501
pub fn parse ( args : & [ String ] ) -> Config {
502
502
let flags = Flags :: parse ( & args) ;
503
+
503
504
let mut config = Config :: default_opts ( ) ;
504
505
config. exclude = flags. exclude ;
505
506
config. rustc_error_format = flags. rustc_error_format ;
@@ -551,14 +552,14 @@ impl Config {
551
552
let has_targets = build. target . is_some ( ) || flags. target . is_some ( ) ;
552
553
config. skip_only_host_steps = !has_hosts && has_targets;
553
554
554
- config. hosts = if let Some ( arg_host) = flags. host . clone ( ) {
555
+ config. hosts = if let Some ( arg_host) = flags. host {
555
556
arg_host
556
557
} else if let Some ( file_host) = build. host {
557
558
file_host. iter ( ) . map ( |h| TargetSelection :: from_user ( h) ) . collect ( )
558
559
} else {
559
560
vec ! [ config. build]
560
561
} ;
561
- config. targets = if let Some ( arg_target) = flags. target . clone ( ) {
562
+ config. targets = if let Some ( arg_target) = flags. target {
562
563
arg_target
563
564
} else if let Some ( file_target) = build. target {
564
565
file_target. iter ( ) . map ( |h| TargetSelection :: from_user ( h) ) . collect ( )
@@ -628,14 +629,14 @@ impl Config {
628
629
629
630
config. verbose = cmp:: max ( config. verbose , flags. verbose ) ;
630
631
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) ;
639
640
}
640
641
641
642
// We want the llvm-skip-rebuild flag to take precedence over the
@@ -658,7 +659,7 @@ impl Config {
658
659
let mut optimize = None ;
659
660
let mut ignore_git = None ;
660
661
661
- if let Some ( ref llvm) = toml. llvm {
662
+ if let Some ( llvm) = toml. llvm {
662
663
match llvm. ccache {
663
664
Some ( StringOrBool :: String ( ref s) ) => config. ccache = Some ( s. to_string ( ) ) ,
664
665
Some ( StringOrBool :: Bool ( true ) ) => {
@@ -726,7 +727,7 @@ impl Config {
726
727
}
727
728
}
728
729
729
- if let Some ( ref rust) = toml. rust {
730
+ if let Some ( rust) = toml. rust {
730
731
debug = rust. debug ;
731
732
debug_assertions = rust. debug_assertions ;
732
733
debug_assertions_std = rust. debug_assertions_std ;
@@ -746,7 +747,7 @@ impl Config {
746
747
set ( & mut config. test_compare_mode , rust. test_compare_mode ) ;
747
748
set ( & mut config. llvm_libunwind , rust. llvm_libunwind ) ;
748
749
set ( & mut config. backtrace , rust. backtrace ) ;
749
- set ( & mut config. channel , rust. channel . clone ( ) ) ;
750
+ set ( & mut config. channel , rust. channel ) ;
750
751
set ( & mut config. rust_dist_src , rust. dist_src ) ;
751
752
set ( & mut config. verbose_tests , rust. verbose_tests ) ;
752
753
// in the case "false" is set explicitly, do not overwrite the command line args
@@ -757,9 +758,9 @@ impl Config {
757
758
set ( & mut config. lld_enabled , rust. lld ) ;
758
759
set ( & mut config. llvm_tools_enabled , rust. llvm_tools ) ;
759
760
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) ;
763
764
set ( & mut config. deny_warnings , flags. deny_warnings . or ( rust. deny_warnings ) ) ;
764
765
set ( & mut config. backtrace_on_ice , rust. backtrace_on_ice ) ;
765
766
set ( & mut config. rust_verify_llvm_ir , rust. verify_llvm_ir ) ;
@@ -776,9 +777,9 @@ impl Config {
776
777
config. rust_codegen_units_std = rust. codegen_units_std . map ( threads_from_config) ;
777
778
}
778
779
779
- if let Some ( ref t) = toml. target {
780
+ if let Some ( t) = toml. target {
780
781
for ( triple, cfg) in t {
781
- let mut target = Target :: from_triple ( triple) ;
782
+ let mut target = Target :: from_triple ( & triple) ;
782
783
783
784
if let Some ( ref s) = cfg. llvm_config {
784
785
target. llvm_config = Some ( config. src . join ( s) ) ;
@@ -792,18 +793,18 @@ impl Config {
792
793
if let Some ( s) = cfg. no_std {
793
794
target. no_std = s;
794
795
}
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) ;
800
801
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) ;
805
806
806
- config. target_config . insert ( TargetSelection :: from_user ( triple) , target) ;
807
+ config. target_config . insert ( TargetSelection :: from_user ( & triple) , target) ;
807
808
}
808
809
}
809
810
@@ -821,10 +822,10 @@ impl Config {
821
822
build_target. llvm_filecheck = Some ( ci_llvm_bin. join ( exe ( "FileCheck" , config. build ) ) ) ;
822
823
}
823
824
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 ;
828
829
set ( & mut config. rust_dist_src , t. src_tarball ) ;
829
830
set ( & mut config. missing_tools , t. missing_tools ) ;
830
831
}
0 commit comments