@@ -45,9 +45,6 @@ and binary_part =
45
45
| Partial_signature_item of signature_item
46
46
| Partial_module_type of module_type
47
47
48
- type import_info =
49
- (Compilation_unit.Name .t * (Compilation_unit .t * Digest .t ) option )
50
-
51
48
type cmt_infos = {
52
49
cmt_modname : Compilation_unit .t ;
53
50
cmt_annots : binary_annots ;
@@ -60,7 +57,7 @@ type cmt_infos = {
60
57
cmt_loadpath : string list ;
61
58
cmt_source_digest : Digest .t option ;
62
59
cmt_initial_env : Env .t ;
63
- cmt_imports : import_info list ;
60
+ cmt_imports : Import_info .t array ;
64
61
cmt_interface_digest : Digest .t option ;
65
62
cmt_use_summaries : bool ;
66
63
cmt_uid_to_loc : Location .t Shape.Uid.Tbl .t ;
@@ -178,16 +175,16 @@ let save_cmt filename modname binary_annots sourcefile initial_env cmi shape =
178
175
| Some cmi -> Some (output_cmi temp_file_name oc cmi)
179
176
in
180
177
let source_digest = Option. map Digest. file sourcefile in
181
- let get_imports () =
182
- Env. imports ()
183
- |> List. map (fun import ->
184
- let name = Import_info. name import in
185
- let crc_with_unit = Import_info. crc_with_unit import in
186
- name, crc_with_unit)
187
- in
188
- let compare_imports (modname1 , _crc1 ) (modname2 , _crc2 ) =
178
+ let compare_imports import1 import2 =
179
+ let modname1 = Import_info. name import1 in
180
+ let modname2 = Import_info. name import2 in
189
181
Compilation_unit.Name. compare modname1 modname2
190
182
in
183
+ let get_imports () =
184
+ let imports = Array. of_list (Env. imports () ) in
185
+ Array. sort compare_imports imports;
186
+ imports
187
+ in
191
188
let cmt = {
192
189
cmt_modname = modname;
193
190
cmt_annots = clear_env binary_annots;
@@ -200,7 +197,7 @@ let save_cmt filename modname binary_annots sourcefile initial_env cmi shape =
200
197
cmt_source_digest = source_digest;
201
198
cmt_initial_env = if need_to_clear_env then
202
199
keep_only_summary initial_env else initial_env;
203
- cmt_imports = List. sort compare_imports ( get_imports () );
200
+ cmt_imports = get_imports () ;
204
201
cmt_interface_digest = this_crc;
205
202
cmt_use_summaries = need_to_clear_env;
206
203
cmt_uid_to_loc = Env. get_uid_to_loc_tbl () ;
0 commit comments