@@ -572,10 +572,10 @@ fn produce_final_output_artifacts(
572572 } ;
573573
574574 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 [ .. ] {
576576 // 1) Only one codegen unit. In this case it's no difficulty
577577 // 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 [ ..] ) ;
579579 let path = crate_output. temp_path ( output_type, module_name) ;
580580 let output = crate_output. path ( output_type) ;
581581 if !output_type. is_text_output ( ) && output. is_tty ( ) {
@@ -707,8 +707,8 @@ fn produce_final_output_artifacts(
707707 }
708708
709709 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| {
712712 if sess. opts . output_types . contains_key ( & ty) {
713713 let descr = ty. shorthand ( ) ;
714714 // for single cgu file is renamed to drop cgu specific suffix
@@ -864,7 +864,7 @@ pub(crate) fn compute_per_cgu_lto_type(
864864 // require LTO so the request for LTO is always unconditionally
865865 // passed down to the backend, but we don't actually want to do
866866 // 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 ] ) ;
868868
869869 match sess_lto {
870870 Lto :: ThinLocal if !linker_does_lto && !is_allocator => ComputedLtoType :: Thin ,
0 commit comments