@@ -174,7 +174,10 @@ let getMtyFunctorModuleType (moduleType: Types.module_type) = match moduleType
174174 | _ -> None
175175
176176let getTexpMatch desc = match desc with
177- #if OCAML_VERSION > = (4 , 08 , 0 )
177+ #if OCAML_VERSION > = (5 , 3 , 0 )
178+ | Typedtree. Texp_match (e , cases , _values , partial ) ->
179+ (e, cases, partial)
180+ #elif OCAML_VERSION > = (4 , 08 , 0 )
178181 | Typedtree. Texp_match (e , cases , partial ) ->
179182 (e, cases, partial)
180183#else
@@ -183,8 +186,26 @@ let getTexpMatch desc = match desc with
183186#endif
184187 | _ -> assert false
185188
189+ let getTexpTry desc = match desc with
190+ #if OCAML_VERSION > = (5 , 3 , 0 )
191+ | Typedtree. Texp_try (e , cases , _values ) ->
192+ (e, cases)
193+ #else
194+ | Typedtree. Texp_try (e , cases ) ->
195+ (e, cases)
196+ #endif
197+ | _ -> assert false
198+
186199let texpMatchGetExceptions desc = match desc with
187- #if OCAML_VERSION > = (4 , 08 , 0 )
200+ #if OCAML_VERSION > = (5 , 3 , 0 )
201+ | Typedtree. Texp_match (_ , cases , _ , _ ) ->
202+ cases
203+ |> List. filter_map(fun ({Typedtree. c_lhs = pat } ) ->
204+ match pat.pat_desc with
205+ | Tpat_exception ({pat_desc} ) -> Some (pat_desc)
206+ | _ -> None
207+ )
208+ #elif OCAML_VERSION > = (4 , 08 , 0 )
188209 | Typedtree. Texp_match (_ , cases , _ ) ->
189210 cases
190211 |> List. filter_map(fun ({Typedtree. c_lhs = pat } ) ->
@@ -241,3 +262,29 @@ let get_desc = Types.get_desc
241262#else
242263let get_desc x = x.Types. desc
243264#endif
265+
266+ let constant_desc d =
267+ #if OCAML_VERSION > = (5 , 3 , 0 )
268+ d.Parsetree. pconst_desc
269+ #else
270+ d
271+ #endif
272+
273+ let extractValueDependencies (cmt_infos : CL.Cmt_format.cmt_infos ) =
274+ #if OCAML_VERSION > = (5 , 3 , 0 )
275+ let deps = ref [] in
276+ let process_dependency (_ , uid1 , uid2 ) =
277+ match
278+ ( Types.Uid.Tbl. find_opt cmt_infos.cmt_uid_to_decl uid1,
279+ Types.Uid.Tbl. find_opt cmt_infos.cmt_uid_to_decl uid2 )
280+ with
281+ | Some (Value v1 ), Some (Value v2 ) ->
282+ deps := (v1.val_val, v2.val_val) :: ! deps
283+ | _ -> ()
284+ in
285+ let items = cmt_infos.cmt_declaration_dependencies in
286+ List. iter process_dependency items;
287+ List. rev ! deps
288+ #else
289+ cmt_infos.cmt_value_dependencies
290+ #endif
0 commit comments