diff options
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.patch | 20 |
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 |