Skip to content

Commit

Permalink
Revert "Ident_env: Turn all maps into hashtbl"
Browse files Browse the repository at this point in the history
This reverts commit 7e4e716.
  • Loading branch information
panglesd committed Dec 13, 2023
1 parent c7b684a commit 764d073
Show file tree
Hide file tree
Showing 6 changed files with 128 additions and 139 deletions.
17 changes: 8 additions & 9 deletions src/loader/cmi.ml
Original file line number Diff line number Diff line change
Expand Up @@ -924,18 +924,17 @@ let rec read_module_type env parent (mty : Odoc_model.Compat.module_type) =
| Mty_ident p -> Path {p_path = Env.Path.read_module_type env p; p_expansion=None }
| Mty_signature sg -> Signature (read_signature env parent sg)
| Mty_functor(parameter, res) ->
let f_parameter =
let f_parameter, env =
match parameter with
| Unit -> Odoc_model.Lang.FunctorParameter.Unit
| Unit -> Odoc_model.Lang.FunctorParameter.Unit, env
| Named (id_opt, arg) ->
let id = match id_opt with
| None -> Identifier.Mk.parameter(parent, Odoc_model.Names.ModuleName.make_std "_")
| Some id ->
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
Ident_env.find_parameter_identifier env id
let id, env = match id_opt with
| None -> Identifier.Mk.parameter(parent, Odoc_model.Names.ModuleName.make_std "_"), env
| Some id -> let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
Ident_env.find_parameter_identifier env id, env
in
let arg = read_module_type env (id :> Identifier.Signature.t) arg in
Odoc_model.Lang.FunctorParameter.Named ({ FunctorParameter. id; expr = arg })
Odoc_model.Lang.FunctorParameter.Named ({ FunctorParameter. id; expr = arg }), env
in
let res = read_module_type env (Identifier.Mk.result parent) res in
Functor( f_parameter, res)
Expand Down Expand Up @@ -1083,7 +1082,7 @@ and read_signature_noenv env parent (items : Odoc_model.Compat.signature) =
loop ([],{s_modules=[]; s_module_types=[]; s_values=[];s_types=[]; s_classes=[]; s_class_types=[]}) items

and read_signature env parent (items : Odoc_model.Compat.signature) =
let () = Env.handle_signature_type_items parent items env in
let env = Env.handle_signature_type_items parent items env in
fst @@ read_signature_noenv env parent items


Expand Down
17 changes: 8 additions & 9 deletions src/loader/cmt.ml
Original file line number Diff line number Diff line change
Expand Up @@ -363,20 +363,19 @@ let rec read_module_expr env parent label_parent mexpr =
Signature sg
#if OCAML_VERSION >= (4,10,0)
| Tmod_functor(parameter, res) ->
let f_parameter =
let f_parameter, env =
match parameter with
| Unit -> FunctorParameter.Unit
| Unit -> FunctorParameter.Unit, env
| Named (id_opt, _, arg) ->
let id =
let id, env =
match id_opt with
| None -> Identifier.Mk.parameter (parent, Odoc_model.Names.ModuleName.make_std "_")
| Some id ->
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
Env.find_parameter_identifier env id
| None -> Identifier.Mk.parameter (parent, Odoc_model.Names.ModuleName.make_std "_"), env
| Some id -> let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
Env.find_parameter_identifier env id, env
in
let arg = Cmti.read_module_type env (id :> Identifier.Signature.t) label_parent arg in

Named { id; expr=arg }
Named { id; expr=arg }, env
in
let res = read_module_expr env (Identifier.Mk.result parent) label_parent res in
Functor (f_parameter, res)
Expand Down Expand Up @@ -577,7 +576,7 @@ and read_structure :
'tags. 'tags Odoc_model.Semantics.handle_internal_tags -> _ -> _ -> _ ->
_ * 'tags =
fun internal_tags env parent str ->
let () = Env.add_structure_tree_items parent str env in
let env = Env.add_structure_tree_items parent str env in
let items, (doc, doc_post), tags =
let classify item =
match item.str_desc with
Expand Down
10 changes: 5 additions & 5 deletions src/loader/cmti.ml
Original file line number Diff line number Diff line change
Expand Up @@ -517,12 +517,12 @@ and read_module_type env parent label_parent mty =
match parameter with
| Unit -> FunctorParameter.Unit, env
| Named (id_opt, _, arg) ->
let id =
let id, env =
match id_opt with
| None -> Identifier.Mk.parameter (parent, ModuleName.make_std "_")
| None -> Identifier.Mk.parameter (parent, ModuleName.make_std "_"), env
| Some id ->
let () = Env.add_parameter parent id (ModuleName.of_ident id) env in
Env.find_parameter_identifier env id
let env = Env.add_parameter parent id (ModuleName.of_ident id) env in
Env.find_parameter_identifier env id, env
in
let arg = read_module_type env (id :> Identifier.Signature.t) label_parent arg in
Named { id; expr = arg; }, env
Expand Down Expand Up @@ -772,7 +772,7 @@ and read_signature :
'tags. 'tags Odoc_model.Semantics.handle_internal_tags -> _ -> _ -> _ ->
_ * 'tags =
fun internal_tags env parent sg ->
let () = Env.add_signature_tree_items parent sg env in
let env = Env.add_signature_tree_items parent sg env in
let items, (doc, doc_post), tags =
let classify item =
match item.sig_desc with
Expand Down
Loading

0 comments on commit 764d073

Please sign in to comment.