@@ -39,15 +39,17 @@ let global_symbol comp_unit =
39
39
40
40
let remembered = ref Ident. empty
41
41
42
- let rec remember phrase_name i = function
43
- | [] -> ()
44
- | Sig_value (id, _, _) :: rest
45
- | Sig_module (id, _, _, _, _) :: rest
46
- | Sig_typext (id, _, _, _) :: rest
47
- | Sig_class (id , _ , _ , _ ) :: rest ->
48
- remembered := Ident. add id (phrase_name, i) ! remembered;
49
- remember phrase_name (succ i) rest
50
- | _ :: rest -> remember phrase_name i rest
42
+ let remember phrase_name signature =
43
+ let exported = List. filter Includemod. is_runtime_component signature in
44
+ List. iteri (fun i sg ->
45
+ match sg with
46
+ | Sig_value (id, _, _)
47
+ | Sig_module (id, _, _, _, _)
48
+ | Sig_typext (id, _, _, _)
49
+ | Sig_class (id , _ , _ , _ ) ->
50
+ remembered := Ident. add id (phrase_name, i) ! remembered
51
+ | _ -> () )
52
+ exported
51
53
52
54
let toplevel_value id =
53
55
try Ident. find_same id ! remembered
@@ -210,7 +212,7 @@ let execute_phrase print_outcome ppf phr =
210
212
Translmod. transl_implementation phrase_comp_unit (str, Tcoerce_none )
211
213
~style: Plain_block
212
214
in
213
- remember compilation_unit 0 sg';
215
+ remember compilation_unit sg';
214
216
compilation_unit, close_phrase res, required_globals, size
215
217
else
216
218
let size, res = Translmod. transl_store_phrases phrase_comp_unit str in
0 commit comments