Skip to content

Commit 1d1b3e7

Browse files
committed
Use NubList
1 parent fa8f6c9 commit 1d1b3e7

File tree

1 file changed

+6
-6
lines changed
  • cabal-install/src/Distribution/Client/ProjectConfig

1 file changed

+6
-6
lines changed

cabal-install/src/Distribution/Client/ProjectConfig/Legacy.hs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ import Distribution.Simple.Setup
127127
import Distribution.Simple.Utils
128128
( debug
129129
, lowercase
130-
, ordNub
131130
)
132131
import Distribution.Types.CondTree
133132
( CondBranch (..)
@@ -139,7 +138,8 @@ import Distribution.Types.CondTree
139138
)
140139
import Distribution.Types.SourceRepo (RepoType)
141140
import Distribution.Utils.NubList
142-
( fromNubList
141+
( NubList
142+
, fromNubList
143143
, overNubList
144144
, toNubList
145145
)
@@ -249,14 +249,14 @@ parseProject rootPath cacheDir httpTransport verbosity configToParse = do
249249
let (dir, projectFileName) = splitFileName rootPath
250250
projectDir <- makeAbsolute dir
251251
projectPath@(ProjectConfigPath (canonicalRoot :| _)) <- canonicalizeConfigPath projectDir (ProjectConfigPath $ projectFileName :| [])
252-
importsBy <- newIORef [(canonicalRoot, projectPath)]
252+
importsBy <- newIORef $ toNubList [(canonicalRoot, projectPath)]
253253
parseProjectSkeleton cacheDir httpTransport verbosity importsBy projectDir projectPath configToParse
254254

255255
parseProjectSkeleton
256256
:: FilePath
257257
-> HttpTransport
258258
-> Verbosity
259-
-> IORef [(FilePath, ProjectConfigPath)]
259+
-> IORef (NubList (FilePath, ProjectConfigPath))
260260
-- ^ The imports seen so far, used to report on cycles and duplicates and to detect duplicates that are not cycles
261261
-> FilePath
262262
-- ^ The directory of the project configuration, typically the directory of cabal.project
@@ -275,11 +275,11 @@ parseProjectSkeleton cacheDir httpTransport verbosity importsBy projectDir sourc
275275

276276
-- Once we canonicalize the import path, we can check for cyclical and duplicate imports
277277
normLocPath@(ProjectConfigPath (uniqueImport :| _)) <- canonicalizeConfigPath projectDir importLocPath
278-
seenImportsBy@(fmap fst -> seenImports) <- atomicModifyIORef' importsBy (\ibs -> (ordNub $ (uniqueImport, normLocPath) : ibs, ibs))
278+
seenImportsBy@(fmap fst -> seenImports) <- fromNubList <$> atomicModifyIORef' importsBy (\ibs -> (toNubList [(uniqueImport, normLocPath)] <> ibs, ibs))
279279

280280
debug verbosity $ "\nimport path, normalized\n=======================\n" ++ render (docProjectConfigPath normLocPath)
281281
debug verbosity "\nseen unique paths\n================="
282-
mapM_ (debug verbosity . fst) seenImportsBy
282+
mapM_ (debug verbosity) seenImports
283283
debug verbosity "\n"
284284

285285
if

0 commit comments

Comments
 (0)