Skip to content

Commit 14079bc

Browse files
committed
Dedupe more asListOf's
1 parent 7314f4a commit 14079bc

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

src/Share/Backend.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import Share.Postgres qualified as PG
4444
import Share.Postgres.Causal.Conversions (namespaceStatsPgToV2)
4545
import Share.Postgres.Causal.Queries qualified as CausalQ
4646
import Share.Prelude
47+
import Share.Utils.Lens (asListOfDeduped)
4748
import U.Codebase.Branch qualified as V2Branch
4849
import U.Codebase.Causal qualified as Causal
4950
import U.Codebase.Causal qualified as V2Causal
@@ -220,7 +221,7 @@ getTypeTag r = do
220221
displayTermsOf :: (QueryM m) => Codebase.CodebaseEnv -> Traversal s t Reference (DisplayObject (Type Symbol Ann) (V1.Term Symbol Ann)) -> s -> m t
221222
displayTermsOf codebase trav s =
222223
s
223-
& asListOf trav %%~ \refs -> do
224+
& asListOfDeduped trav %%~ \refs -> do
224225
let partitionedRefs =
225226
refs <&> \case
226227
ref@(Reference.Builtin _) -> do

src/Share/Codebase.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ import Share.Prelude
8888
import Share.Project (Project (..))
8989
import Share.Utils.Caching (Cached)
9090
import Share.Utils.Caching qualified as Caching
91+
import Share.Utils.Lens (asListOfDeduped)
9192
import Share.Utils.Logging
9293
import Share.Utils.Logging qualified as Logging
9394
import Share.Web.App
@@ -240,7 +241,7 @@ convertTerms2to1Of trav s = do
240241

241242
expectTermsByRefIdsOf :: (QueryM m) => CodebaseEnv -> Traversal s t TermReferenceId (V1.Term Symbol Ann, V1.Type Symbol Ann) -> s -> m t
242243
expectTermsByRefIdsOf codebase trav s = do
243-
s & asListOf trav \refIds -> do
244+
s & asListOfDeduped trav \refIds -> do
244245
termsAndTypes <- loadTermAndTypeByRefIdsOf codebase traversed refIds
245246
for (zip refIds termsAndTypes) \case
246247
(refId, Nothing) -> unrecoverableError (MissingTerm refId)

src/Share/NamespaceDiffs.hs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ import Share.Postgres.NameLookups.Types qualified as NL
5151
import Share.Postgres.NamesPerspective.Ops qualified as NPOps
5252
import Share.Postgres.NamesPerspective.Types (NamesPerspective)
5353
import Share.Prelude
54+
import Share.Utils.Lens (asListOfDeduped)
5455
import Unison.Codebase.Path (Path)
5556
import Unison.Codebase.Path qualified as Path
5657
import Unison.Codebase.SqliteCodebase.Conversions qualified as Cv
@@ -268,7 +269,7 @@ computeThreeWayNamespaceDiff codebaseEnvs2 branchHashIds3 nameLookupReceipts3 =
268269
PG.Transaction e t
269270
hydrateTermsOf codebase trav s = PG.transactionSpan "hydrateTerms" mempty do
270271
s
271-
& asListOf trav %%~ \refs -> do
272+
& asListOfDeduped trav %%~ \refs -> do
272273
v2Terms <- DefnsQ.expectTermsByRefIdsOf codebase traversed refs
273274
let v2TermsWithRef = zip refs v2Terms
274275
let refHashes = v2TermsWithRef <&> \(refId, (term, typ)) -> (refId, ((Reference.idToHash refId), term, typ))

src/Share/Postgres/Definitions/Queries.hs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import Share.Postgres.Definitions.Types qualified as DefnTypes
5757
import Share.Postgres.Hashes.Queries qualified as HashQ
5858
import Share.Postgres.IDs
5959
import Share.Prelude
60+
import Share.Utils.Lens (asListOfDeduped)
6061
import Share.Utils.Logging qualified as Logging
6162
import Share.Utils.Postgres (OrdBy, RawBytes (..), ordered)
6263
import Share.Web.Errors (ErrorID (..), InternalServerError (InternalServerError), ToServerError (..))
@@ -162,7 +163,7 @@ expectTermIdsByRefIdsOf trav s =
162163

163164
expectTermsByRefIdsOf :: (HasCallStack, QueryM m) => CodebaseEnv -> Traversal s t TermReferenceId (V2.Term Symbol, V2.Type Symbol) -> s -> m t
164165
expectTermsByRefIdsOf codebase trav s = do
165-
s & asListOf trav \termRefs -> do
166+
s & asListOfDeduped trav \termRefs -> do
166167
termIds <- expectTermIdsByRefIdsOf traversed termRefs
167168
expectTermsByIdsOf codebase traversed termIds
168169

@@ -243,7 +244,7 @@ loadTermsByIdsOf ::
243244
s ->
244245
m t
245246
loadTermsByIdsOf codebase trav s = do
246-
s & asListOf trav \termIds -> do
247+
s & asListOfDeduped trav \termIds -> do
247248
zipWith combine
248249
<$> (loadTermComponentElementByTermIdsOf codebase traversed termIds)
249250
<*> (termLocalReferencesOf traversed termIds)
@@ -267,7 +268,7 @@ loadTermsByRefIdsOf ::
267268
s ->
268269
m t
269270
loadTermsByRefIdsOf codebase trav s = do
270-
s & asListOf trav \termRefs -> do
271+
s & asListOfDeduped trav \termRefs -> do
271272
termIds <- loadTermIdsByRefIdsOf traversed termRefs
272273
terms <- loadTermsByIdsOf codebase (traversed . _Just) termIds
273274
-- Flatten the nested maybes.
@@ -480,7 +481,7 @@ loadTypeComponentElementsAndTypeIdsOf (CodebaseEnv codebaseUser) trav s = do
480481
expectTypeComponentElementsAndTypeIdsOf :: (QueryA m) => CodebaseEnv -> Traversal s t TypeReferenceId (TypeComponentElement, TypeId) -> s -> m t
481482
expectTypeComponentElementsAndTypeIdsOf codebase trav s =
482483
s
483-
& asListOf trav %%~ \refs -> do
484+
& asListOfDeduped trav %%~ \refs -> do
484485
unrecoverableEitherMap
485486
( \elems -> for (zip refs elems) \case
486487
(refId, Nothing) -> Left (expectedTypeError $ Right refId)

0 commit comments

Comments
 (0)