@@ -572,10 +572,10 @@ fn produce_final_output_artifacts(
572
572
} ;
573
573
574
574
let copy_if_one_unit = |output_type : OutputType , keep_numbered : bool | {
575
- if compiled_modules. modules . len ( ) == 1 {
575
+ if let [ module ] = & compiled_modules. modules [ .. ] {
576
576
// 1) Only one codegen unit. In this case it's no difficulty
577
577
// to copy `foo.0.x` to `foo.x`.
578
- let module_name = Some ( & compiled_modules . modules [ 0 ] . name [ ..] ) ;
578
+ let module_name = Some ( & module . name [ ..] ) ;
579
579
let path = crate_output. temp_path ( output_type, module_name) ;
580
580
let output = crate_output. path ( output_type) ;
581
581
if !output_type. is_text_output ( ) && output. is_tty ( ) {
@@ -707,8 +707,8 @@ fn produce_final_output_artifacts(
707
707
}
708
708
709
709
if sess. opts . json_artifact_notifications {
710
- if compiled_modules. modules . len ( ) == 1 {
711
- compiled_modules . modules [ 0 ] . for_each_output ( |_path, ty| {
710
+ if let [ module ] = & compiled_modules. modules [ .. ] {
711
+ module . for_each_output ( |_path, ty| {
712
712
if sess. opts . output_types . contains_key ( & ty) {
713
713
let descr = ty. shorthand ( ) ;
714
714
// for single cgu file is renamed to drop cgu specific suffix
@@ -864,7 +864,7 @@ pub(crate) fn compute_per_cgu_lto_type(
864
864
// require LTO so the request for LTO is always unconditionally
865
865
// passed down to the backend, but we don't actually want to do
866
866
// anything about it yet until we've got a final product.
867
- let is_rlib = sess_crate_types . len ( ) == 1 && sess_crate_types[ 0 ] == CrateType :: Rlib ;
867
+ let is_rlib = matches ! ( sess_crate_types, [ CrateType :: Rlib ] ) ;
868
868
869
869
match sess_lto {
870
870
Lto :: ThinLocal if !linker_does_lto && !is_allocator => ComputedLtoType :: Thin ,
0 commit comments