summaryrefslogtreecommitdiff
path: root/dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch')
-rw-r--r--dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch b/dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch
new file mode 100644
index 000000000000..a34c0c9059fe
--- /dev/null
+++ b/dev-lang/ghc/files/ghc-8.10.5-modorigin-verbose-conflict.patch
@@ -0,0 +1,20 @@
+--- a/compiler/main/Packages.hs
++++ b/compiler/main/Packages.hs
+@@ -219,12 +219,14 @@ fromFlag = ModOrigin Nothing [] [] True
+ instance Semigroup ModuleOrigin where
+ ModOrigin e res rhs f <> ModOrigin e' res' rhs' f' =
+ ModOrigin (g e e') (res ++ res') (rhs ++ rhs') (f || f')
+- where g (Just b) (Just b')
++ where g x@(Just b) y@(Just b')
+ | b == b' = Just b
+- | otherwise = panic "ModOrigin: package both exposed/hidden"
++ | otherwise = pprPanic "ModOrigin: package both exposed/hidden" $
++ text "x: " <> ppr x $$ text "y: " <> ppr y
+ g Nothing x = x
+ g x Nothing = x
+- _x <> _y = panic "ModOrigin: hidden module redefined"
++ x <> y = pprPanic "ModOrigin: hidden module redefined" $
++ text "x: " <> ppr x $$ text "y: " <> ppr y
+
+ instance Monoid ModuleOrigin where
+ mempty = ModOrigin Nothing [] [] False