@@ -268,8 +268,7 @@ parseProject rootPath cacheDir httpTransport verbosity configToParse = do
268
268
return result
269
269
270
270
data Dupes = Dupes
271
- { dupesUniqueImport :: FilePath
272
- , dupesNormLocPath :: ProjectConfigPath
271
+ { dupesImport :: ProjectImport
273
272
, dupesSeenImportsBy :: [ProjectImport ]
274
273
}
275
274
deriving (Eq )
@@ -280,10 +279,10 @@ instance Ord Dupes where
280
279
type DupesMap = Map FilePath [Dupes ]
281
280
282
281
dupesMsg :: (FilePath , [Dupes ]) -> Doc
283
- dupesMsg (duplicate, ds@ (take 1 . sortOn dupesNormLocPath -> dupes)) =
282
+ dupesMsg (duplicate, ds@ (take 1 . sortOn (importBy . dupesImport) -> dupes)) =
284
283
vcat $
285
284
((text " Warning:" <+> int (length ds) <+> text " imports of" <+> text duplicate) <> semi)
286
- : ((\ Dupes {.. } -> duplicateImportMsg Disp. empty dupesUniqueImport dupesNormLocPath dupesSeenImportsBy) <$> dupes)
285
+ : ((\ Dupes {.. } -> duplicateImportMsg Disp. empty dupesImport dupesSeenImportsBy) <$> dupes)
287
286
288
287
parseProjectSkeleton
289
288
:: FilePath
@@ -325,7 +324,7 @@ parseProjectSkeleton cacheDir httpTransport verbosity importsBy dupesMap project
325
324
(noticeDoc verbosity $ untrimmedUriImportMsg (text " Warning:" ) importLocPath)
326
325
let fs = (\ z -> CondNode z [normLocPath] mempty ) <$> fieldsToConfig normSource (reverse acc)
327
326
let uniqueFields = if uniqueImport `elem` seenImports then [] else xs
328
- atomicModifyIORef' dupesMap $ \ dm -> (Map. insertWith (++) uniqueImport [Dupes uniqueImport normLocPath seenImportsBy] dm, () )
327
+ atomicModifyIORef' dupesMap $ \ dm -> (Map. insertWith (++) uniqueImport [Dupes ( ProjectImport uniqueImport normLocPath) seenImportsBy] dm, () )
329
328
res <- parseProjectSkeleton cacheDir httpTransport verbosity importsBy dupesMap projectDir importLocPath . ProjectConfigToParse =<< fetchImportConfig normLocPath
330
329
rest <- go [] uniqueFields
331
330
pure . fmap mconcat . sequence $ [projectParse Nothing normSource fs, res, rest]
0 commit comments