11open SharedTypes
22
3+ let fullForCmt ~moduleName ~package ~uri cmt =
4+ match Shared. tryReadCmt cmt with
5+ | None -> None
6+ | Some infos ->
7+ let file = ProcessCmt. fileForCmtInfos ~module Name ~uri infos in
8+ let extra = ProcessExtra. getExtra ~file ~infos in
9+ Some {file; extra; package}
10+
311let fullFromUri ~uri =
412 let path = Uri2. toPath uri in
513 match Packages. getPackage ~uri with
@@ -11,7 +19,7 @@ let fullFromUri ~uri =
1119 match Hashtbl. find_opt package.pathsForModule moduleName with
1220 | Some paths ->
1321 let cmt = getCmtPath ~uri paths in
14- ProcessCmt. fullForCmt ~module Name ~package ~uri cmt
22+ fullForCmt ~module Name ~package ~uri cmt
1523 | None ->
1624 prerr_endline (" can't find module " ^ moduleName);
1725 None )
@@ -26,69 +34,3 @@ let fullFromModule ~package ~moduleName =
2634let fullFromPath ~path =
2735 let uri = Uri2. fromPath path in
2836 fullFromUri ~uri
29-
30- let resolveModuleFromCompilerPath ~env ~package path =
31- match ProcessCmt. fromCompilerPath ~env path with
32- | `Global (moduleName , path ) -> (
33- match ProcessCmt. fileForModule ~package moduleName with
34- | None -> None
35- | Some file -> (
36- let env = QueryEnv. fromFile file in
37- match ProcessCmt. resolvePath ~env ~package ~path with
38- | None -> None
39- | Some (env , name ) -> (
40- match Exported. find env.exported Exported. Module name with
41- | None -> None
42- | Some stamp -> (
43- match Stamps. findModule env.file.stamps stamp with
44- | None -> None
45- | Some declared -> Some (env, Some declared)))))
46- | `Stamp stamp -> (
47- match Stamps. findModule env.file.stamps stamp with
48- | None -> None
49- | Some declared -> Some (env, Some declared))
50- | `GlobalMod moduleName -> (
51- match ProcessCmt. fileForModule ~package moduleName with
52- | None -> None
53- | Some file ->
54- let env = QueryEnv. fromFile file in
55- Some (env, None ))
56- | `Not_found -> None
57- | `Exported (env , name ) -> (
58- match Exported. find env.exported Exported. Module name with
59- | None -> None
60- | Some stamp -> (
61- match Stamps. findModule env.file.stamps stamp with
62- | None -> None
63- | Some declared -> Some (env, Some declared)))
64-
65- let resolveFromCompilerPath ~env ~package path =
66- match ProcessCmt. fromCompilerPath ~env path with
67- | `Global (moduleName , path ) -> (
68- let res =
69- match ProcessCmt. fileForModule ~package moduleName with
70- | None -> None
71- | Some file ->
72- let env = QueryEnv. fromFile file in
73- ProcessCmt. resolvePath ~env ~package ~path
74- in
75- match res with
76- | None -> `Not_found
77- | Some (env , name ) -> `Exported (env, name))
78- | `Stamp stamp -> `Stamp stamp
79- | `GlobalMod _ -> `Not_found
80- | `Not_found -> `Not_found
81- | `Exported (env , name ) -> `Exported (env, name)
82-
83- let rec getSourceUri ~(env : QueryEnv.t ) ~package path =
84- match path with
85- | File (uri , _moduleName ) -> uri
86- | NotVisible -> env.file.uri
87- | IncludedModule (path , inner ) -> (
88- Log. log " INCLUDED MODULE" ;
89- match resolveModuleFromCompilerPath ~env ~package path with
90- | None ->
91- Log. log " NOT FOUND" ;
92- getSourceUri ~env ~package inner
93- | Some (env , _declared ) -> env.file.uri)
94- | ExportedModule (_ , inner ) -> getSourceUri ~env ~package inner
0 commit comments