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