@@ -68,7 +68,7 @@ indexDependencyHieFiles recorder se hscEnv = do
68
68
hieDir :: FilePath
69
69
hieDir = pkgLibDir </> " extra-compilation-artifacts"
70
70
unit :: GHC. Unit
71
- unit = GHC. RealUnit $ GHC. Definite $ GHC. unitId package
71
+ unit = GHC. fromUnitId $ GHC. unitId package
72
72
-- Check if we have already indexed this package.
73
73
moduleRows <- withHieDb se $ \ db ->
74
74
lookupPackage db unit
@@ -104,16 +104,14 @@ indexDependencyHieFiles recorder se hscEnv = do
104
104
packages :: Set Package
105
105
packages = Set. fromList
106
106
$ map Package
107
- $ Map. elems
108
- -- Take only the packages in the unitInfoMap that are direct
109
- -- or transitive dependencies.
110
- $ Map. filterWithKey (\ uid _ -> uid `Set.member` dependencyIds) unitInfoMap
107
+ -- Take only the packages that are direct or transitive dependencies.
108
+ $ filter (\ unitInfo -> GHC. unitId unitInfo `Set.member` dependencyIds) allPackages
111
109
where
112
- unitInfoMap :: GHC. UnitInfoMap
113
- unitInfoMap = GHC. getUnitInfoMap hscEnv
110
+ allPackages :: [ GHC. UnitInfo ]
111
+ allPackages = GHC. getUnitInfo hscEnv
114
112
dependencyIds :: Set GHC. UnitId
115
113
dependencyIds =
116
- calculateTransitiveDependencies unitInfoMap directDependencyIds directDependencyIds
114
+ calculateTransitiveDependencies allPackages directDependencyIds directDependencyIds
117
115
directDependencyIds :: Set GHC. UnitId
118
116
directDependencyIds = Set. fromList
119
117
$ map GHC. toUnitId
@@ -122,14 +120,14 @@ indexDependencyHieFiles recorder se hscEnv = do
122
120
123
121
-- calculateTransitiveDependencies finds the UnitId keys in the UnitInfoMap
124
122
-- that are dependencies or transitive dependencies.
125
- calculateTransitiveDependencies :: GHC. UnitInfoMap -> Set GHC. UnitId -> Set GHC. UnitId -> Set GHC. UnitId
126
- calculateTransitiveDependencies unitInfoMap allDependencies newDepencencies
127
- -- If there are no new dependencies, we have found them all,
123
+ calculateTransitiveDependencies :: [ GHC. UnitInfo ] -> Set GHC. UnitId -> Set GHC. UnitId -> Set GHC. UnitId
124
+ calculateTransitiveDependencies allPackages allDependencies newDepencencies
125
+ -- If there are no new dependencies, then we have found them all,
128
126
-- so return allDependencies
129
127
| Set. null newDepencencies = allDependencies
130
128
-- Otherwise recursively add any dependencies of the newDepencencies
131
129
-- that are not in allDependencies already.
132
- | otherwise = calculateTransitiveDependencies unitInfoMap nextAll nextNew
130
+ | otherwise = calculateTransitiveDependencies allPackages nextAll nextNew
133
131
where
134
132
nextAll :: Set GHC. UnitId
135
133
nextAll = Set. union allDependencies nextNew
@@ -140,8 +138,7 @@ calculateTransitiveDependencies unitInfoMap allDependencies newDepencencies
140
138
nextNew = flip Set. difference allDependencies
141
139
$ Set. unions
142
140
$ map (Set. fromList . GHC. unitDepends)
143
- $ Map. elems
144
- $ Map. filterWithKey (\ uid _ -> uid `Set.member` newDepencencies) unitInfoMap
141
+ $ filter (\ unitInfo -> GHC. unitId unitInfo `Set.member` newDepencencies) allPackages
145
142
146
143
getModulesForPackage :: Package -> [GHC. Module ]
147
144
getModulesForPackage (Package package) =
0 commit comments