Skip to content
This repository was archived by the owner on Apr 24, 2021. It is now read-only.

Commit 6924ae7

Browse files
committed
Clean up query env creation.
1 parent de08edf commit 6924ae7

File tree

4 files changed

+12
-25
lines changed

4 files changed

+12
-25
lines changed

src/rescript-editor-support/Hover.re

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ let newHover = (~rootUri, ~file: SharedTypes.file, ~getModule, loc) => {
7878
showModule(~docstring, ~name, ~file, declared);
7979
| LModule(GlobalReference(moduleName, path, tip)) =>
8080
let%opt file = getModule(moduleName);
81-
let env = {Query.file, exported: file.contents.exported};
81+
let env = Query.fileEnv(file);
8282
let%opt (env, name) = Query.resolvePath(~env, ~path, ~getModule);
8383
let%opt stamp = Query.exportedForTip(~env, name, tip);
8484
let%opt md = Hashtbl.find_opt(file.stamps.modules, stamp);
@@ -116,7 +116,7 @@ let newHover = (~rootUri, ~file: SharedTypes.file, ~getModule, loc) => {
116116
let fromType = (~docstring, typ) => {
117117
let typeString = codeBlock(typ |> Shared.typeToString);
118118
let extraTypeInfo = {
119-
let env = {Query.file, exported: file.contents.exported};
119+
let env = Query.fileEnv(file);
120120
let%opt path = typ |> Shared.digConstructor;
121121
let%opt (_env, {docstring, name: {txt}, item: {decl}}) =
122122
digConstructor(~env, ~getModule, path);

src/rescript-editor-support/ProcessExtra.re

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,7 @@ module F =
123123
],
124124
);
125125
};
126-
let env = {
127-
Query.file: Collector.file,
128-
exported: Collector.file.contents.exported,
129-
};
126+
let env = Query.fileEnv(Collector.file);
130127

131128
let getTypeAtPath = getTypeAtPath(~env);
132129

src/rescript-editor-support/Query.re

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
open SharedTypes;
22

3-
/* TODO maybe keep track of the "current module path" */
4-
/* maybe add a "current module path" for debugging purposes */
53
type queryEnv = {
64
file,
75
exported,
@@ -111,11 +109,7 @@ let rec resolvePath = (~env, ~path, ~getModule) => {
111109
| `Local(env, name) => Some((env, name))
112110
| `Global(moduleName, fullPath) =>
113111
let%opt file = getModule(moduleName);
114-
resolvePath(
115-
~env={file, exported: file.contents.exported},
116-
~path=fullPath,
117-
~getModule,
118-
);
112+
resolvePath(~env=fileEnv(file), ~path=fullPath, ~getModule);
119113
};
120114
};
121115

@@ -131,11 +125,7 @@ let resolveFromStamps = (~env, ~path, ~getModule, ~pos) => {
131125
| `Local(env, name) => Some((env, name))
132126
| `Global(moduleName, fullPath) =>
133127
let%opt file = getModule(moduleName);
134-
resolvePath(
135-
~env={file, exported: file.contents.exported},
136-
~path=fullPath,
137-
~getModule,
138-
);
128+
resolvePath(~env=fileEnv(file), ~path=fullPath, ~getModule);
139129
};
140130
};
141131
};
@@ -192,7 +182,7 @@ let resolveFromCompilerPath = (~env, ~getModule, path) => {
192182
switch (getModule(moduleName)) {
193183
| None => None
194184
| Some(file) =>
195-
let env = {file, exported: file.contents.exported};
185+
let env = fileEnv(file);
196186
resolvePath(~env, ~getModule, ~path);
197187
};
198188
switch (res) {

src/rescript-editor-support/References.re

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ let definedForLoc = (~file, ~getModule, locKind) => {
115115
let%try file =
116116
getModule(moduleName)
117117
|> RResult.orError("Cannot get module " ++ moduleName);
118-
let env = {Query.file, exported: file.contents.exported};
118+
let env = Query.fileEnv(file);
119119
let%try (env, name) =
120120
Query.resolvePath(~env, ~path, ~getModule)
121121
|> RResult.orError("Cannot resolve path " ++ pathToString(path));
@@ -176,7 +176,7 @@ let resolveModuleReference =
176176
switch (declared.item) {
177177
| Structure(_) => Some((file, Some(declared)))
178178
| Ident(path) =>
179-
let env = {Query.file, exported: file.contents.exported};
179+
let env = Query.fileEnv(file);
180180
switch (Query.fromCompilerPath(~env, path)) {
181181
| `Not_found => None
182182
| `Exported(env, name) =>
@@ -186,7 +186,7 @@ let resolveModuleReference =
186186
/* Some((env.file.uri, validateLoc(md.name.loc, md.extentLoc))) */
187187
| `Global(moduleName, path) =>
188188
let%opt file = getModule(moduleName);
189-
let env = {file, Query.exported: file.contents.exported};
189+
let env = Query.fileEnv(file);
190190
let%opt (env, name) = Query.resolvePath(~env, ~getModule, ~path);
191191
let%opt stamp = Hashtbl.find_opt(env.exported.modules, name);
192192
let%opt md = Hashtbl.find_opt(env.file.stamps.modules, stamp);
@@ -217,7 +217,7 @@ let forLocalStamp =
217217
stamp,
218218
tip,
219219
) => {
220-
let env = {Query.file, exported: file.contents.exported};
220+
let env = Query.fileEnv(file);
221221
open Infix;
222222
let%opt localStamp =
223223
switch (tip) {
@@ -365,7 +365,7 @@ let allReferencesForLoc =
365365
let%try file =
366366
getModule(moduleName)
367367
|> RResult.orError("Cannot get module " ++ moduleName);
368-
let env = {Query.file, exported: file.contents.exported};
368+
let env = Query.fileEnv(file);
369369
let%try (env, name) =
370370
Query.resolvePath(~env, ~path, ~getModule)
371371
|> RResult.orError("Cannot resolve path " ++ pathToString(path));
@@ -512,7 +512,7 @@ let definitionForLoc = (~pathsForModule, ~file, ~getUri, ~getModule, loc) => {
512512
++ tipToString(tip),
513513
);
514514
let%opt file = getModule(moduleName);
515-
let env = {Query.file, exported: file.contents.exported};
515+
let env = Query.fileEnv(file);
516516
let%opt (env, name) = Query.resolvePath(~env, ~path, ~getModule);
517517
let%opt stamp = Query.exportedForTip(~env, name, tip);
518518
/** oooh wht do I do if the stamp is inside a pseudo-file? */

0 commit comments

Comments
 (0)