Skip to content

Commit 8784035

Browse files
committed
Batchify looking up terms by name
1 parent 808dc3e commit 8784035

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

src/Unison/Server/Share/Definitions.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,7 @@ termDisplayObjectsByNameOf ::
218218
termDisplayObjectsByNameOf codebase namesPerspective trav s = do
219219
s
220220
& asListOfDeduped trav %%~ \names -> do
221-
-- TODO: batchify this:
222-
allRefs <- traverse (PGNameSearch.termRefsByHQName namesPerspective) (HQ'.NameOnly <$> names)
221+
allRefs <- PGNameSearch.termRefsByHQNamesOf namesPerspective traversed (HQ'.NameOnly <$> names)
223222
let partitionedRefs =
224223
allRefs <&> \refs ->
225224
do
@@ -274,7 +273,8 @@ termDisplayObjectLabeledDependencies termRef displayObject = do
274273

275274
typeDisplayObjectByName :: (QueryM m) => Codebase.CodebaseEnv -> NamesPerspective m -> Name -> m (Maybe (TypeReference, DisplayObject () (DD.Decl Symbol Ann)))
276275
typeDisplayObjectByName codebase namesPerspective name = runMaybeT do
277-
refs <- lift $ PGNameSearch.typeRefsByHQName namesPerspective (HQ'.NameOnly name)
276+
-- TODO: batchify this properly
277+
refs <- lift $ PGNameSearch.typeRefsByHQNamesOf namesPerspective id (HQ'.NameOnly name)
278278
ref <- fmap NESet.findMin . hoistMaybe $ NESet.nonEmptySet refs
279279
fmap (ref,) . lift $ Backend.displayType codebase ref
280280

src/Unison/Server/Share/Docs.hs

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,15 @@ docsForDefinitionNamesOf ::
3939
Traversal s t Name [TermReference] ->
4040
s ->
4141
m t
42-
docsForDefinitionNamesOf codebase namesPerpsective trav s = do
42+
docsForDefinitionNamesOf codebase namesPerspective trav s = do
4343
s
4444
& asListOf trav %%~ \names -> do
45-
let potentialDocNames = names <&> \name -> [name, name Cons.:> NameSegment "doc"]
46-
-- TODO: Batchify this
47-
refs <-
48-
for
49-
potentialDocNames
50-
( foldMapM \name ->
51-
NS.termRefsByHQName namesPerpsective (HQ'.NameOnly name)
52-
)
53-
filterForDocs (Set.toList <$> refs)
45+
let potentialDocNames =
46+
names <&> \name ->
47+
[name, name Cons.:> NameSegment "doc"]
48+
<&> HQ'.NameOnly
49+
refs <- NS.termRefsByHQNamesOf namesPerspective (traversed . traversed) potentialDocNames
50+
filterForDocs (Set.toList <$> (fold <$> refs))
5451
where
5552
filterForDocs :: [[V1Referent.Referent]] -> m [[TermReference]]
5653
filterForDocs refs = do

0 commit comments

Comments
 (0)