@@ -151,17 +151,17 @@ pub fn link_binary(
151151                sess. dcx ( ) . emit_artifact_notification ( & out_filename,  "link" ) ; 
152152            } 
153153
154-             if  sess. prof . enabled ( )   { 
155-                 if  let  Some ( artifact_name)  = out_filename. file_name ( )   { 
156-                      // Record size for self-profiling 
157-                      let  file_size = std :: fs :: metadata ( & out_filename ) . map ( |m| m . len ( ) ) . unwrap_or ( 0 ) ; 
158- 
159-                     sess . prof . artifact_size ( 
160-                          "linked_artifact" , 
161-                         artifact_name . to_string_lossy ( ) , 
162-                         file_size , 
163-                     ) ; 
164-                 } 
154+             if  sess. prof . enabled ( ) 
155+                 &&  let  Some ( artifact_name)  = out_filename. file_name ( ) 
156+             { 
157+                 // Record size for self-profiling 
158+                  let  file_size = std :: fs :: metadata ( & out_filename ) . map ( |m| m . len ( ) ) . unwrap_or ( 0 ) ; 
159+ 
160+                 sess . prof . artifact_size ( 
161+                     "linked_artifact" , 
162+                     artifact_name . to_string_lossy ( ) , 
163+                     file_size , 
164+                 ) ; 
165165            } 
166166
167167            if  output. is_stdout ( )  { 
@@ -186,16 +186,12 @@ pub fn link_binary(
186186
187187        let  maybe_remove_temps_from_module =
188188            |preserve_objects :  bool ,  preserve_dwarf_objects :  bool ,  module :  & CompiledModule | { 
189-                 if  !preserve_objects { 
190-                     if  let  Some ( ref  obj)  = module. object  { 
191-                         ensure_removed ( sess. dcx ( ) ,  obj) ; 
192-                     } 
189+                 if  !preserve_objects && let  Some ( ref  obj)  = module. object  { 
190+                     ensure_removed ( sess. dcx ( ) ,  obj) ; 
193191                } 
194192
195-                 if  !preserve_dwarf_objects { 
196-                     if  let  Some ( ref  dwo_obj)  = module. dwarf_object  { 
197-                         ensure_removed ( sess. dcx ( ) ,  dwo_obj) ; 
198-                     } 
193+                 if  !preserve_dwarf_objects && let  Some ( ref  dwo_obj)  = module. dwarf_object  { 
194+                     ensure_removed ( sess. dcx ( ) ,  dwo_obj) ; 
199195                } 
200196            } ; 
201197
@@ -2116,11 +2112,11 @@ fn add_local_crate_metadata_objects(
21162112    // When linking a dynamic library, we put the metadata into a section of the 
21172113    // executable. This metadata is in a separate object file from the main 
21182114    // object file, so we link that in here. 
2119-     if  crate_type ==  CrateType :: Dylib  || crate_type ==  CrateType :: ProcMacro   { 
2120-         if  let  Some ( obj )  = codegen_results. metadata_module . as_ref ( ) . and_then ( |m| m . object . as_ref ( ) ) 
2121-         { 
2122-             cmd . add_object ( obj ) ; 
2123-         } 
2115+     if  matches ! ( crate_type,   CrateType :: Dylib  |  CrateType :: ProcMacro ) 
2116+         &&  let  Some ( m )  = & codegen_results. metadata_module 
2117+         &&  let   Some ( obj )  =  & m . object 
2118+     { 
2119+         cmd . add_object ( obj ) ; 
21242120    } 
21252121} 
21262122
@@ -2540,10 +2536,11 @@ fn add_order_independent_options(
25402536
25412537    cmd. output_filename ( out_filename) ; 
25422538
2543-     if  crate_type == CrateType :: Executable  && sess. target . is_like_windows  { 
2544-         if  let  Some ( ref  s)  = codegen_results. crate_info . windows_subsystem  { 
2545-             cmd. subsystem ( s) ; 
2546-         } 
2539+     if  crate_type == CrateType :: Executable 
2540+         && sess. target . is_like_windows 
2541+         && let  Some ( s)  = & codegen_results. crate_info . windows_subsystem 
2542+     { 
2543+         cmd. subsystem ( s) ; 
25472544    } 
25482545
25492546    // Try to strip as much out of the generated object by removing unused 
0 commit comments