@@ -68,37 +68,43 @@ pub fn encode_and_write_metadata(
68
68
. unwrap_or_else ( |err| tcx. sess . fatal ( & format ! ( "couldn't create a temp dir: {}" , err) ) ) ;
69
69
let metadata_tmpdir = MaybeTempDir :: new ( metadata_tmpdir, tcx. sess . opts . cg . save_temps ) ;
70
70
let metadata_filename = metadata_tmpdir. as_ref ( ) . join ( METADATA_FILENAME ) ;
71
- match metadata_kind {
71
+ let metadata = match metadata_kind {
72
72
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 ( )
74
80
}
75
81
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
+ } )
77
105
}
78
106
} ;
79
107
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
-
102
108
let need_metadata_module = metadata_kind == MetadataKind :: Compressed ;
103
109
104
110
( metadata, need_metadata_module)
0 commit comments