summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2021-04-14 10:04:10 +0100
committerMatthew Pickering <matthewtpickering@gmail.com>2021-04-15 03:50:54 -0400
commit9344a8e13a7833bfe673806af76b1f392f9006e4 (patch)
treed54680391c43f53df5916f1625d09d9f0424399c
parentcc1ba576d26b90c0c01aa43e7100c94ee3a287ad (diff)
downloadhaskell-wip/rexport-fix.tar.gz
Correct treatment of rexported modules in mkModuleNameProvidersMapwip/rexport-fix
Before we would get the incorrect error message saying that the rexporting package was the same as the defining package. I think this only affects error messages for now. ``` - it is bound as p-0.1.0.0:P2 by a reexport in package p-0.1.0.0 - it is bound as P by a reexport in package p-0.1.0.0 + it is bound as p-0.1.0.0:P2 by a reexport in package q-0.1.0.0 + it is bound as P by a reexport in package r-0.1.0.0 ``` and the output of `-ddump-mod-map` claimed.. ``` Moo moo-0.0.0.1 (hidden package, reexport by moo-0.0.0.1) ```
-rw-r--r--compiler/GHC/Unit/State.hs3
-rw-r--r--testsuite/tests/cabal/cabal05/cabal05.stderr4
2 files changed, 3 insertions, 4 deletions
diff --git a/compiler/GHC/Unit/State.hs b/compiler/GHC/Unit/State.hs
index fe4796d1fc..9e154152d7 100644
--- a/compiler/GHC/Unit/State.hs
+++ b/compiler/GHC/Unit/State.hs
@@ -1729,8 +1729,7 @@ mkModuleNameProvidersMap ctx cfg pkg_map closure vis_map =
case exposedReexport of
Nothing -> (pk, m, fromExposedModules e)
Just (Module pk' m') ->
- let pkg' = unit_lookup pk'
- in (pk', m', fromReexportedModules e pkg')
+ (pk', m', fromReexportedModules e pkg)
return (m, mkModMap pk' m' origin')
esmap :: UniqFM ModuleName (Map Module ModuleOrigin)
diff --git a/testsuite/tests/cabal/cabal05/cabal05.stderr b/testsuite/tests/cabal/cabal05/cabal05.stderr
index eb51115ab0..183c5319d1 100644
--- a/testsuite/tests/cabal/cabal05/cabal05.stderr
+++ b/testsuite/tests/cabal/cabal05/cabal05.stderr
@@ -1,5 +1,5 @@
T.hs:3:1: error:
Ambiguous module name ‘Conflict’:
- it is bound as p-0.1.0.0:P2 by a reexport in package p-0.1.0.0
- it is bound as P by a reexport in package p-0.1.0.0
+ it is bound as p-0.1.0.0:P2 by a reexport in package q-0.1.0.0
+ it is bound as P by a reexport in package r-0.1.0.0