@@ -18,7 +18,6 @@ module Development.IDE.Import.DependencyInformation
18 , pathToId
18 , pathToId
19 , idToPath
19 , idToPath
20 , reachableModules
20 , reachableModules
21− , modLocationToNormalizedFilePath
22 , processDependencyInformation
21 , processDependencyInformation
23 , transitiveDeps
22 , transitiveDeps
@@ -76,19 +75,12 @@ data PathIdMap = PathIdMap
77instance NFData PathIdMap
76instance NFData PathIdMap
79−modLocationToNormalizedFilePath :: ArtifactsLocation -> NormalizedFilePath
80−modLocationToNormalizedFilePath (ArtifactsLocation loc) =
81− case ml_hs_file loc of
82− Just filePath -> toNormalizedFilePath filePath
83− -- Since we craete all 'ModLocation' values via 'mkHomeModLocation'
84− Nothing -> error "Has something changed in mkHomeModLocation?"
86emptyPathIdMap :: PathIdMap
78emptyPathIdMap :: PathIdMap
87emptyPathIdMap = PathIdMap IntMap.empty HMS.empty
79emptyPathIdMap = PathIdMap IntMap.empty HMS.empty
89getPathId :: ArtifactsLocation -> PathIdMap -> (FilePathId, PathIdMap)
81getPathId :: ArtifactsLocation -> PathIdMap -> (FilePathId, PathIdMap)
90getPathId path m@PathIdMap{..} =
82getPathId path m@PathIdMap{..} =
91− case HMS.lookup (modLocationToNormalizedFilePath path) pathToIdMap of
83+ case HMS.lookup (artifactFilePath path) pathToIdMap of
92 Nothing ->
84 Nothing ->
93 let !newId = FilePathId $ HMS.size pathToIdMap
85 let !newId = FilePathId $ HMS.size pathToIdMap
94 in (newId, insertPathId path newId m)
86 in (newId, insertPathId path newId m)
@@ -96,7 +88,7 @@ getPathId path m@PathIdMap{..} =
97insertPathId :: ArtifactsLocation -> FilePathId -> PathIdMap -> PathIdMap
89insertPathId :: ArtifactsLocation -> FilePathId -> PathIdMap -> PathIdMap
98insertPathId path id PathIdMap{..} =
90insertPathId path id PathIdMap{..} =
99− PathIdMap (IntMap.insert (getFilePathId id) path idToPathMap) (HMS.insert (modLocationToNormalizedFilePath path) id pathToIdMap)
91+ PathIdMap (IntMap.insert (getFilePathId id) path idToPathMap) (HMS.insert (artifactFilePath path) id pathToIdMap)
101insertImport :: FilePathId -> Either ModuleParseError ModuleImports -> RawDependencyInformation -> RawDependencyInformation
93insertImport :: FilePathId -> Either ModuleParseError ModuleImports -> RawDependencyInformation -> RawDependencyInformation
102insertImport (FilePathId k) v rawDepInfo = rawDepInfo { rawImports = IntMap.insert k v (rawImports rawDepInfo) }
94insertImport (FilePathId k) v rawDepInfo = rawDepInfo { rawImports = IntMap.insert k v (rawImports rawDepInfo) }
@@ -105,7 +97,7 @@ pathToId :: PathIdMap -> NormalizedFilePath -> FilePathId
105pathToId PathIdMap{pathToIdMap} path = pathToIdMap HMS.! path
97pathToId PathIdMap{pathToIdMap} path = pathToIdMap HMS.! path
107idToPath :: PathIdMap -> FilePathId -> NormalizedFilePath
99idToPath :: PathIdMap -> FilePathId -> NormalizedFilePath
108−idToPath pathIdMap filePathId = modLocationToNormalizedFilePath $ idToModLocation pathIdMap filePathId
100+idToPath pathIdMap filePathId = artifactFilePath $ idToModLocation pathIdMap filePathId
110idToModLocation :: PathIdMap -> FilePathId -> ArtifactsLocation
102idToModLocation :: PathIdMap -> FilePathId -> ArtifactsLocation
111idToModLocation PathIdMap{idToPathMap} (FilePathId id) = idToPathMap IntMap.! id
103idToModLocation PathIdMap{idToPathMap} (FilePathId id) = idToPathMap IntMap.! id
@@ -305,9 +297,9 @@ transitiveDeps DependencyInformation{..} file = do
305 let transitiveModuleDeps =
297 let transitiveModuleDeps =
306 map (idToPath depPathIdMap . FilePathId) transitiveModuleDepIds
298 map (idToPath depPathIdMap . FilePathId) transitiveModuleDepIds
307 let transitiveNamedModuleDeps =
299 let transitiveNamedModuleDeps =
308− [ NamedModuleDep (idToPath depPathIdMap (FilePathId fid)) mn ml
300+ [ NamedModuleDep (idToPath depPathIdMap (FilePathId fid)) mn artifactModLocation
309 | (fid, ShowableModuleName mn) <- IntMap.toList depModuleNames
301 | (fid, ShowableModuleName mn) <- IntMap.toList depModuleNames
310− , let ArtifactsLocation ml = idToPathMap depPathIdMap IntMap.! fid
302+ , let ArtifactsLocation{artifactModLocation} = idToPathMap depPathIdMap IntMap.! fid
312 pure TransitiveDependencies {..}
304 pure TransitiveDependencies {..}