Skip to content

Commit 8d518b6

Browse files
panglesdjonludlam
authored andcommitted
Revert "Ident_env: Turn all maps into hashtbl"
This reverts commit 7e4e716.
1 parent 57e158e commit 8d518b6

File tree

6 files changed

+134
-145
lines changed

6 files changed

+134
-145
lines changed

src/loader/cmi.ml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -924,18 +924,17 @@ let rec read_module_type env parent (mty : Odoc_model.Compat.module_type) =
924924
| Mty_ident p -> Path {p_path = Env.Path.read_module_type env p; p_expansion=None }
925925
| Mty_signature sg -> Signature (read_signature env parent sg)
926926
| Mty_functor(parameter, res) ->
927-
let f_parameter =
927+
let f_parameter, env =
928928
match parameter with
929-
| Unit -> Odoc_model.Lang.FunctorParameter.Unit
929+
| Unit -> Odoc_model.Lang.FunctorParameter.Unit, env
930930
| Named (id_opt, arg) ->
931-
let id = match id_opt with
932-
| None -> Identifier.Mk.parameter(parent, Odoc_model.Names.ModuleName.make_std "_")
933-
| Some id ->
934-
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
935-
Ident_env.find_parameter_identifier env id
931+
let id, env = match id_opt with
932+
| None -> Identifier.Mk.parameter(parent, Odoc_model.Names.ModuleName.make_std "_"), env
933+
| Some id -> let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
934+
Ident_env.find_parameter_identifier env id, env
936935
in
937936
let arg = read_module_type env (id :> Identifier.Signature.t) arg in
938-
Odoc_model.Lang.FunctorParameter.Named ({ FunctorParameter. id; expr = arg })
937+
Odoc_model.Lang.FunctorParameter.Named ({ FunctorParameter. id; expr = arg }), env
939938
in
940939
let res = read_module_type env (Identifier.Mk.result parent) res in
941940
Functor( f_parameter, res)
@@ -1083,7 +1082,7 @@ and read_signature_noenv env parent (items : Odoc_model.Compat.signature) =
10831082
loop ([],{s_modules=[]; s_module_types=[]; s_values=[];s_types=[]; s_classes=[]; s_class_types=[]}) items
10841083

10851084
and read_signature env parent (items : Odoc_model.Compat.signature) =
1086-
let () = Env.handle_signature_type_items parent items env in
1085+
let env = Env.handle_signature_type_items parent items env in
10871086
fst @@ read_signature_noenv env parent items
10881087

10891088

src/loader/cmt.ml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -363,35 +363,34 @@ let rec read_module_expr env parent label_parent mexpr =
363363
Signature sg
364364
#if OCAML_VERSION >= (4,10,0)
365365
| Tmod_functor(parameter, res) ->
366-
let f_parameter =
366+
let f_parameter, env =
367367
match parameter with
368-
| Unit -> FunctorParameter.Unit
368+
| Unit -> FunctorParameter.Unit, env
369369
| Named (id_opt, _, arg) ->
370-
let id =
370+
let id, env =
371371
match id_opt with
372-
| None -> Identifier.Mk.parameter (parent, Odoc_model.Names.ModuleName.make_std "_")
373-
| Some id ->
374-
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
375-
Env.find_parameter_identifier env id
372+
| None -> Identifier.Mk.parameter (parent, Odoc_model.Names.ModuleName.make_std "_"), env
373+
| Some id -> let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
374+
Env.find_parameter_identifier env id, env
376375
in
377376
let arg = Cmti.read_module_type env (id :> Identifier.Signature.t) label_parent arg in
378377

379-
Named { id; expr=arg }
378+
Named { id; expr=arg }, env
380379
in
381380
let res = read_module_expr env (Identifier.Mk.result parent) label_parent res in
382381
Functor (f_parameter, res)
383382
#else
384383
| Tmod_functor(id, _, arg, res) ->
385-
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
384+
let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env in
386385
let f_parameter =
387386
match arg with
388387
| None -> FunctorParameter.Unit
389388
| Some arg ->
390-
let id = Env.find_parameter_identifier env id in
389+
let id = Env.find_parameter_identifier new_env id in
391390
let arg = Cmti.read_module_type env (id :> Identifier.Signature.t) label_parent arg in
392391
Named { FunctorParameter. id; expr = arg; }
393392
in
394-
let res = read_module_expr env (Identifier.Mk.result parent) label_parent res in
393+
let res = read_module_expr new_env (Identifier.Mk.result parent) label_parent res in
395394
Functor(f_parameter, res)
396395
#endif
397396
| Tmod_apply _ ->
@@ -577,7 +576,7 @@ and read_structure :
577576
'tags. 'tags Odoc_model.Semantics.handle_internal_tags -> _ -> _ -> _ ->
578577
_ * 'tags =
579578
fun internal_tags env parent str ->
580-
let () = Env.add_structure_tree_items parent str env in
579+
let env = Env.add_structure_tree_items parent str env in
581580
let items, (doc, doc_post), tags =
582581
let classify item =
583582
match item.str_desc with

src/loader/cmti.ml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -517,12 +517,12 @@ and read_module_type env parent label_parent mty =
517517
match parameter with
518518
| Unit -> FunctorParameter.Unit, env
519519
| Named (id_opt, _, arg) ->
520-
let id =
520+
let id, env =
521521
match id_opt with
522-
| None -> Identifier.Mk.parameter (parent, ModuleName.make_std "_")
522+
| None -> Identifier.Mk.parameter (parent, ModuleName.make_std "_"), env
523523
| Some id ->
524-
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
525-
Env.find_parameter_identifier env id
524+
let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
525+
Env.find_parameter_identifier env id, env
526526
in
527527
let arg = read_module_type env (id :> Identifier.Signature.t) label_parent arg in
528528
Named { id; expr = arg; }, env
@@ -531,16 +531,16 @@ and read_module_type env parent label_parent mty =
531531
Functor (f_parameter, res)
532532
#else
533533
| Tmty_functor(id, _, arg, res) ->
534-
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
534+
let new_env = Env.add_parameter parent id (ModuleName.of_ident id) env in
535535
let f_parameter =
536536
match arg with
537537
| None -> Odoc_model.Lang.FunctorParameter.Unit
538538
| Some arg ->
539-
let id = Ident_env.find_parameter_identifier env id in
539+
let id = Ident_env.find_parameter_identifier new_env id in
540540
let arg = read_module_type env (id :> Identifier.Signature.t) label_parent arg in
541541
Named { FunctorParameter. id; expr = arg }
542542
in
543-
let res = read_module_type () (Identifier.Mk.result parent) label_parent res in
543+
let res = read_module_type new_env (Identifier.Mk.result parent) label_parent res in
544544
Functor( f_parameter, res)
545545
#endif
546546
| Tmty_with(body, subs) -> (
@@ -772,7 +772,7 @@ and read_signature :
772772
'tags. 'tags Odoc_model.Semantics.handle_internal_tags -> _ -> _ -> _ ->
773773
_ * 'tags =
774774
fun internal_tags env parent sg ->
775-
let () = Env.add_signature_tree_items parent sg env in
775+
let env = Env.add_signature_tree_items parent sg env in
776776
let items, (doc, doc_post), tags =
777777
let classify item =
778778
match item.sig_desc with

0 commit comments

Comments
 (0)