diff options
| -rw-r--r-- | compiler/main/Packages.hs | 10 | ||||
| -rw-r--r-- | testsuite/tests/backpack/cabal/bkpcabal01/p/P.hs.in1 | 1 |
2 files changed, 9 insertions, 2 deletions
diff --git a/compiler/main/Packages.hs b/compiler/main/Packages.hs index c49581b0d9..14407be418 100644 --- a/compiler/main/Packages.hs +++ b/compiler/main/Packages.hs @@ -1892,8 +1892,14 @@ listVisibleModuleNames dflags = getPreloadPackagesAnd :: DynFlags -> [PreloadUnitId] -> IO [PackageConfig] getPreloadPackagesAnd dflags pkgids0 = let - pkgids = pkgids0 ++ map (toInstalledUnitId . moduleUnitId . snd) - (thisUnitIdInsts dflags) + pkgids = pkgids0 ++ + -- An indefinite package will have insts to HOLE, + -- which is not a real package. Don't look it up. + -- Fixes #14525 + if isIndefinite dflags + then [] + else map (toInstalledUnitId . moduleUnitId . snd) + (thisUnitIdInsts dflags) state = pkgState dflags pkg_map = pkgIdMap state preload = preloadPackages state diff --git a/testsuite/tests/backpack/cabal/bkpcabal01/p/P.hs.in1 b/testsuite/tests/backpack/cabal/bkpcabal01/p/P.hs.in1 index 327a032132..875c370915 100644 --- a/testsuite/tests/backpack/cabal/bkpcabal01/p/P.hs.in1 +++ b/testsuite/tests/backpack/cabal/bkpcabal01/p/P.hs.in1 @@ -1,3 +1,4 @@ +{-# LANGUAGE CPP #-} module P where import H y = x |
