@@ -68,37 +68,43 @@ pub fn encode_and_write_metadata(
6868 . unwrap_or_else ( |err| tcx. sess . fatal ( & format ! ( "couldn't create a temp dir: {}" , err) ) ) ;
6969 let metadata_tmpdir = MaybeTempDir :: new ( metadata_tmpdir, tcx. sess . opts . cg . save_temps ) ;
7070 let metadata_filename = metadata_tmpdir. as_ref ( ) . join ( METADATA_FILENAME ) ;
71- match metadata_kind {
71+ let metadata = match metadata_kind {
7272 MetadataKind :: None => {
73- let _ = emit_metadata ( tcx. sess , & [ ] , & metadata_tmpdir) ;
73+ if tcx. sess . opts . json_artifact_notifications {
74+ tcx. sess
75+ . parse_sess
76+ . span_diagnostic
77+ . emit_artifact_notification ( & out_filename, "metadata" ) ;
78+ }
79+ EncodedMetadata :: empty ( )
7480 }
7581 MetadataKind :: Uncompressed | MetadataKind :: Compressed => {
76- encode_metadata ( tcx, & metadata_filename)
82+ encode_metadata ( tcx, & metadata_filename) ;
83+
84+ let _prof_timer = tcx. sess . prof . generic_activity ( "write_crate_metadata" ) ;
85+
86+ let need_metadata_file = tcx. sess . opts . output_types . contains_key ( & OutputType :: Metadata ) ;
87+ let ( metadata_filename, metadata_tmpdir) = if need_metadata_file {
88+ if let Err ( e) = non_durable_rename ( & metadata_filename, & out_filename) {
89+ tcx. sess . fatal ( & format ! ( "failed to write {}: {}" , out_filename. display( ) , e) ) ;
90+ }
91+ if tcx. sess . opts . json_artifact_notifications {
92+ tcx. sess
93+ . parse_sess
94+ . span_diagnostic
95+ . emit_artifact_notification ( & out_filename, "metadata" ) ;
96+ }
97+ ( out_filename, None )
98+ } else {
99+ ( metadata_filename, Some ( metadata_tmpdir) )
100+ } ;
101+
102+ EncodedMetadata :: from_path ( metadata_filename, metadata_tmpdir) . unwrap_or_else ( |e| {
103+ tcx. sess . fatal ( & format ! ( "failed to create encoded metadata from file: {}" , e) )
104+ } )
77105 }
78106 } ;
79107
80- let _prof_timer = tcx. sess . prof . generic_activity ( "write_crate_metadata" ) ;
81-
82- let need_metadata_file = tcx. sess . opts . output_types . contains_key ( & OutputType :: Metadata ) ;
83- let ( metadata_filename, metadata_tmpdir) = if need_metadata_file {
84- if let Err ( e) = non_durable_rename ( & metadata_filename, & out_filename) {
85- tcx. sess . fatal ( & format ! ( "failed to write {}: {}" , out_filename. display( ) , e) ) ;
86- }
87- if tcx. sess . opts . json_artifact_notifications {
88- tcx. sess
89- . parse_sess
90- . span_diagnostic
91- . emit_artifact_notification ( & out_filename, "metadata" ) ;
92- }
93- ( out_filename, None )
94- } else {
95- ( metadata_filename, Some ( metadata_tmpdir) )
96- } ;
97- let metadata =
98- EncodedMetadata :: from_path ( metadata_filename, metadata_tmpdir) . unwrap_or_else ( |e| {
99- tcx. sess . fatal ( & format ! ( "failed to create encoded metadata from file: {}" , e) )
100- } ) ;
101-
102108 let need_metadata_module = metadata_kind == MetadataKind :: Compressed ;
103109
104110 ( metadata, need_metadata_module)
0 commit comments