diff options
Diffstat (limited to 'compiler/GHC/Iface/Recomp.hs')
-rw-r--r-- | compiler/GHC/Iface/Recomp.hs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/compiler/GHC/Iface/Recomp.hs b/compiler/GHC/Iface/Recomp.hs index 9bfbe218d6..fc53b91d68 100644 --- a/compiler/GHC/Iface/Recomp.hs +++ b/compiler/GHC/Iface/Recomp.hs @@ -74,6 +74,7 @@ import Data.Either import qualified Data.Semigroup import GHC.List (uncons) import Data.Ord +import Data.Containers.ListUtils {- ----------------------------------------------- @@ -461,7 +462,7 @@ checkDependencies hsc_env summary iface let (hs, ps) = partitionEithers es res1 <- liftIO $ check_mods (sort hs) prev_dep_mods - let allPkgDeps = sortBy (comparing snd) (ps ++ bkpk_units) + let allPkgDeps = sortBy (comparing snd) $ nubOrdOn snd (ps ++ implicit_deps ++ bkpk_units) res2 <- liftIO $ check_packages allPkgDeps prev_dep_pkgs return (res1 `mappend` res2) where @@ -475,6 +476,8 @@ checkDependencies hsc_env summary iface bkpk_units = map (("Signature",) . indefUnit . instUnitInstanceOf . moduleUnit) (requirementMerges units (moduleName (mi_module iface))) + implicit_deps = map ("Implicit",) (implicitPackageDeps dflags) + classify _ (Found _ mod) | isHomeUnit home_unit (moduleUnit mod) = Right (Left (moduleName mod)) |