Skip to content

Commit 18bbe59

Browse files
committed
refactor
1 parent bd4cfc5 commit 18bbe59

File tree

4 files changed

+220
-220
lines changed

4 files changed

+220
-220
lines changed

analysis/src/Cmt.ml

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,69 @@ let fromModule ~package modname =
2626
let fromPath ~path =
2727
let uri = Uri2.fromPath path in
2828
fromUri ~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

analysis/src/Hover.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ let newHover ~full:{file; package} locItem =
6363
match ProcessCmt.resolvePath ~env ~path ~package with
6464
| None -> None
6565
| Some (env, name) -> (
66-
match ProcessCmt.exportedForTip ~env name tip with
66+
match References.exportedForTip ~env name tip with
6767
| None -> None
6868
| Some stamp -> (
6969
match Stamps.findModule file.stamps stamp with

0 commit comments

Comments
 (0)