summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorsheaf <sam.derbyshire@gmail.com>2023-05-15 15:23:49 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-05-15 18:03:00 -0400
commit4d29ecdfcc79ad663e066d9f7d6d17b64c8c6c41 (patch)
tree985890c63aee54a2e94e31aa85cbec44652987b9 /testsuite
parentd69cbd78999071d2d6479be40ae90ddd83b9942a (diff)
downloadhaskell-4d29ecdfcc79ad663e066d9f7d6d17b64c8c6c41.tar.gz
Migrate errors to diagnostics in GHC.Tc.Module
This commit migrates the errors in GHC.Tc.Module to use the new diagnostic infrastructure. It required a significant overhaul of the compatibility checks between an hs-boot or signature module and its implementation; we now use a Writer monad to accumulate errors; see the BootMismatch datatype in GHC.Tc.Errors.Types, with its panoply of subtypes. For the sake of readability, several local functions inside the 'checkBootTyCon' function were split off into top-level functions. We split off GHC.Types.HscSource into a "boot or sig" vs "normal hs file" datatype, as this mirrors the logic in several other places where we want to treat hs-boot and hsig files in a similar fashion. This commit also refactors the Backpack checks for type synonyms implementing abstract data, to correctly reject implementations that contain qualified or quantified types (this fixes #23342 and #23344).
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal02/bkpcabal02.stderr8
-rw-r--r--testsuite/tests/backpack/cabal/bkpcabal06/bkpcabal06.stderr2
-rw-r--r--testsuite/tests/backpack/should_compile/all.T1
-rw-r--r--testsuite/tests/backpack/should_compile/bkp09.bkp2
-rw-r--r--testsuite/tests/backpack/should_compile/bkp15.bkp2
-rw-r--r--testsuite/tests/backpack/should_compile/bkp61.bkp36
-rw-r--r--testsuite/tests/backpack/should_compile/bkp61.stderr15
-rw-r--r--testsuite/tests/backpack/should_fail/T19244a.stderr72
-rw-r--r--testsuite/tests/backpack/should_fail/T19244b.stderr20
-rw-r--r--testsuite/tests/backpack/should_fail/T23342.bkp21
-rw-r--r--testsuite/tests/backpack/should_fail/T23342.stderr44
-rw-r--r--testsuite/tests/backpack/should_fail/T23344.bkp54
-rw-r--r--testsuite/tests/backpack/should_fail/T23344.stderr51
-rw-r--r--testsuite/tests/backpack/should_fail/all.T3
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail01.stderr16
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail03.stderr14
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail04.stderr18
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail05.stderr14
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail06.stderr22
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail07.stderr22
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail09.stderr12
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail10.stderr28
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail11.stderr2
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail12.stderr18
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail13.stderr18
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail14.stderr24
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail15.stderr20
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail16.stderr12
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail17.stderr22
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail19.stderr12
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail22.stderr22
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail23.stderr23
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail25.stderr23
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail26.stderr23
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail27.stderr20
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail35.stderr14
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail37.stderr8
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail41.stderr28
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail42.stderr17
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail43.stderr2
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail45.stderr21
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail46.stderr21
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail47.stderr20
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail50.stderr14
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail52.stderr14
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail53.stderr16
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail54.bkp47
-rw-r--r--testsuite/tests/backpack/should_fail/bkpfail54.stderr51
-rw-r--r--testsuite/tests/count-deps/CountDepsAst.stdout1
-rw-r--r--testsuite/tests/count-deps/CountDepsParser.stdout1
-rw-r--r--testsuite/tests/driver/T14075/T14075.stderr8
-rw-r--r--testsuite/tests/ghci/scripts/T7894.stderr2
-rw-r--r--testsuite/tests/ghci/scripts/T9140.stdout2
-rw-r--r--testsuite/tests/ghci/scripts/ghci034.stderr3
-rw-r--r--testsuite/tests/ghci/should_fail/T18052b.stderr2
-rw-r--r--testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr25
-rw-r--r--testsuite/tests/indexed-types/should_fail/HsBootFam.stderr6
-rw-r--r--testsuite/tests/module/T414.stderr3
-rw-r--r--testsuite/tests/module/T7765.stderr3
-rw-r--r--testsuite/tests/parser/should_fail/readFail021.stderr2
-rw-r--r--testsuite/tests/rename/should_compile/rn055.stderr4
-rw-r--r--testsuite/tests/rename/should_fail/T13839b.stderr2
-rw-r--r--testsuite/tests/rename/should_fail/T19781.stderr7
-rw-r--r--testsuite/tests/rename/should_fail/rnfail007.stderr2
-rw-r--r--testsuite/tests/rename/should_fail/rnfail047.stderr4
-rw-r--r--testsuite/tests/rename/should_fail/rnfail055.stderr101
-rw-r--r--testsuite/tests/rep-poly/RepPolyBackpack3.stderr12
-rw-r--r--testsuite/tests/roles/should_fail/Roles12.stderr8
-rw-r--r--testsuite/tests/roles/should_fail/T9204.stderr8
-rw-r--r--testsuite/tests/typecheck/T12441/T12441.stderr20
-rw-r--r--testsuite/tests/typecheck/should_fail/T12035.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/T12035j.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/T12042.stderr6
-rw-r--r--testsuite/tests/typecheck/should_fail/T16453E1.stderr3
-rw-r--r--testsuite/tests/typecheck/should_fail/T19397E3.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/T19397E4.stderr2
-rw-r--r--testsuite/tests/typecheck/should_fail/T20588.stderr18
-rw-r--r--testsuite/tests/typecheck/should_fail/T20588c.stderr10
-rw-r--r--testsuite/tests/typecheck/should_fail/T3468.stderr8
-rw-r--r--testsuite/tests/typecheck/should_fail/tcfail030.stderr2
-rw-r--r--testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr4
81 files changed, 809 insertions, 473 deletions
diff --git a/testsuite/tests/backpack/cabal/bkpcabal02/bkpcabal02.stderr b/testsuite/tests/backpack/cabal/bkpcabal02/bkpcabal02.stderr
index e6a1f31a82..4d56d26651 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal02/bkpcabal02.stderr
+++ b/testsuite/tests/backpack/cabal/bkpcabal02/bkpcabal02.stderr
@@ -1,10 +1,10 @@
-q/H.hsig:2:1: error:
+q\H.hsig:2:1: error: [GHC-11890]
• Identifier ‘x’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: x :: Int
- Hsig file: x :: Bool
- The two types are different
+ Hsig file: x :: Bool
+ The two types are different.
• while merging the signatures from:
• bkpcabal01-0.1.0.0:p[H=<H>]:H
• ...and the local signature for H
diff --git a/testsuite/tests/backpack/cabal/bkpcabal06/bkpcabal06.stderr b/testsuite/tests/backpack/cabal/bkpcabal06/bkpcabal06.stderr
index 24defef3c5..6a68787319 100644
--- a/testsuite/tests/backpack/cabal/bkpcabal06/bkpcabal06.stderr
+++ b/testsuite/tests/backpack/cabal/bkpcabal06/bkpcabal06.stderr
@@ -1,4 +1,4 @@
sig/P.hsig:1:1: error: [GHC-93011]
• ‘p’ is exported by the hsig file, but not exported by the implementing module ‘bkpcabal06-0.1.0.0:impl:P’
- • while checking that bkpcabal06-0.1.0.0:impl:P implements signature P in bkpcabal06-0.1.0.0:sig[P=bkpcabal06-0.1.0.0:impl:P]
+ • While checking that ‘bkpcabal06-0.1.0.0:impl:P’ implements signature ‘P’ in ‘bkpcabal06-0.1.0.0:sig[P=bkpcabal06-0.1.0.0:impl:P]’.
diff --git a/testsuite/tests/backpack/should_compile/all.T b/testsuite/tests/backpack/should_compile/all.T
index 07c1ed27ec..9a2edebd8e 100644
--- a/testsuite/tests/backpack/should_compile/all.T
+++ b/testsuite/tests/backpack/should_compile/all.T
@@ -52,6 +52,7 @@ test('bkp57', normal, backpack_compile, [''])
test('bkp58', normal, backpack_compile, [''])
test('bkp59', normal, backpack_compile, [''])
test('bkp60', normal, backpack_compile, [''])
+test('bkp61', normal, backpack_compile, [''])
test('T13140', normal, backpack_compile, [''])
test('T13149', expect_broken(13149), backpack_compile, [''])
diff --git a/testsuite/tests/backpack/should_compile/bkp09.bkp b/testsuite/tests/backpack/should_compile/bkp09.bkp
index 64cf447715..68b9677d56 100644
--- a/testsuite/tests/backpack/should_compile/bkp09.bkp
+++ b/testsuite/tests/backpack/should_compile/bkp09.bkp
@@ -7,7 +7,7 @@ unit p where
data T a = MkT (S a)
data S a = MkS a
--- keept his synced up!
+-- keep this synced up!
unit q where
signature H where
data T a = MkT (S a)
diff --git a/testsuite/tests/backpack/should_compile/bkp15.bkp b/testsuite/tests/backpack/should_compile/bkp15.bkp
index c661eafe6f..48058417a9 100644
--- a/testsuite/tests/backpack/should_compile/bkp15.bkp
+++ b/testsuite/tests/backpack/should_compile/bkp15.bkp
@@ -22,7 +22,7 @@ unit p where
-- type instance Elem Int = Bool
-- pattern Blub n = ("foo", n)
--- keept his synced up!
+-- keep this synced up!
unit q where
signature H where
x :: (forall a. a -> a) -> (Int, Bool)
diff --git a/testsuite/tests/backpack/should_compile/bkp61.bkp b/testsuite/tests/backpack/should_compile/bkp61.bkp
new file mode 100644
index 0000000000..3ad7d721bb
--- /dev/null
+++ b/testsuite/tests/backpack/should_compile/bkp61.bkp
@@ -0,0 +1,36 @@
+-- Check that we can implement abstract data using a data family.
+
+{-# LANGUAGE DataKinds #-}
+{-# LANGUAGE TypeFamilies #-}
+
+unit p where
+ signature H where
+ import Data.Kind
+ type T :: Bool -> Type
+ data T b
+ turnOff :: T True -> T False
+ turnOn :: T False -> T True
+ module A where
+ import H
+ foo :: T True -> T True
+ foo = turnOn . turnOff
+
+unit q where
+ module H where
+ import Data.Kind
+ type D :: Bool -> Type
+ data family D a
+ data instance D True = DT
+ data instance D False = DF
+ turnOff DT = DF
+ turnOn DF = DT
+
+ type S = D
+ type T = S
+
+unit r where
+ dependency q
+ dependency p[H=q:H]
+ module N where
+ import A
+ bar = foo . foo
diff --git a/testsuite/tests/backpack/should_compile/bkp61.stderr b/testsuite/tests/backpack/should_compile/bkp61.stderr
new file mode 100644
index 0000000000..808295964d
--- /dev/null
+++ b/testsuite/tests/backpack/should_compile/bkp61.stderr
@@ -0,0 +1,15 @@
+[1 of 3] Processing p
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling A ( p\A.hs, nothing )
+[2 of 3] Processing q
+ Instantiating q
+ [1 of 1] Compiling H ( q\H.hs, bkp61.out\q\H.o )
+[3 of 3] Processing r
+ Instantiating r
+ [1 of 2] Including q
+ [2 of 2] Including p[H=q:H]
+ Instantiating p[H=q:H]
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkp61.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
+ [2 of 2] Compiling A ( p\A.hs, bkp61.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\A.o )
+ [1 of 2] Compiling N ( r\N.hs, bkp61.out\r\N.o )
+ [2 of 2] Instantiating p
diff --git a/testsuite/tests/backpack/should_fail/T19244a.stderr b/testsuite/tests/backpack/should_fail/T19244a.stderr
index 5dceaad5f3..3c9e217a87 100644
--- a/testsuite/tests/backpack/should_fail/T19244a.stderr
+++ b/testsuite/tests/backpack/should_fail/T19244a.stderr
@@ -1,31 +1,31 @@
[1 of 4] Processing user
- [1 of 2] Compiling Map[sig] ( user/Map.hsig, nothing )
- [2 of 2] Compiling User ( user/User.hs, nothing )
+ [1 of 2] Compiling Map[sig] ( user\Map.hsig, nothing )
+ [2 of 2] Compiling User ( user\User.hs, nothing )
[2 of 4] Processing ordmap
Instantiating ordmap
- [1 of 1] Compiling Map ( ordmap/Map.hs, T19244a.out/ordmap/Map.o )
+ [1 of 1] Compiling Map ( ordmap\Map.hs, T19244a.out\ordmap\Map.o )
[3 of 4] Processing eqmap
Instantiating eqmap
- [1 of 1] Compiling Map ( eqmap/Map.hs, T19244a.out/eqmap/Map.o )
+ [1 of 1] Compiling Map ( eqmap\Map.hs, T19244a.out\eqmap\Map.o )
[4 of 4] Processing main
Instantiating main
[1 of 2] Including user[Map=ordmap:Map]
Instantiating user[Map=ordmap:Map]
- [1 of 2] Compiling Map[sig] ( user/Map.hsig, T19244a.out/user/user-GzloW2NeDdA2M0V8qzN4g2/Map.o )
+ [1 of 2] Compiling Map[sig] ( user\Map.hsig, T19244a.out\user\user-GzloW2NeDdA2M0V8qzN4g2\Map.o )
-T19244a.bkp:22:9: error:
+T19244a.bkp:22:9: error: [GHC-15843]
• Type constructor ‘Key’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type Key :: * -> Constraint
type Key = GHC.Classes.Ord :: * -> Constraint
- Hsig file: type Key :: forall {k}. k -> Constraint
- class Key k1
- The types have different kinds
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: type Key :: forall {k}. k -> Constraint
+ class Key k1
+ The types have different kinds.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
-<no location info>: error:
+<no location info>: error: [GHC-15843]
• Type constructor ‘Map’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type role Map nominal representational
type Map :: * -> * -> *
data Map k a
@@ -35,37 +35,37 @@ T19244a.bkp:22:9: error:
!(Map k a)
!(Map k a)
| Data.Map.Internal.Tip
- Hsig file: type role Map nominal representational
- type Map :: forall {k} {k1}. k -> k1 -> *
- data Map k2 a
- The types have different kinds
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: type role Map nominal representational
+ type Map :: forall {k} {k1}. k -> k1 -> *
+ data Map k2 a
+ The types have different kinds.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
-<no location info>: error:
+<no location info>: error: [GHC-11890]
• Identifier ‘lookup’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: lookup ::
GHC.Classes.Ord k => k -> Map k a -> GHC.Maybe.Maybe a
- Hsig file: lookup ::
- Key (*) k => k -> Map (*) (*) k a -> GHC.Maybe.Maybe a
- The two types are different
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: lookup ::
+ Key (*) k => k -> Map (*) (*) k a -> GHC.Maybe.Maybe a
+ The two types are different.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
-<no location info>: error:
+<no location info>: error: [GHC-11890]
• Identifier ‘insert’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: insert ::
GHC.Classes.Ord k => k -> a -> Map k a -> Map k a
- Hsig file: insert ::
- Key (*) k => k -> a -> Map (*) (*) k a -> Map (*) (*) k a
- The two types are different
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: insert ::
+ Key (*) k => k -> a -> Map (*) (*) k a -> Map (*) (*) k a
+ The two types are different.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
-<no location info>: error:
+<no location info>: error: [GHC-11890]
• Identifier ‘empty’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: empty :: Map k a
- Hsig file: empty ::
- forall {k1} {k2} (k3 :: k1) (a :: k2). Map k1 k2 k3 a
- The two types are different
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: empty ::
+ forall {k1} {k2} (k3 :: k1) (a :: k2). Map k1 k2 k3 a
+ The two types are different.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
diff --git a/testsuite/tests/backpack/should_fail/T19244b.stderr b/testsuite/tests/backpack/should_fail/T19244b.stderr
index 3a50d11079..6c883c2601 100644
--- a/testsuite/tests/backpack/should_fail/T19244b.stderr
+++ b/testsuite/tests/backpack/should_fail/T19244b.stderr
@@ -1,21 +1,21 @@
[1 of 3] Processing user
- [1 of 2] Compiling Map[sig] ( user/Map.hsig, nothing )
- [2 of 2] Compiling User ( user/User.hs, nothing )
+ [1 of 2] Compiling Map[sig] ( user\Map.hsig, nothing )
+ [2 of 2] Compiling User ( user\User.hs, nothing )
[2 of 3] Processing ordmap
Instantiating ordmap
- [1 of 1] Compiling Map ( ordmap/Map.hs, T19244b.out/ordmap/Map.o )
+ [1 of 1] Compiling Map ( ordmap\Map.hs, T19244b.out\ordmap\Map.o )
[3 of 3] Processing main
Instantiating main
[1 of 1] Including user[Map=ordmap:Map]
Instantiating user[Map=ordmap:Map]
- [1 of 2] Compiling Map[sig] ( user/Map.hsig, T19244b.out/user/user-GzloW2NeDdA2M0V8qzN4g2/Map.o )
+ [1 of 2] Compiling Map[sig] ( user\Map.hsig, T19244b.out\user\user-GzloW2NeDdA2M0V8qzN4g2\Map.o )
-T19244b.bkp:11:27: error:
+T19244b.bkp:11:27: error: [GHC-15843]
• Type constructor ‘Key’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type Key :: * -> Constraint
type Key = GHC.Classes.Ord :: * -> Constraint
- Hsig file: type Key :: forall {k}. k -> Constraint
- class Key k1
- The types have different kinds
- • while checking that ordmap:Map implements signature Map in user[Map=ordmap:Map]
+ Hsig file: type Key :: forall {k}. k -> Constraint
+ class Key k1
+ The types have different kinds.
+ • While checking that ‘ordmap:Map’ implements signature ‘Map’ in ‘user[Map=ordmap:Map]’.
diff --git a/testsuite/tests/backpack/should_fail/T23342.bkp b/testsuite/tests/backpack/should_fail/T23342.bkp
new file mode 100644
index 0000000000..62f9b5f1c5
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/T23342.bkp
@@ -0,0 +1,21 @@
+unit p where
+ signature H where
+ import Data.Kind
+ data T1
+ data T2
+ data T3
+
+unit q where
+ module H where
+ import Data.Kind
+ class C a where {}
+ data S
+
+ type T1 = forall (a :: Type). a -> a
+ type T2 = forall (a :: Type). C a => a
+ type T3 = C S => S -> S
+
+unit r where
+ dependency q
+ dependency p[H=q:H]
+
diff --git a/testsuite/tests/backpack/should_fail/T23342.stderr b/testsuite/tests/backpack/should_fail/T23342.stderr
new file mode 100644
index 0000000000..39641082d6
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/T23342.stderr
@@ -0,0 +1,44 @@
+[1 of 3] Processing p
+ [1 of 1] Compiling H[sig] ( p\H.hsig, nothing )
+[2 of 3] Processing q
+ Instantiating q
+ [1 of 1] Compiling H ( q\H.hs, T23342.out\q\H.o )
+[3 of 3] Processing r
+ Instantiating r
+ [1 of 2] Including q
+ [2 of 2] Including p[H=q:H]
+ Instantiating p[H=q:H]
+ [1 of 1] Compiling H[sig] ( p\H.hsig, T23342.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
+
+T23342.bkp:14:5: error: [GHC-15843]
+ • Type constructor ‘T1’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T1 :: *
+ type T1 = forall a. a -> a
+ Hsig file: type T1 :: *
+ data T1
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. a -> a.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
+
+T23342.bkp:15:5: error: [GHC-15843]
+ • Type constructor ‘T2’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T2 :: *
+ type T2 = forall a. C a => a
+ Hsig file: type T2 :: *
+ data T2
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. C a => a.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
+
+T23342.bkp:16:5: error: [GHC-15843]
+ • Type constructor ‘T3’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T3 :: *
+ type T3 = C S => S -> S
+ Hsig file: type T3 :: *
+ data T3
+ Illegal implementation of abstract data:
+ Invalid qualified type: C S => S -> S.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
diff --git a/testsuite/tests/backpack/should_fail/T23344.bkp b/testsuite/tests/backpack/should_fail/T23344.bkp
new file mode 100644
index 0000000000..3d60ff7b51
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/T23344.bkp
@@ -0,0 +1,54 @@
+{-# LANGUAGE StandaloneKindSignatures #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE ImpredicativeTypes #-}
+
+unit p where
+ module M where
+ import Data.Kind
+
+ type C :: Type -> Constraint
+ class C a where
+ type family F a :: Type
+
+unit q where
+ dependency p
+ signature H where
+ data T1
+ data T2
+ data T3
+ module N where
+ import M ( C(F) )
+ import H ( T1, T2, T3 )
+
+ instance C T1 where
+ type F T1 = T2
+ instance C T2 where
+ type F T2 = T3
+ instance C T3 where
+ type F T3 = T1
+
+unit r where
+ dependency p
+ module H where
+ import Data.Kind
+
+ type S1 :: Type -> Type
+ data S1 a = MkS1
+
+ type S2 :: Type
+ data S2 = MkS2
+
+ type G :: Type -> Constraint
+ class G a where {}
+
+ type T1 = S1 (forall (a :: Type). a -> a)
+ type T2 = S1 (G S2 => S2)
+
+ type Y = forall a. a -> a
+ type Z = Y
+ type T3 = S1 Y
+
+unit s where
+ dependency p
+ dependency r
+ dependency q[H=r:H]
diff --git a/testsuite/tests/backpack/should_fail/T23344.stderr b/testsuite/tests/backpack/should_fail/T23344.stderr
new file mode 100644
index 0000000000..6687faba5f
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/T23344.stderr
@@ -0,0 +1,51 @@
+[1 of 4] Processing p
+ Instantiating p
+ [1 of 1] Compiling M ( p\M.hs, T23344.out\p\M.o )
+[2 of 4] Processing q
+ [1 of 2] Compiling H[sig] ( q\H.hsig, nothing )
+ [2 of 2] Compiling N ( q\N.hs, nothing )
+[3 of 4] Processing r
+ Instantiating r
+ [1 of 1] Including p
+ [1 of 1] Compiling H ( r\H.hs, T23344.out\r\H.o )
+[4 of 4] Processing s
+ Instantiating s
+ [1 of 3] Including p
+ [2 of 3] Including r
+ [3 of 3] Including q[H=r:H]
+ Instantiating q[H=r:H]
+ [1 of 1] Including p
+ [1 of 2] Compiling H[sig] ( q\H.hsig, T23344.out\q\q-EsMFZGC3QiBIz4krwt67aW\H.o )
+
+T23344.bkp:44:5: error: [GHC-15843]
+ • Type constructor ‘T1’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T1 :: *
+ type T1 = S1 (forall a. a -> a)
+ Hsig file: type T1 :: *
+ data T1
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. a -> a.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
+
+T23344.bkp:45:5: error: [GHC-15843]
+ • Type constructor ‘T2’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T2 :: *
+ type T2 = S1 (G S2 => S2)
+ Hsig file: type T2 :: *
+ data T2
+ Illegal implementation of abstract data:
+ Invalid qualified type: G S2 => S2.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
+
+T23344.bkp:49:5: error: [GHC-15843]
+ • Type constructor ‘T3’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T3 :: *
+ type T3 = S1 Y
+ Hsig file: type T3 :: *
+ data T3
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. a -> a.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
diff --git a/testsuite/tests/backpack/should_fail/all.T b/testsuite/tests/backpack/should_fail/all.T
index e01a4281a5..91733d9040 100644
--- a/testsuite/tests/backpack/should_fail/all.T
+++ b/testsuite/tests/backpack/should_fail/all.T
@@ -49,5 +49,8 @@ test('bkpfail50', normal, backpack_compile_fail, [''])
test('bkpfail51', normal, backpack_compile_fail, [''])
test('bkpfail52', normal, backpack_compile_fail, [''])
test('bkpfail53', normal, backpack_compile_fail, [''])
+test('bkpfail54', normal, backpack_compile_fail, [''])
test('T19244a', normal, backpack_compile_fail, [''])
test('T19244b', normal, backpack_compile_fail, [''])
+test('T23342', normal, backpack_compile_fail, [''])
+test('T23344', normal, backpack_compile_fail, [''])
diff --git a/testsuite/tests/backpack/should_fail/bkpfail01.stderr b/testsuite/tests/backpack/should_fail/bkpfail01.stderr
index 7197fa3eb2..6b13993058 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail01.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail01.stderr
@@ -1,19 +1,19 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling A ( p/A.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling A ( p\A.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, nothing )
+ [1 of 1] Compiling H ( q\H.hs, nothing )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[H=q:H]
Instantiating p[H=q:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
-bkpfail01.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/../H.hi:1:1: error: [GHC-93011]
+bkpfail01.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\..\H.hi:1:1: error: [GHC-93011]
• ‘H’ is exported by the hsig file, but not exported by the implementing module ‘q:H’
- • while checking that q:H implements signature H in p[H=q:H]
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
-bkpfail01.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/../H.hi:1:1: error: [GHC-93011]
+bkpfail01.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\..\H.hi:1:1: error: [GHC-93011]
• ‘H’ is exported by the hsig file, but not exported by the implementing module ‘q:H’
- • while checking that q:H implements signature H in p[H=q:H]
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail03.stderr b/testsuite/tests/backpack/should_fail/bkpfail03.stderr
index 9383a2aca1..3d38234f45 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail03.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail03.stderr
@@ -1,17 +1,17 @@
[1 of 3] Processing q
- [1 of 2] Compiling M1 ( q/M1.hs, nothing )
- [2 of 2] Compiling M2[sig] ( q/M2.hsig, nothing )
+ [1 of 2] Compiling M1 ( q\M1.hs, nothing )
+ [2 of 2] Compiling M2[sig] ( q\M2.hsig, nothing )
[2 of 3] Processing m2
Instantiating m2
- [1 of 1] Compiling M2 ( m2/M2.hs, nothing )
+ [1 of 1] Compiling M2 ( m2\M2.hs, nothing )
[3 of 3] Processing p
Instantiating p
[1 of 1] Including q[M2=m2:M2]
Instantiating q[M2=m2:M2]
- [1 of 2] Compiling M1 ( q/M1.hs, nothing )
- [2 of 2] Compiling M2[sig] ( q/M2.hsig, nothing )
+ [1 of 2] Compiling M1 ( q\M1.hs, nothing )
+ [2 of 2] Compiling M2[sig] ( q\M2.hsig, nothing )
-bkpfail03.bkp:3:9: error:
+bkpfail03.bkp:3:9: error: [GHC-12424]
• The hsig file (re)exports ‘M1.M’
but the implementing module exports a different identifier ‘M2.M’
- • while checking that m2:M2 implements signature M2 in q[M2=m2:M2]
+ • While checking that ‘m2:M2’ implements signature ‘M2’ in ‘q[M2=m2:M2]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail04.stderr b/testsuite/tests/backpack/should_fail/bkpfail04.stderr
index 397cd24851..450da78636 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail04.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail04.stderr
@@ -1,20 +1,20 @@
[1 of 3] Processing p
- [1 of 1] Compiling A[sig] ( p/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( p\A.hsig, nothing )
[2 of 3] Processing q
- [1 of 1] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( q\A.hsig, nothing )
[3 of 3] Processing r
- [1 of 4] Compiling A[sig] ( r/A.hsig, nothing )
+ [1 of 4] Compiling A[sig] ( r\A.hsig, nothing )
-bkpfail04.bkp:7:9: error:
+bkpfail04.bkp:7:9: error: [GHC-15843]
• Type constructor ‘A’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type A :: *
data A = A {foo :: Int}
- Hsig file: type A :: *
- data A = A {bar :: Bool}
+ Hsig file: type A :: *
+ data A = A {bar :: Bool}
The constructors do not match:
- The record label lists for ‘A’ differ
- The types for ‘A’ differ
+ • The record label lists for ‘A’ differ.
+ • The types for ‘A’ differ.
• while merging the signatures from:
• p[A=<A>]:A
• q[A=<A>]:A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail05.stderr b/testsuite/tests/backpack/should_fail/bkpfail05.stderr
index c07426fc6b..1827c7ff1a 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail05.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail05.stderr
@@ -1,23 +1,23 @@
[1 of 5] Processing h
- [1 of 1] Compiling H[sig] ( h/H.hsig, nothing )
+ [1 of 1] Compiling H[sig] ( h\H.hsig, nothing )
[2 of 5] Processing t-impl
Instantiating t-impl
- [1 of 1] Compiling T ( t-impl/T.hs, bkpfail05.out/t-impl/T.o )
+ [1 of 1] Compiling T ( t-impl\T.hs, bkpfail05.out\t-impl\T.o )
[3 of 5] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
[2 of 2] Instantiating h
[4 of 5] Processing h-impl
Instantiating h-impl
[1 of 1] Including t-impl
- [1 of 1] Compiling H ( h-impl/H.hs, bkpfail05.out/h-impl/H.o )
+ [1 of 1] Compiling H ( h-impl\H.hs, bkpfail05.out\h-impl\H.o )
[5 of 5] Processing q
Instantiating q
[1 of 1] Including p[H=h-impl:H]
Instantiating p[H=h-impl:H]
[1 of 2] Including h[H=h-impl:H]
Instantiating h[H=h-impl:H]
- [1 of 1] Compiling H[sig] ( h/H.hsig, bkpfail05.out/h/h-5FYQgnNkfSvBT5yogOxPpf/H.o )
+ [1 of 1] Compiling H[sig] ( h\H.hsig, bkpfail05.out\h\h-5FYQgnNkfSvBT5yogOxPpf\H.o )
-bkpfail05.out/h/h-5FYQgnNkfSvBT5yogOxPpf/../H.hi:1:1: error: [GHC-93011]
+bkpfail05.out\h\h-5FYQgnNkfSvBT5yogOxPpf\..\H.hi:1:1: error: [GHC-93011]
• ‘T1’ is exported by the hsig file, but not exported by the implementing module ‘h-impl:H’
- • while checking that h-impl:H implements signature H in h[H=h-impl:H]
+ • While checking that ‘h-impl:H’ implements signature ‘H’ in ‘h[H=h-impl:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail06.stderr b/testsuite/tests/backpack/should_fail/bkpfail06.stderr
index a707bf06b6..ef40417b48 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail06.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail06.stderr
@@ -1,22 +1,22 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling A ( p/A.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling A ( p\A.hs, nothing )
[2 of 3] Processing qimpl
Instantiating qimpl
- [1 of 2] Compiling T ( qimpl/T.hs, bkpfail06.out/qimpl/T.o )
- [2 of 2] Compiling H ( qimpl/H.hs, bkpfail06.out/qimpl/H.o )
+ [1 of 2] Compiling T ( qimpl\T.hs, bkpfail06.out\qimpl\T.o )
+ [2 of 2] Compiling H ( qimpl\H.hs, bkpfail06.out\qimpl\H.o )
[3 of 3] Processing q
Instantiating q
[1 of 1] Including p[H=qimpl:H]
Instantiating p[H=qimpl:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail06.out/p/p-IueY0RdHDM2I4k0mLZuqM0/H.o )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkpfail06.out\p\p-IueY0RdHDM2I4k0mLZuqM0\H.o )
-bkpfail06.bkp:10:9: error:
+bkpfail06.bkp:10:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
data T = T GHC.Types.Bool
- Hsig file: type T :: *
- data T = T GHC.Types.Int
- The constructors do not match: The types for ‘T’ differ
- • while checking that qimpl:H implements signature H in p[H=qimpl:H]
+ Hsig file: type T :: *
+ data T = T GHC.Types.Int
+ The constructors do not match: The types for ‘T’ differ.
+ • While checking that ‘qimpl:H’ implements signature ‘H’ in ‘p[H=qimpl:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail07.stderr b/testsuite/tests/backpack/should_fail/bkpfail07.stderr
index 251fd67f0b..7829f1e0cd 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail07.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail07.stderr
@@ -1,20 +1,20 @@
[1 of 3] Processing p
- [1 of 1] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 1] Compiling H[sig] ( p\H.hsig, nothing )
[2 of 3] Processing h
- [1 of 3] Compiling T ( h/T.hs, nothing )
- [2 of 3] Compiling H ( h/H.hs, nothing )
- [3 of 3] Compiling A[sig] ( h/A.hsig, nothing )
+ [1 of 3] Compiling T ( h\T.hs, nothing )
+ [2 of 3] Compiling H ( h\H.hs, nothing )
+ [3 of 3] Compiling A[sig] ( h\A.hsig, nothing )
[3 of 3] Processing q
- [1 of 3] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 3] Compiling A[sig] ( q\A.hsig, nothing )
[2 of 3] Instantiating h
[3 of 3] Instantiating p
-bkpfail07.bkp:6:9: error:
+bkpfail07.bkp:6:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
data T = T GHC.Types.Bool
- Hsig file: type T :: *
- data T = T GHC.Types.Int
- The constructors do not match: The types for ‘T’ differ
- • while checking that h[A=<A>]:H implements signature H in p[H=h[A=<A>]:H]
+ Hsig file: type T :: *
+ data T = T GHC.Types.Int
+ The constructors do not match: The types for ‘T’ differ.
+ • While checking that ‘h[A=<A>]:H’ implements signature ‘H’ in ‘p[H=h[A=<A>]:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail09.stderr b/testsuite/tests/backpack/should_fail/bkpfail09.stderr
index 858f292001..48be5a4274 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail09.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail09.stderr
@@ -1,17 +1,17 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling A ( p/A.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling A ( p\A.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, bkpfail09.out/q/H.o )
+ [1 of 1] Compiling H ( q\H.hs, bkpfail09.out\q\H.o )
[3 of 3] Processing r
- [1 of 3] Compiling H2[sig] ( r/H2.hsig, nothing )
+ [1 of 3] Compiling H2[sig] ( r\H2.hsig, nothing )
[2 of 3] Instantiating p
Command line argument: -unit-id p[H=H]:0:0: error: [GHC-93011]
• ‘H’ is exported by the hsig file, but not exported by the implementing module ‘q:H’
- • while checking that q:H implements signature H in p[H=q:H]
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
Command line argument: -unit-id p[H=H]:0:0: error: [GHC-93011]
• ‘H’ is exported by the hsig file, but not exported by the implementing module ‘q:H’
- • while checking that q:H implements signature H in p[H=q:H]
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail10.stderr b/testsuite/tests/backpack/should_fail/bkpfail10.stderr
index 78ceaffb30..abd3a1b6ba 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail10.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail10.stderr
@@ -1,28 +1,28 @@
[1 of 3] Processing p
- [1 of 1] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 1] Compiling H[sig] ( p\H.hsig, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, bkpfail10.out/q/H.o )
+ [1 of 1] Compiling H ( q\H.hs, bkpfail10.out\q\H.o )
[3 of 3] Processing r
Instantiating r
[1 of 2] Including p[H=q:H]
Instantiating p[H=q:H]
- [1 of 1] Compiling H[sig] ( p/H.hsig, bkpfail10.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/H.o )
+ [1 of 1] Compiling H[sig] ( p\H.hsig, bkpfail10.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
-bkpfail10.bkp:8:9: error:
+bkpfail10.bkp:8:9: error: [GHC-15843]
• Type constructor ‘H’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type H :: * -> *
data H a = H a
- Hsig file: type H :: *
- data H
- The types have different kinds
- • while checking that q:H implements signature H in p[H=q:H]
+ Hsig file: type H :: *
+ data H
+ The types have different kinds.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
-bkpfail10.bkp:10:9: error:
+bkpfail10.bkp:10:9: error: [GHC-11890]
• Identifier ‘f’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: f :: H a -> H a
- Hsig file: f :: H -> H
- The two types are different
- • while checking that q:H implements signature H in p[H=q:H]
+ Hsig file: f :: H -> H
+ The two types are different.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail11.stderr b/testsuite/tests/backpack/should_fail/bkpfail11.stderr
index cfcfdcb0e4..2686cd1fbc 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail11.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail11.stderr
@@ -15,4 +15,4 @@ bkpfail11.out\sig\sig-HyoWTHt34SDIRGEX0vZ8iN\..\A.hi:1:1: error: [GHC-39999]
arising when attempting to show that
instance [safe] GHC.Show.Show T -- Defined at bkpfail11.bkp:5:18
is provided by ‘mod:A’
- • while checking that mod:A implements signature A in sig[A=mod:A]
+ • While checking that ‘mod:A’ implements signature ‘A’ in ‘sig[A=mod:A]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail12.stderr b/testsuite/tests/backpack/should_fail/bkpfail12.stderr
index f240d2f058..a7205970fb 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail12.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail12.stderr
@@ -1,17 +1,17 @@
[1 of 3] Processing p
- [1 of 2] Compiling Q[sig] ( p/Q.hsig, nothing )
- [2 of 2] Compiling P ( p/P.hs, nothing )
+ [1 of 2] Compiling Q[sig] ( p\Q.hsig, nothing )
+ [2 of 2] Compiling P ( p\P.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling Q ( q/Q.hs, bkpfail12.out/q/Q.o )
+ [1 of 1] Compiling Q ( q\Q.hs, bkpfail12.out\q\Q.o )
[3 of 3] Processing r
- [1 of 3] Compiling H[sig] ( r/H.hsig, nothing )
+ [1 of 3] Compiling H[sig] ( r\H.hsig, nothing )
[2 of 3] Instantiating p
-bkpfail12.bkp:8:9: error:
+bkpfail12.bkp:8:9: error: [GHC-11890]
• Identifier ‘f’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: f :: GHC.Types.Bool
- Hsig file: f :: GHC.Types.Int
- The two types are different
- • while checking that Q implements signature Q in p[Q=Q]
+ Hsig file: f :: GHC.Types.Int
+ The two types are different.
+ • While checking that ‘Q’ implements signature ‘Q’ in ‘p[Q=Q]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail13.stderr b/testsuite/tests/backpack/should_fail/bkpfail13.stderr
index 13d227a617..fa46c6a61a 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail13.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail13.stderr
@@ -1,17 +1,17 @@
[1 of 3] Processing p
- [1 of 2] Compiling Q[sig] ( p/Q.hsig, nothing )
- [2 of 2] Compiling P ( p/P.hs, nothing )
+ [1 of 2] Compiling Q[sig] ( p\Q.hsig, nothing )
+ [2 of 2] Compiling P ( p\P.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling QMe ( q/QMe.hs, bkpfail13.out/q/QMe.o )
+ [1 of 1] Compiling QMe ( q\QMe.hs, bkpfail13.out\q\QMe.o )
[3 of 3] Processing r
- [1 of 3] Compiling H[sig] ( r/H.hsig, nothing )
+ [1 of 3] Compiling H[sig] ( r\H.hsig, nothing )
[2 of 3] Instantiating p
-bkpfail13.bkp:8:9: error:
+bkpfail13.bkp:8:9: error: [GHC-11890]
• Identifier ‘f’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: f :: GHC.Types.Bool
- Hsig file: f :: GHC.Types.Int
- The two types are different
- • while checking that q:QMe implements signature Q in p[Q=q:QMe]
+ Hsig file: f :: GHC.Types.Int
+ The two types are different.
+ • While checking that ‘q:QMe’ implements signature ‘Q’ in ‘p[Q=q:QMe]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail14.stderr b/testsuite/tests/backpack/should_fail/bkpfail14.stderr
index 401cab2286..3c1de27b10 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail14.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail14.stderr
@@ -1,20 +1,20 @@
[1 of 3] Processing p
- [1 of 3] Compiling Q[sig] ( p/Q.hsig, nothing )
- [2 of 3] Compiling Q2[sig] ( p/Q2.hsig, nothing )
- [3 of 3] Compiling P ( p/P.hs, nothing )
+ [1 of 3] Compiling Q[sig] ( p\Q.hsig, nothing )
+ [2 of 3] Compiling Q2[sig] ( p\Q2.hsig, nothing )
+ [3 of 3] Compiling P ( p\P.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 3] Compiling QMe ( q/QMe.hs, bkpfail14.out/q/QMe.o )
- [2 of 3] Compiling Q ( q/Q.hs, bkpfail14.out/q/Q.o )
- [3 of 3] Compiling Q2 ( q/Q2.hs, bkpfail14.out/q/Q2.o )
+ [1 of 3] Compiling QMe ( q\QMe.hs, bkpfail14.out\q\QMe.o )
+ [2 of 3] Compiling Q ( q\Q.hs, bkpfail14.out\q\Q.o )
+ [3 of 3] Compiling Q2 ( q\Q2.hs, bkpfail14.out\q\Q2.o )
[3 of 3] Processing r
- [1 of 3] Compiling H[sig] ( r/H.hsig, nothing )
+ [1 of 3] Compiling H[sig] ( r\H.hsig, nothing )
[2 of 3] Instantiating p
-bkpfail14.bkp:9:9: error:
+bkpfail14.bkp:9:9: error: [GHC-11890]
• Identifier ‘f’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: f :: GHC.Types.Bool
- Hsig file: f :: GHC.Types.Int
- The two types are different
- • while checking that QMe implements signature Q in p[Q=QMe,Q2=Q2]
+ Hsig file: f :: GHC.Types.Int
+ The two types are different.
+ • While checking that ‘QMe’ implements signature ‘Q’ in ‘p[Q=QMe,Q2=Q2]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail15.stderr b/testsuite/tests/backpack/should_fail/bkpfail15.stderr
index cf30efe6f8..18c86e4b44 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail15.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail15.stderr
@@ -1,18 +1,18 @@
[1 of 3] Processing p
- [1 of 3] Compiling A[sig] ( p/A.hsig, nothing )
- [2 of 3] Compiling Q[sig] ( p/Q.hsig, nothing )
- [3 of 3] Compiling P ( p/P.hs, nothing )
+ [1 of 3] Compiling A[sig] ( p\A.hsig, nothing )
+ [2 of 3] Compiling Q[sig] ( p\Q.hsig, nothing )
+ [3 of 3] Compiling P ( p\P.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling Q ( q/Q.hs, bkpfail15.out/q/Q.o )
+ [1 of 1] Compiling Q ( q\Q.hs, bkpfail15.out\q\Q.o )
[3 of 3] Processing r
- [1 of 2] Compiling A[sig] ( r/A.hsig, nothing )
+ [1 of 2] Compiling A[sig] ( r\A.hsig, nothing )
[2 of 2] Instantiating p
-bkpfail15.bkp:8:9: error:
+bkpfail15.bkp:8:9: error: [GHC-11890]
• Identifier ‘f’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: f :: GHC.Types.Bool
- Hsig file: f :: GHC.Types.Int
- The two types are different
- • while checking that q:Q implements signature Q in p[A=<A>,Q=q:Q]
+ Hsig file: f :: GHC.Types.Int
+ The two types are different.
+ • While checking that ‘q:Q’ implements signature ‘Q’ in ‘p[A=<A>,Q=q:Q]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail16.stderr b/testsuite/tests/backpack/should_fail/bkpfail16.stderr
index af4d241106..6196ab958a 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail16.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail16.stderr
@@ -1,11 +1,11 @@
[1 of 2] Processing p
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, nothing )
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, nothing )
[2 of 2] Processing q
Instantiating q
- [1 of 1] Including p[ShouldFail=base-4.13.0.0:Data.Bool]
- Instantiating p[ShouldFail=base-4.13.0.0:Data.Bool]
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, bkpfail16.out/p/p-1OqLaT7dAn947wScQQKCw5/ShouldFail.o )
+ [1 of 1] Including p[ShouldFail=base-4.18.0.0:Data.Bool]
+ Instantiating p[ShouldFail=base-4.18.0.0:Data.Bool]
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, bkpfail16.out\p\p-1OqLaT7dAn947wScQQKCw5\ShouldFail.o )
-bkpfail16.out/p/p-1OqLaT7dAn947wScQQKCw5/../ShouldFail.hi:1:1: error: [GHC-93011]
+bkpfail16.out\p\p-1OqLaT7dAn947wScQQKCw5\..\ShouldFail.hi:1:1: error: [GHC-93011]
• ‘Booly’ is exported by the hsig file, but not exported by the implementing module ‘Data.Bool’
- • while checking that Data.Bool implements signature ShouldFail in p[ShouldFail=Data.Bool]
+ • While checking that ‘Data.Bool’ implements signature ‘ShouldFail’ in ‘p[ShouldFail=Data.Bool]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail17.stderr b/testsuite/tests/backpack/should_fail/bkpfail17.stderr
index 2777b503ed..699de6374c 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail17.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail17.stderr
@@ -1,18 +1,18 @@
[1 of 2] Processing p
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, nothing )
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, nothing )
[2 of 2] Processing q
Instantiating q
- [1 of 1] Including p[ShouldFail=base-4.16.0.0:Prelude]
- Instantiating p[ShouldFail=base-4.16.0.0:Prelude]
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, bkpfail17.out/p/p-2W6J7O3LvroH97zGxbPEGF/ShouldFail.o )
+ [1 of 1] Including p[ShouldFail=base-4.18.0.0:Prelude]
+ Instantiating p[ShouldFail=base-4.18.0.0:Prelude]
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, bkpfail17.out\p\p-2W6J7O3LvroH97zGxbPEGF\ShouldFail.o )
-<no location info>: error:
+<no location info>: error: [GHC-15843]
• Type constructor ‘Either’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type Either :: * -> * -> *
data Either a b = Left a | Right b
- Hsig file: type role Either representational phantom phantom
- type Either :: * -> * -> * -> *
- data Either a b c = Left a
- The types have different kinds
- • while checking that Prelude implements signature ShouldFail in p[ShouldFail=Prelude]
+ Hsig file: type role Either representational phantom phantom
+ type Either :: * -> * -> * -> *
+ data Either a b c = Left a
+ The types have different kinds.
+ • While checking that ‘Prelude’ implements signature ‘ShouldFail’ in ‘p[ShouldFail=Prelude]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail19.stderr b/testsuite/tests/backpack/should_fail/bkpfail19.stderr
index a66eca5e60..6540bfd0e9 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail19.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail19.stderr
@@ -1,12 +1,12 @@
[1 of 2] Processing p
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, nothing )
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, nothing )
[2 of 2] Processing q
Instantiating q
- [1 of 1] Including p[ShouldFail=base-4.13.0.0:Data.STRef]
- Instantiating p[ShouldFail=base-4.13.0.0:Data.STRef]
- [1 of 1] Compiling ShouldFail[sig] ( p/ShouldFail.hsig, bkpfail19.out/p/p-CfyUIAu1JTRCDuXEyGszXN/ShouldFail.o )
+ [1 of 1] Including p[ShouldFail=base-4.18.0.0:Data.STRef]
+ Instantiating p[ShouldFail=base-4.18.0.0:Data.STRef]
+ [1 of 1] Compiling ShouldFail[sig] ( p\ShouldFail.hsig, bkpfail19.out\p\p-CfyUIAu1JTRCDuXEyGszXN\ShouldFail.o )
-<no location info>: error:
+<no location info>: error: [GHC-12424]
• The hsig file (re)exports ‘Data.STRef.Lazy.newSTRef’
but the implementing module exports a different identifier ‘GHC.STRef.newSTRef’
- • while checking that Data.STRef implements signature ShouldFail in p[ShouldFail=Data.STRef]
+ • While checking that ‘Data.STRef’ implements signature ‘ShouldFail’ in ‘p[ShouldFail=Data.STRef]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail22.stderr b/testsuite/tests/backpack/should_fail/bkpfail22.stderr
index cb0a0e23fa..c03360435f 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail22.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail22.stderr
@@ -1,23 +1,23 @@
[1 of 4] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
[2 of 4] Processing q
- [1 of 2] Compiling H2[sig] ( q/H2.hsig, nothing )
- [2 of 2] Compiling N ( q/N.hs, nothing )
+ [1 of 2] Compiling H2[sig] ( q\H2.hsig, nothing )
+ [2 of 2] Compiling N ( q\N.hs, nothing )
[3 of 4] Processing badimpl
Instantiating badimpl
- [1 of 1] Compiling H2 ( badimpl/H2.hs, bkpfail22.out/badimpl/H2.o )
+ [1 of 1] Compiling H2 ( badimpl\H2.hs, bkpfail22.out\badimpl\H2.o )
[4 of 4] Processing check
Instantiating check
[1 of 2] Including q[H2=badimpl:H2]
Instantiating q[H2=badimpl:H2]
- [1 of 2] Compiling H2[sig] ( q/H2.hsig, bkpfail22.out/q/q-FjwGsuDQ5qiKUCvnEATUA9/H2.o )
+ [1 of 2] Compiling H2[sig] ( q\H2.hsig, bkpfail22.out\q\q-FjwGsuDQ5qiKUCvnEATUA9\H2.o )
-bkpfail22.bkp:16:9: error:
+bkpfail22.bkp:16:9: error: [GHC-15843]
• Type constructor ‘S’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type S :: *
type S = ()
- Hsig file: type S :: *
- type S = GHC.Types.Bool
- • while checking that badimpl:H2 implements signature H2 in q[H2=badimpl:H2]
+ Hsig file: type S :: *
+ type S = GHC.Types.Bool
+ • While checking that ‘badimpl:H2’ implements signature ‘H2’ in ‘q[H2=badimpl:H2]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail23.stderr b/testsuite/tests/backpack/should_fail/bkpfail23.stderr
index a8144dbde5..d8e492cf55 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail23.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail23.stderr
@@ -1,23 +1,24 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
[2 of 3] Processing h
Instantiating h
- [1 of 1] Compiling H ( h/H.hs, bkpfail23.out/h/H.o )
+ [1 of 1] Compiling H ( h\H.hs, bkpfail23.out\h\H.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[H=h:H]
Instantiating p[H=h:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail23.out/p/p-6KeuBvYi0jvLWqVbkSAZMq/H.o )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkpfail23.out\p\p-6KeuBvYi0jvLWqVbkSAZMq\H.o )
-bkpfail23.bkp:15:9: error:
+bkpfail23.bkp:15:9: error: [GHC-15843]
• Type constructor ‘F’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type F :: * -> *
type F a = ()
- Hsig file: type role F phantom
- type F :: * -> *
- data F a
+ Hsig file: type role F phantom
+ type F :: * -> *
+ data F a
Illegal parameterized type synonym in implementation of abstract data.
- (Try eta reducing your type synonym so that it is nullary.)
- • while checking that h:H implements signature H in p[H=h:H]
+ • While checking that ‘h:H’ implements signature ‘H’ in ‘p[H=h:H]’.
+ Suggested fix:
+ If possible, eta-reduce the type synonym ‘F’ so that it is nullary.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail25.stderr b/testsuite/tests/backpack/should_fail/bkpfail25.stderr
index 9433904ee5..9c483e3593 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail25.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail25.stderr
@@ -1,6 +1,6 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
bkpfail25.bkp:8:18: warning: [GHC-06201] [-Wmissing-methods (in -Wdefault)]
• No explicit implementation for
@@ -8,19 +8,22 @@ bkpfail25.bkp:8:18: warning: [GHC-06201] [-Wmissing-methods (in -Wdefault)]
• In the instance declaration for ‘Functor T’
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, bkpfail25.out/q/H.o )
+ [1 of 1] Compiling H ( q\H.hs, bkpfail25.out\q\H.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[H=q:H]
Instantiating p[H=q:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail25.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/H.o )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkpfail25.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
-bkpfail25.bkp:13:9: error:
+bkpfail25.bkp:13:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: * -> *
type T a = a
- Hsig file: type role T nominal
- type T :: * -> *
- data T a
- • while checking that q:H implements signature H in p[H=q:H]
+ Hsig file: type role T nominal
+ type T :: * -> *
+ data T a
+ Illegal parameterized type synonym in implementation of abstract data.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
+ Suggested fix:
+ If possible, eta-reduce the type synonym ‘T’ so that it is nullary.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail26.stderr b/testsuite/tests/backpack/should_fail/bkpfail26.stderr
index f697f47212..18de9f92b4 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail26.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail26.stderr
@@ -1,23 +1,24 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, bkpfail26.out/q/H.o )
+ [1 of 1] Compiling H ( q\H.hs, bkpfail26.out\q\H.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[H=q:H]
Instantiating p[H=q:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail26.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/H.o )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkpfail26.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
-bkpfail26.bkp:16:9: error:
+bkpfail26.bkp:16:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: * -> *
type T a = [a]
- Hsig file: type role T nominal
- type T :: * -> *
- data T a
+ Hsig file: type role T nominal
+ type T :: * -> *
+ data T a
Illegal parameterized type synonym in implementation of abstract data.
- (Try eta reducing your type synonym so that it is nullary.)
- • while checking that q:H implements signature H in p[H=q:H]
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
+ Suggested fix:
+ If possible, eta-reduce the type synonym ‘T’ so that it is nullary.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail27.stderr b/testsuite/tests/backpack/should_fail/bkpfail27.stderr
index bc5a8c6bd5..d4ae895626 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail27.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail27.stderr
@@ -1,21 +1,21 @@
[1 of 3] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling H ( q/H.hs, bkpfail27.out/q/H.o )
+ [1 of 1] Compiling H ( q\H.hs, bkpfail27.out\q\H.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[H=q:H]
Instantiating p[H=q:H]
- [1 of 2] Compiling H[sig] ( p/H.hsig, bkpfail27.out/p/p-D5Mg3foBSCrDbQDKH4WGSG/H.o )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, bkpfail27.out\p\p-D5Mg3foBSCrDbQDKH4WGSG\H.o )
-bkpfail27.bkp:15:9: error:
+bkpfail27.bkp:15:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
type T = F
- Hsig file: type T :: *
- data T
- Illegal type family application in implementation of abstract data.
- • while checking that q:H implements signature H in p[H=q:H]
+ Hsig file: type T :: *
+ data T
+ Illegal implementation of abstract data: Invalid type family ‘F’.
+ • While checking that ‘q:H’ implements signature ‘H’ in ‘p[H=q:H]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail35.stderr b/testsuite/tests/backpack/should_fail/bkpfail35.stderr
index f72bd23184..fc8cabbe4a 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail35.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail35.stderr
@@ -1,18 +1,18 @@
[1 of 4] Processing p
- [1 of 2] Compiling A[sig] ( p/A.hsig, nothing )
- [2 of 2] Compiling B ( p/B.hs, nothing )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, nothing )
+ [2 of 2] Compiling B ( p\B.hs, nothing )
[2 of 4] Processing q
- [1 of 2] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 2] Compiling A[sig] ( q\A.hsig, nothing )
[2 of 2] Instantiating p
[3 of 4] Processing aimpl
Instantiating aimpl
- [1 of 1] Compiling A ( aimpl/A.hs, bkpfail35.out/aimpl/A.o )
+ [1 of 1] Compiling A ( aimpl\A.hs, bkpfail35.out\aimpl\A.o )
[4 of 4] Processing r
Instantiating r
[1 of 1] Including q[A=aimpl:A]
Instantiating q[A=aimpl:A]
- [1 of 1] Compiling A[sig] ( q/A.hsig, bkpfail35.out/q/q-E72T6bb4XRkIeTPWK2mCKa/A.o )
+ [1 of 1] Compiling A[sig] ( q\A.hsig, bkpfail35.out\q\q-E72T6bb4XRkIeTPWK2mCKa\A.o )
-bkpfail35.out/q/q-E72T6bb4XRkIeTPWK2mCKa/../A.hi:1:1: error: [GHC-93011]
+bkpfail35.out\q\q-E72T6bb4XRkIeTPWK2mCKa\..\A.hi:1:1: error: [GHC-93011]
• ‘y’ is exported by the hsig file, but not exported by the implementing module ‘aimpl:A’
- • while checking that aimpl:A implements signature A in q[A=aimpl:A]
+ • While checking that ‘aimpl:A’ implements signature ‘A’ in ‘q[A=aimpl:A]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail37.stderr b/testsuite/tests/backpack/should_fail/bkpfail37.stderr
index 4158517b28..320e107bf2 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail37.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail37.stderr
@@ -1,17 +1,17 @@
[1 of 3] Processing p
- [1 of 1] Compiling A[sig] ( p/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( p\A.hsig, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling A ( q/A.hs, bkpfail37.out/q/A.o )
+ [1 of 1] Compiling A ( q\A.hs, bkpfail37.out\q\A.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[A=q:A]
Instantiating p[A=q:A]
- [1 of 1] Compiling A[sig] ( p/A.hsig, bkpfail37.out/p/p-HVmFlcYSefiK5n1aDP1v7x/A.o )
+ [1 of 1] Compiling A[sig] ( p\A.hsig, bkpfail37.out\p\p-HVmFlcYSefiK5n1aDP1v7x\A.o )
bkpfail37.bkp:9:9: error: [GHC-93007]
• Identifier ‘op’ has conflicting fixities in the module
and its hsig file
Main module: infixr 4
Hsig file: infixr 6
- • while checking that q:A implements signature A in p[A=q:A]
+ • While checking that ‘q:A’ implements signature ‘A’ in ‘p[A=q:A]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail41.stderr b/testsuite/tests/backpack/should_fail/bkpfail41.stderr
index 6f58345fe7..6732d71574 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail41.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail41.stderr
@@ -1,25 +1,25 @@
[1 of 3] Processing p
- [1 of 2] Compiling A[sig] ( p/A.hsig, nothing )
- [2 of 2] Compiling B[sig] ( p/B.hsig, nothing )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, nothing )
+ [2 of 2] Compiling B[sig] ( p\B.hsig, nothing )
[2 of 3] Processing i
Instantiating i
- [1 of 1] Compiling A ( i/A.hs, bkpfail41.out/i/A.o )
+ [1 of 1] Compiling A ( i\A.hs, bkpfail41.out\i\A.o )
[3 of 3] Processing r
- [1 of 2] Compiling B[sig] ( r/B.hsig, nothing )
+ [1 of 2] Compiling B[sig] ( r\B.hsig, nothing )
[2 of 2] Instantiating p
-bkpfail41.bkp:10:9: error:
+bkpfail41.bkp:10:9: error: [GHC-15843]
• Class ‘C’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type C :: * -> Constraint
class C a where
f :: a -> a
{-# MINIMAL f #-}
- Hsig file: type C :: * -> Constraint
- class C a where
- f :: a -> a
- default f :: a -> a
- The methods do not match:
- The default methods associated with ‘f’ are not compatible
- The MINIMAL pragmas are not compatible
- • while checking that i:A implements signature A in p[A=i:A,B=<B>]
+ Hsig file: type C :: * -> Constraint
+ class C a where
+ f :: a -> a
+ default f :: a -> a
+ The class methods do not match:
+ The default methods associated with ‘f’ are not compatible.
+ The MINIMAL pragmas are not compatible.
+ • While checking that ‘i:A’ implements signature ‘A’ in ‘p[A=i:A,B=<B>]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail42.stderr b/testsuite/tests/backpack/should_fail/bkpfail42.stderr
index 0dfef9355f..b8c6fb4c34 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail42.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail42.stderr
@@ -1,17 +1,20 @@
[1 of 2] Processing p
- [1 of 1] Compiling A[sig] ( p/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( p\A.hsig, nothing )
[2 of 2] Processing q
- [1 of 2] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 2] Compiling A[sig] ( q\A.hsig, nothing )
-bkpfail42.bkp:10:9: error:
+bkpfail42.bkp:10:9: error: [GHC-15843]
• Type constructor ‘F’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type F :: * -> *
type family F a where
F a = Int
- Hsig file: type F :: * -> *
- type family F a where
- F a = Bool
+ Hsig file: type F :: * -> *
+ type family F a where
+ F a = Bool
+ Type family equations do not match:
+ The second equations do not match.
+ The equation right-hand sides don't match.
• while merging the signatures from:
• p[A=<A>]:A
• ...and the local signature for A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail43.stderr b/testsuite/tests/backpack/should_fail/bkpfail43.stderr
index 1231788023..72e48315a0 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail43.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail43.stderr
@@ -17,4 +17,4 @@ bkpfail43.out\p\p-HVmFlcYSefiK5n1aDP1v7x\..\A.hi:1:1: error: [GHC-39999]
-- Defined at bkpfail43.bkp:3:18
is provided by ‘q:A’
(maybe you haven't applied a function to enough arguments?)
- • while checking that q:A implements signature A in p[A=q:A]
+ • While checking that ‘q:A’ implements signature ‘A’ in ‘p[A=q:A]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail45.stderr b/testsuite/tests/backpack/should_fail/bkpfail45.stderr
index e2b4236aab..5049f5f4b3 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail45.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail45.stderr
@@ -1,24 +1,23 @@
[1 of 3] Processing p
- [1 of 2] Compiling A[sig] ( p/A.hsig, nothing )
- [2 of 2] Compiling B ( p/B.hs, nothing )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, nothing )
+ [2 of 2] Compiling B ( p\B.hs, nothing )
[2 of 3] Processing a
Instantiating a
- [1 of 1] Compiling A ( a/A.hs, bkpfail45.out/a/A.o )
+ [1 of 1] Compiling A ( a\A.hs, bkpfail45.out\a\A.o )
[3 of 3] Processing q
Instantiating q
[1 of 1] Including p[A=a:A]
Instantiating p[A=a:A]
- [1 of 2] Compiling A[sig] ( p/A.hsig, bkpfail45.out/p/p-KvF5Y9pEVY39j64PHPNj9i/A.o )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, bkpfail45.out\p\p-KvF5Y9pEVY39j64PHPNj9i\A.o )
-bkpfail45.bkp:14:9: error:
+bkpfail45.bkp:14:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type role T phantom
type T :: * -> *
data T a = T
- Hsig file: type role T nominal
- type T :: * -> *
- data T a = T
+ Hsig file: type role T nominal
+ type T :: * -> *
+ data T a = T
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
- • while checking that a:A implements signature A in p[A=a:A]
+ • While checking that ‘a:A’ implements signature ‘A’ in ‘p[A=a:A]’.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail46.stderr b/testsuite/tests/backpack/should_fail/bkpfail46.stderr
index 5ab1a5fddb..9b387a39d7 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail46.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail46.stderr
@@ -1,22 +1,23 @@
[1 of 3] Processing p
- [1 of 2] Compiling A[sig] ( p/A.hsig, nothing )
- [2 of 2] Compiling M ( p/M.hs, nothing )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, nothing )
+ [2 of 2] Compiling M ( p\M.hs, nothing )
[2 of 3] Processing q
Instantiating q
- [1 of 1] Compiling A ( q/A.hs, bkpfail46.out/q/A.o )
+ [1 of 1] Compiling A ( q\A.hs, bkpfail46.out\q\A.o )
[3 of 3] Processing r
Instantiating r
[1 of 1] Including p[A=q:A]
Instantiating p[A=q:A]
- [1 of 2] Compiling A[sig] ( p/A.hsig, bkpfail46.out/p/p-HVmFlcYSefiK5n1aDP1v7x/A.o )
+ [1 of 2] Compiling A[sig] ( p\A.hsig, bkpfail46.out\p\p-HVmFlcYSefiK5n1aDP1v7x\A.o )
-bkpfail46.bkp:16:9: error:
+bkpfail46.bkp:16:9: error: [GHC-15843]
• Type constructor ‘K’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type K :: * -> Constraint
type K a = GHC.Classes.Eq a :: Constraint
- Hsig file: type K :: * -> Constraint
- class K a
+ Hsig file: type K :: * -> Constraint
+ class K a
Illegal parameterized type synonym in implementation of abstract data.
- (Try eta reducing your type synonym so that it is nullary.)
- • while checking that q:A implements signature A in p[A=q:A]
+ • While checking that ‘q:A’ implements signature ‘A’ in ‘p[A=q:A]’.
+ Suggested fix:
+ If possible, eta-reduce the type synonym ‘K’ so that it is nullary.
diff --git a/testsuite/tests/backpack/should_fail/bkpfail47.stderr b/testsuite/tests/backpack/should_fail/bkpfail47.stderr
index 86453f28ea..adb764be16 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail47.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail47.stderr
@@ -1,22 +1,22 @@
[1 of 3] Processing p
- [1 of 1] Compiling A[sig] ( p/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( p\A.hsig, nothing )
[2 of 3] Processing q
- [1 of 1] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 1] Compiling A[sig] ( q\A.hsig, nothing )
[3 of 3] Processing r
- [1 of 3] Compiling A[sig] ( r/A.hsig, nothing )
+ [1 of 3] Compiling A[sig] ( r\A.hsig, nothing )
-bkpfail47.bkp:10:9: error:
+bkpfail47.bkp:10:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type role T representational nominal
type T :: * -> * -> *
data T a b = MkT
- Hsig file: type role T nominal representational
- type T :: * -> * -> *
- data T a b
+ Hsig file: type role T nominal representational
+ type T :: * -> * -> *
+ data T a b
The roles are not compatible:
- Main module: [representational, nominal]
- Hsig file: [nominal, representational]
+ Main module: [nominal, representational]
+ Hsig file: [representational, nominal]
• while merging the signatures from:
• p[A=<A>]:A
• q[A=<A>]:A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail50.stderr b/testsuite/tests/backpack/should_fail/bkpfail50.stderr
index 2d4d171ea7..0ca6328193 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail50.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail50.stderr
@@ -1,16 +1,16 @@
[1 of 2] Processing p
- [1 of 1] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 1] Compiling H[sig] ( p\H.hsig, nothing )
[2 of 2] Processing q
- [1 of 2] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 2] Compiling A[sig] ( q\A.hsig, nothing )
-bkpfail50.bkp:7:9: error:
+bkpfail50.bkp:7:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
data T = T Bool
- Hsig file: type T :: *
- data T = T Int
- The constructors do not match: The types for ‘T’ differ
+ Hsig file: type T :: *
+ data T = T Int
+ The constructors do not match: The types for ‘T’ differ.
• while merging the signatures from:
• p[H=<A>]:H
• ...and the local signature for A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail52.stderr b/testsuite/tests/backpack/should_fail/bkpfail52.stderr
index 888434e33c..4a920bf65c 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail52.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail52.stderr
@@ -1,16 +1,16 @@
[1 of 2] Processing p
- [1 of 1] Compiling H[sig] ( p/H.hsig, nothing )
+ [1 of 1] Compiling H[sig] ( p\H.hsig, nothing )
[2 of 2] Processing q
- [1 of 3] Compiling B ( q/B.hs, nothing )
- [2 of 3] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 3] Compiling B ( q\B.hs, nothing )
+ [2 of 3] Compiling A[sig] ( q\A.hsig, nothing )
-bkpfail52.bkp:10:9: error:
+bkpfail52.bkp:10:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
type T = B.T
- Hsig file: type T :: *
- data T = T Int
+ Hsig file: type T :: *
+ data T = T Int
• while merging the signatures from:
• p[H=<A>]:H
• ...and the local signature for A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail53.stderr b/testsuite/tests/backpack/should_fail/bkpfail53.stderr
index b694bc57ff..a5939ff072 100644
--- a/testsuite/tests/backpack/should_fail/bkpfail53.stderr
+++ b/testsuite/tests/backpack/should_fail/bkpfail53.stderr
@@ -1,17 +1,17 @@
[1 of 2] Processing p
- [1 of 2] Compiling H[sig] ( p/H.hsig, nothing )
- [2 of 2] Compiling I ( p/I.hs, nothing )
+ [1 of 2] Compiling H[sig] ( p\H.hsig, nothing )
+ [2 of 2] Compiling I ( p\I.hs, nothing )
[2 of 2] Processing q
- [1 of 4] Compiling B ( q/B.hs, nothing )
- [2 of 4] Compiling A[sig] ( q/A.hsig, nothing )
+ [1 of 4] Compiling B ( q\B.hs, nothing )
+ [2 of 4] Compiling A[sig] ( q\A.hsig, nothing )
-bkpfail53.bkp:15:9: error:
+bkpfail53.bkp:15:9: error: [GHC-15843]
• Type constructor ‘T’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type T :: *
type T = B.T
- Hsig file: type T :: *
- data T = T Int
+ Hsig file: type T :: *
+ data T = T Int
• while merging the signatures from:
• p[H=<A>]:H
• ...and the local signature for A
diff --git a/testsuite/tests/backpack/should_fail/bkpfail54.bkp b/testsuite/tests/backpack/should_fail/bkpfail54.bkp
new file mode 100644
index 0000000000..4248390c91
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/bkpfail54.bkp
@@ -0,0 +1,47 @@
+
+-- Check that we do something sensible when we implement
+-- abstract data with a quantified type.
+
+{-# LANGUAGE StandaloneKindSignatures #-}
+{-# LANGUAGE TypeFamilies #-}
+
+unit p where
+ module M where
+ import Data.Kind ( Type, Constraint )
+
+ type C :: Type -> Constraint
+ class C a where
+ type family F a :: Type
+
+unit q where
+ dependency p
+ signature H where
+ data T1
+ data T2
+ data T3
+ module N where
+ import M ( C(F) )
+ import H ( T1, T2, T3 )
+
+ instance C T1 where
+ type F T1 = T2
+ instance C T2 where
+ type F T2 = T3
+ instance C T3 where
+ type F T3 = T1
+
+unit r where
+ dependency p
+ module H where
+
+ class C2 a where {}
+ data S = MkS
+
+ type T1 = forall a. a -> a
+ type T2 = forall a. C2 a => a
+ type T3 = C2 S => S -> S
+
+unit s where
+ dependency p
+ dependency r
+ dependency q[H=r:H]
diff --git a/testsuite/tests/backpack/should_fail/bkpfail54.stderr b/testsuite/tests/backpack/should_fail/bkpfail54.stderr
new file mode 100644
index 0000000000..8fd391624e
--- /dev/null
+++ b/testsuite/tests/backpack/should_fail/bkpfail54.stderr
@@ -0,0 +1,51 @@
+[1 of 4] Processing p
+ Instantiating p
+ [1 of 1] Compiling M ( p\M.hs, bkpfail54.out\p\M.o )
+[2 of 4] Processing q
+ [1 of 2] Compiling H[sig] ( q\H.hsig, nothing )
+ [2 of 2] Compiling N ( q\N.hs, nothing )
+[3 of 4] Processing r
+ Instantiating r
+ [1 of 1] Including p
+ [1 of 1] Compiling H ( r\H.hs, bkpfail54.out\r\H.o )
+[4 of 4] Processing s
+ Instantiating s
+ [1 of 3] Including p
+ [2 of 3] Including r
+ [3 of 3] Including q[H=r:H]
+ Instantiating q[H=r:H]
+ [1 of 1] Including p
+ [1 of 2] Compiling H[sig] ( q\H.hsig, bkpfail54.out\q\q-EsMFZGC3QiBIz4krwt67aW\H.o )
+
+bkpfail54.bkp:40:5: error: [GHC-15843]
+ • Type constructor ‘T1’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T1 :: *
+ type T1 = forall a. a -> a
+ Hsig file: type T1 :: *
+ data T1
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. a -> a.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
+
+bkpfail54.bkp:41:5: error: [GHC-15843]
+ • Type constructor ‘T2’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T2 :: *
+ type T2 = forall a. C2 a => a
+ Hsig file: type T2 :: *
+ data T2
+ Illegal implementation of abstract data:
+ Invalid polymorphic type: forall a. C2 a => a.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
+
+bkpfail54.bkp:42:5: error: [GHC-15843]
+ • Type constructor ‘T3’ has conflicting definitions in the module
+ and its hsig file.
+ Main module: type T3 :: *
+ type T3 = C2 S => S -> S
+ Hsig file: type T3 :: *
+ data T3
+ Illegal implementation of abstract data:
+ Invalid qualified type: C2 S => S -> S.
+ • While checking that ‘r:H’ implements signature ‘H’ in ‘q[H=r:H]’.
diff --git a/testsuite/tests/count-deps/CountDepsAst.stdout b/testsuite/tests/count-deps/CountDepsAst.stdout
index 549f9bd371..ac861f6135 100644
--- a/testsuite/tests/count-deps/CountDepsAst.stdout
+++ b/testsuite/tests/count-deps/CountDepsAst.stdout
@@ -244,6 +244,7 @@ GHC.Types.SrcLoc
GHC.Types.Target
GHC.Types.Tickish
GHC.Types.TyThing
+GHC.Types.TyThing.Ppr
GHC.Types.TypeEnv
GHC.Types.Unique
GHC.Types.Unique.DFM
diff --git a/testsuite/tests/count-deps/CountDepsParser.stdout b/testsuite/tests/count-deps/CountDepsParser.stdout
index 639d765427..828f5c6cae 100644
--- a/testsuite/tests/count-deps/CountDepsParser.stdout
+++ b/testsuite/tests/count-deps/CountDepsParser.stdout
@@ -251,6 +251,7 @@ GHC.Types.SrcLoc
GHC.Types.Target
GHC.Types.Tickish
GHC.Types.TyThing
+GHC.Types.TyThing.Ppr
GHC.Types.TypeEnv
GHC.Types.Unique
GHC.Types.Unique.DFM
diff --git a/testsuite/tests/driver/T14075/T14075.stderr b/testsuite/tests/driver/T14075/T14075.stderr
index 9c7bb7e359..c09cf120e3 100644
--- a/testsuite/tests/driver/T14075/T14075.stderr
+++ b/testsuite/tests/driver/T14075/T14075.stderr
@@ -1,7 +1,7 @@
-F.hs-boot:5:1: error:
- ‘F.F’ is exported by the hs-boot file, but not exported by the module
+F.hs-boot:5:1: error: [GHC-91999]
+ ‘F.F’ is exported by the hs-boot file, but not exported by the implementing module.
-F.hs-boot:6:10: error:
+F.hs-boot:6:10: error: [GHC-79857]
instance O.O F.F
- is defined in the hs-boot file, but not in the module itself
+ is defined in the hs-boot file, but not in the implementing module.
diff --git a/testsuite/tests/ghci/scripts/T7894.stderr b/testsuite/tests/ghci/scripts/T7894.stderr
index 17f7171bad..4addbb5657 100644
--- a/testsuite/tests/ghci/scripts/T7894.stderr
+++ b/testsuite/tests/ghci/scripts/T7894.stderr
@@ -1,2 +1,2 @@
-<interactive>:1:1: error: Not in scope: ‘Data.Maybe.->’
+<interactive>:1:1: error: [GHC-76037] Not in scope: ‘Data.Maybe.->’
diff --git a/testsuite/tests/ghci/scripts/T9140.stdout b/testsuite/tests/ghci/scripts/T9140.stdout
index dbaa905b6f..29219a2312 100644
--- a/testsuite/tests/ghci/scripts/T9140.stdout
+++ b/testsuite/tests/ghci/scripts/T9140.stdout
@@ -7,6 +7,6 @@
You can't mix polymorphic and unlifted bindings: a = (# 1, 3 #)
Suggested fix: Add a type signature.
-<interactive>:1:1: error:
+<interactive>:1:1: error: [GHC-17999]
GHCi can't bind a variable of unlifted type:
a :: (# Integer, Integer #)
diff --git a/testsuite/tests/ghci/scripts/ghci034.stderr b/testsuite/tests/ghci/scripts/ghci034.stderr
index 3d4b95c96c..fdb9f039d6 100644
--- a/testsuite/tests/ghci/scripts/ghci034.stderr
+++ b/testsuite/tests/ghci/scripts/ghci034.stderr
@@ -1,2 +1,3 @@
-<interactive>:1:1: error: Not in scope: ‘thisIsNotDefined’
+<interactive>:1:1: error: [GHC-76037]
+ Not in scope: ‘thisIsNotDefined’
diff --git a/testsuite/tests/ghci/should_fail/T18052b.stderr b/testsuite/tests/ghci/should_fail/T18052b.stderr
index 30d2a389ab..6298f62533 100644
--- a/testsuite/tests/ghci/should_fail/T18052b.stderr
+++ b/testsuite/tests/ghci/should_fail/T18052b.stderr
@@ -1,3 +1,3 @@
-<interactive>:1:1: error:
+<interactive>:1:1: error: [GHC-17999]
GHCi can't bind a variable of unlifted type: (%%%) :: GHC.Prim.Int#
diff --git a/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr b/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
index 28190937a4..f02c4d94bc 100644
--- a/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
+++ b/testsuite/tests/indexed-types/should_fail/ClosedFam3.stderr
@@ -1,34 +1,39 @@
-ClosedFam3.hs-boot:8:1: error:
+ClosedFam3.hs-boot:8:1: error: [GHC-15843]
Type constructor ‘Foo’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type Foo :: * -> *
type family Foo a where
Foo Int = Bool
Foo Double = Char
- Boot file: type Foo :: * -> *
+ Boot file: type Foo :: * -> *
type family Foo a where
Foo Int = Bool
+ Type family equations do not match:
+ The number of equations differs.
-ClosedFam3.hs-boot:11:1: error:
+ClosedFam3.hs-boot:11:1: error: [GHC-15843]
Type constructor ‘Bar’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type Bar :: * -> *
type family Bar a where
Bar Int = Bool
Bar Double = Double
- Boot file: type Bar :: * -> *
+ Boot file: type Bar :: * -> *
type family Bar a where
Bar Int = Bool
Bar Double = Char
+ Type family equations do not match:
+ The third equations do not match.
+ The equation right-hand sides don't match.
-ClosedFam3.hs-boot:15:1: error:
+ClosedFam3.hs-boot:15:1: error: [GHC-15843]
Type constructor ‘Baz’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type Baz :: * -> *
type family Baz a where
Baz Int = Bool
- Boot file: type Baz :: forall k. k -> *
+ Boot file: type Baz :: forall k. k -> *
type family Baz a where
Baz Int = Bool
- The types have different kinds
+ The types have different kinds.
diff --git a/testsuite/tests/indexed-types/should_fail/HsBootFam.stderr b/testsuite/tests/indexed-types/should_fail/HsBootFam.stderr
index a6950a3ade..2a75d81bdb 100644
--- a/testsuite/tests/indexed-types/should_fail/HsBootFam.stderr
+++ b/testsuite/tests/indexed-types/should_fail/HsBootFam.stderr
@@ -1,5 +1,5 @@
[1 of 3] Compiling HsBootFam_aux[boot] ( HsBootFam_aux.hs-boot, HsBootFam_aux.o-boot )
-HsBootFam_aux.hs-boot:6:1: [GHC-06203]
- Illegal family instance in hs-boot file
- In the type instance declaration for ‘F’
+HsBootFam_aux.hs-boot:6:1: error: [GHC-58195]
+ • Illegal family instance in an hs-boot file.
+ • In the type instance declaration for ‘F’
diff --git a/testsuite/tests/module/T414.stderr b/testsuite/tests/module/T414.stderr
index 70c0cdecf7..55fc76508b 100644
--- a/testsuite/tests/module/T414.stderr
+++ b/testsuite/tests/module/T414.stderr
@@ -1,2 +1,3 @@
-T414.hs:1:1: The IO action ‘main’ is not exported by module ‘Main’
+T414.hs:1:1: error: [GHC-67120]
+ The IO action ‘main’ is not exported by module ‘Main’
diff --git a/testsuite/tests/module/T7765.stderr b/testsuite/tests/module/T7765.stderr
index bc8377d20d..ba69bb0634 100644
--- a/testsuite/tests/module/T7765.stderr
+++ b/testsuite/tests/module/T7765.stderr
@@ -1,2 +1,3 @@
-T7765.hs:1:1: The IO action ‘main’ is not defined in module ‘Main’
+T7765.hs:1:1: error: [GHC-67120]
+ The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/parser/should_fail/readFail021.stderr b/testsuite/tests/parser/should_fail/readFail021.stderr
index fe9c64b7e7..40b6d9e370 100644
--- a/testsuite/tests/parser/should_fail/readFail021.stderr
+++ b/testsuite/tests/parser/should_fail/readFail021.stderr
@@ -1,3 +1,3 @@
-readFail021.hs:1:1:
+readFail021.hs:1:1: error: [GHC-67120]
The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/rename/should_compile/rn055.stderr b/testsuite/tests/rename/should_compile/rn055.stderr
index 93c74ff6a8..8ac45051d0 100644
--- a/testsuite/tests/rename/should_compile/rn055.stderr
+++ b/testsuite/tests/rename/should_compile/rn055.stderr
@@ -1,3 +1,3 @@
-rn055.hs:1:1: warning: [-Wimplicit-prelude]
- Module `Prelude' implicitly imported
+rn055.hs:1:1: warning: [GHC-20540] [-Wimplicit-prelude]
+ Module ‘Prelude’ implicitly imported.
diff --git a/testsuite/tests/rename/should_fail/T13839b.stderr b/testsuite/tests/rename/should_fail/T13839b.stderr
index 93846bd410..8d969ee454 100644
--- a/testsuite/tests/rename/should_fail/T13839b.stderr
+++ b/testsuite/tests/rename/should_fail/T13839b.stderr
@@ -1,3 +1,3 @@
-T13839b.hs:1:1: error:
+T13839b.hs:1:1: error: [GHC-67120]
The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/rename/should_fail/T19781.stderr b/testsuite/tests/rename/should_fail/T19781.stderr
index ffe4a4d329..04e16481ac 100644
--- a/testsuite/tests/rename/should_fail/T19781.stderr
+++ b/testsuite/tests/rename/should_fail/T19781.stderr
@@ -1,6 +1,3 @@
-T19781_A.hs-boot:4:1: error: [GHC-11247]
- Bindings in hs-boot files are not allowed
-
-T19781_A.hs-boot:7:1: error: [GHC-11247]
- Bindings in hs-boot files are not allowed
+T19781_A.hs-boot:4:1: error: [GHC-58195]
+ Illegal binding in an hs-boot file.
diff --git a/testsuite/tests/rename/should_fail/rnfail007.stderr b/testsuite/tests/rename/should_fail/rnfail007.stderr
index 98f96f1e02..90ae9e7659 100644
--- a/testsuite/tests/rename/should_fail/rnfail007.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail007.stderr
@@ -1,3 +1,3 @@
-rnfail007.hs:1:1:
+rnfail007.hs:1:1: error: [GHC-67120]
The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/rename/should_fail/rnfail047.stderr b/testsuite/tests/rename/should_fail/rnfail047.stderr
index 8f7304aa59..8e68027e29 100644
--- a/testsuite/tests/rename/should_fail/rnfail047.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail047.stderr
@@ -1,3 +1,3 @@
-RnFail047_A.hs-boot:5:1: error:
- ‘RnFail047_A.y’ is exported by the hs-boot file, but not exported by the module
+RnFail047_A.hs-boot:5:1: error: [GHC-91999]
+ ‘RnFail047_A.y’ is exported by the hs-boot file, but not exported by the implementing module.
diff --git a/testsuite/tests/rename/should_fail/rnfail055.stderr b/testsuite/tests/rename/should_fail/rnfail055.stderr
index 787009a4c6..1077a6eb10 100644
--- a/testsuite/tests/rename/should_fail/rnfail055.stderr
+++ b/testsuite/tests/rename/should_fail/rnfail055.stderr
@@ -5,116 +5,117 @@ RnFail055.hs:2:73: warning: [-Wdeprecated-flags (in -Wdefault)]
RnFail055.hs-boot:2:73: warning: [-Wdeprecated-flags (in -Wdefault)]
-XDatatypeContexts is deprecated: It was widely considered a misfeature, and has been removed from the Haskell language.
-RnFail055.hs-boot:5:1: error:
+RnFail055.hs-boot:5:1: error: [GHC-11890]
Identifier ‘f1’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: f1 :: Int -> Float
- Boot file: f1 :: Float -> Int
- The two types are different
+ Boot file: f1 :: Float -> Int
+ The two types are different.
-RnFail055.hs-boot:7:1: error:
+RnFail055.hs-boot:7:1: error: [GHC-15843]
Type constructor ‘S1’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type S1 :: * -> * -> *
type S1 a b = (a, b)
- Boot file: type S1 :: * -> * -> * -> *
+ Boot file: type S1 :: * -> * -> * -> *
type S1 a b c = (a, b)
- The types have different kinds
+ The types have different kinds.
-RnFail055.hs-boot:9:1: error:
+RnFail055.hs-boot:9:1: error: [GHC-15843]
Type constructor ‘S2’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type S2 :: * -> * -> *
type S2 a b = forall a1. (a1, b)
- Boot file: type S2 :: * -> * -> *
+ Boot file: type S2 :: * -> * -> *
type S2 a b = forall b1. (a, b1)
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
+ NB: roles on abstract types default to ‘representational’ in hs-boot files.
-RnFail055.hs-boot:13:1: error:
+RnFail055.hs-boot:13:1: error: [GHC-15843]
Type constructor ‘T1’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type T1 :: * -> * -> *
data T1 a b = T1 [b] [a]
- Boot file: type T1 :: * -> * -> *
+ Boot file: type T1 :: * -> * -> *
data T1 a b = T1 [a] [b]
- The constructors do not match: The types for ‘T1’ differ
+ The constructors do not match: The types for ‘T1’ differ.
-RnFail055.hs-boot:15:1: error:
+RnFail055.hs-boot:15:1: error: [GHC-15843]
Type constructor ‘T2’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type role T2 representational nominal
type T2 :: * -> * -> *
data Eq b => T2 a b = T2 a
- Boot file: type role T2 nominal phantom
+ Boot file: type role T2 nominal phantom
type T2 :: * -> * -> *
data Eq a => T2 a b = T2 a
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
- The datatype contexts do not match
- The constructors do not match: The types for ‘T2’ differ
+ NB: roles on abstract types default to ‘representational’ in hs-boot files.
+ The datatype contexts do not match.
+ The constructors do not match: The types for ‘T2’ differ.
-RnFail055.hs-boot:17:11: error:
- ‘T3’ is exported by the hs-boot file, but not exported by the module
+RnFail055.hs-boot:17:11: error: [GHC-91999]
+ ‘T3’ is exported by the hs-boot file, but not exported by the implementing module.
-RnFail055.hs-boot:18:12: error:
- ‘T3'’ is exported by the hs-boot file, but not exported by the module
+RnFail055.hs-boot:18:12: error: [GHC-91999]
+ ‘T3'’ is exported by the hs-boot file, but not exported by the implementing module.
-RnFail055.hs-boot:22:1: error:
+RnFail055.hs-boot:22:1: error: [GHC-15843]
Type constructor ‘T5’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type T5 :: * -> *
data T5 a = T5 {field5 :: a}
- Boot file: type T5 :: * -> *
+ Boot file: type T5 :: * -> *
data T5 a = T5 a
The constructors do not match:
- The record label lists for ‘T5’ differ
+ The record label lists for ‘T5’ differ.
-RnFail055.hs-boot:24:1: error:
+RnFail055.hs-boot:24:1: error: [GHC-15843]
Type constructor ‘T6’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type T6 :: *
data T6 = T6 Int
- Boot file: type T6 :: *
+ Boot file: type T6 :: *
data T6 = T6 !Int
The constructors do not match:
- The strictness annotations for ‘T6’ differ
+ The strictness annotations for ‘T6’ differ.
-RnFail055.hs-boot:26:1: error:
+RnFail055.hs-boot:26:1: error: [GHC-15843]
Type constructor ‘T7’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type role T7 phantom
type T7 :: * -> *
data T7 a = forall a1. T7 a1
- Boot file: type T7 :: * -> *
+ Boot file: type T7 :: * -> *
data T7 a = forall b. T7 a
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
- The constructors do not match: The types for ‘T7’ differ
+ NB: roles on abstract types default to ‘representational’ in hs-boot files.
+ The constructors do not match: The types for ‘T7’ differ.
-RnFail055.hs-boot:28:22: error:
- ‘RnFail055.m1’ is exported by the hs-boot file, but not exported by the module
+RnFail055.hs-boot:28:22: error: [GHC-91999]
+ ‘RnFail055.m1’ is exported by the hs-boot file, but not exported by the implementing module.
-RnFail055.hs-boot:29:1: error:
+RnFail055.hs-boot:29:1: error: [GHC-15843]
Class ‘C2’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type C2 :: * -> * -> Constraint
class C2 a b where
m2 :: a -> b
m2' :: a -> b
{-# MINIMAL m2, m2' #-}
- Boot file: type C2 :: * -> * -> Constraint
+ Boot file: type C2 :: * -> * -> Constraint
class C2 a b where
m2 :: a -> b
{-# MINIMAL m2 #-}
- The methods do not match: There are different numbers of methods
- The MINIMAL pragmas are not compatible
+ The class methods do not match:
+ The number of class methods differs.
+ The MINIMAL pragmas are not compatible.
-RnFail055.hs-boot:30:1: error:
+RnFail055.hs-boot:30:1: error: [GHC-15843]
Class ‘C3’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type C3 :: * -> Constraint
class (Eq a, Ord a) => C3 a
- Boot file: type C3 :: * -> Constraint
+ Boot file: type C3 :: * -> Constraint
class (Ord a, Eq a) => C3 a
- The class constraints do not match
+ The superclass constraints do not match.
diff --git a/testsuite/tests/rep-poly/RepPolyBackpack3.stderr b/testsuite/tests/rep-poly/RepPolyBackpack3.stderr
index 5b187eb186..a32c868f28 100644
--- a/testsuite/tests/rep-poly/RepPolyBackpack3.stderr
+++ b/testsuite/tests/rep-poly/RepPolyBackpack3.stderr
@@ -9,12 +9,12 @@
Instantiating sig[Sig=impl:Impl]
[1 of 1] Compiling Sig[sig] ( sig\Sig.hsig, RepPolyBackpack3.out\sig\sig-Absk5cIXTXe6UYhGMYGber\Sig.o )
-RepPolyBackpack3.bkp:17:5: error:
+RepPolyBackpack3.bkp:17:5: error: [GHC-15843]
• Type constructor ‘Rep’ has conflicting definitions in the module
- and its hsig file
+ and its hsig file.
Main module: type Rep :: GHC.Types.RuntimeRep
type Rep = T :: GHC.Types.RuntimeRep
- Hsig file: type Rep :: GHC.Types.RuntimeRep
- data Rep
- Illegal type family application in implementation of abstract data.
- • while checking that impl:Impl implements signature Sig in sig[Sig=impl:Impl]
+ Hsig file: type Rep :: GHC.Types.RuntimeRep
+ data Rep
+ Illegal implementation of abstract data: Invalid type family ‘T’.
+ • While checking that ‘impl:Impl’ implements signature ‘Sig’ in ‘sig[Sig=impl:Impl]’.
diff --git a/testsuite/tests/roles/should_fail/Roles12.stderr b/testsuite/tests/roles/should_fail/Roles12.stderr
index b4d7499fe9..99eb45fd96 100644
--- a/testsuite/tests/roles/should_fail/Roles12.stderr
+++ b/testsuite/tests/roles/should_fail/Roles12.stderr
@@ -1,11 +1,11 @@
-Roles12.hs:6:1: error:
+Roles12.hs:6:1: error: [GHC-15843]
Type constructor ‘T’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type role T phantom
type T :: * -> *
data T a
- Boot file: type T :: * -> *
+ Boot file: type T :: * -> *
data T a
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
+ NB: roles on abstract types default to ‘representational’ in hs-boot files.
diff --git a/testsuite/tests/roles/should_fail/T9204.stderr b/testsuite/tests/roles/should_fail/T9204.stderr
index c54df4870c..33f638578e 100644
--- a/testsuite/tests/roles/should_fail/T9204.stderr
+++ b/testsuite/tests/roles/should_fail/T9204.stderr
@@ -1,11 +1,11 @@
-T9204.hs:7:1: error:
+T9204.hs:7:1: error: [GHC-15843]
Type constructor ‘D’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type role D phantom
type D :: * -> *
data D a
- Boot file: type D :: * -> *
+ Boot file: type D :: * -> *
data D a
The roles do not match.
- Roles on abstract types default to ‘representational’ in boot files.
+ NB: roles on abstract types default to ‘representational’ in hs-boot files.
diff --git a/testsuite/tests/typecheck/T12441/T12441.stderr b/testsuite/tests/typecheck/T12441/T12441.stderr
index fe6b471d52..a585a6babb 100644
--- a/testsuite/tests/typecheck/T12441/T12441.stderr
+++ b/testsuite/tests/typecheck/T12441/T12441.stderr
@@ -1,10 +1,10 @@
-[1 of 3] Compiling T12441[boot] ( T12441.hs-boot, T12441.o-boot )
-[2 of 3] Compiling T12441A ( T12441A.hs, T12441A.o )
-[3 of 3] Compiling T12441 ( T12441.hs, T12441.o )
-
-T12441.hs-boot:3:1:
- Identifier ‘f’ has conflicting definitions in the module
- and its hs-boot file
- Main module: f :: forall b a. (a, b)
- Boot file: f :: forall a b. (a, b)
- The two types are different
+[1 of 3] Compiling T12441[boot] ( T12441.hs-boot, T12441.o-boot )
+[2 of 3] Compiling T12441A ( T12441A.hs, T12441A.o )
+[3 of 3] Compiling T12441 ( T12441.hs, T12441.o )
+
+T12441.hs-boot:3:1: error: [GHC-11890]
+ Identifier ‘f’ has conflicting definitions in the module
+ and its hs-boot file.
+ Main module: f :: forall b a. (a, b)
+ Boot file: f :: forall a b. (a, b)
+ The two types are different.
diff --git a/testsuite/tests/typecheck/should_fail/T12035.stderr b/testsuite/tests/typecheck/should_fail/T12035.stderr
index 375b94c95a..b1bce2d3d0 100644
--- a/testsuite/tests/typecheck/should_fail/T12035.stderr
+++ b/testsuite/tests/typecheck/should_fail/T12035.stderr
@@ -1,8 +1,8 @@
-T12035.hs-boot:2:1: error:
+T12035.hs-boot:2:1: error: [GHC-15843]
Type constructor ‘T’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type T :: *
type T = Bool
- Boot file: type T :: *
+ Boot file: type T :: *
data T
diff --git a/testsuite/tests/typecheck/should_fail/T12035j.stderr b/testsuite/tests/typecheck/should_fail/T12035j.stderr
index 375b94c95a..b1bce2d3d0 100644
--- a/testsuite/tests/typecheck/should_fail/T12035j.stderr
+++ b/testsuite/tests/typecheck/should_fail/T12035j.stderr
@@ -1,8 +1,8 @@
-T12035.hs-boot:2:1: error:
+T12035.hs-boot:2:1: error: [GHC-15843]
Type constructor ‘T’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type T :: *
type T = Bool
- Boot file: type T :: *
+ Boot file: type T :: *
data T
diff --git a/testsuite/tests/typecheck/should_fail/T12042.stderr b/testsuite/tests/typecheck/should_fail/T12042.stderr
index ae3cf33ea7..323c5e3693 100644
--- a/testsuite/tests/typecheck/should_fail/T12042.stderr
+++ b/testsuite/tests/typecheck/should_fail/T12042.stderr
@@ -2,10 +2,10 @@
[2 of 3] Compiling T12042a ( T12042a.hs, T12042a.o )
[3 of 3] Compiling T12042 ( T12042.hs, T12042.o )
-T12042.hs-boot:2:1: error:
+T12042.hs-boot:2:1: error: [GHC-15843]
Type constructor ‘S’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type S :: *
type S = R
- Boot file: type S :: *
+ Boot file: type S :: *
data S
diff --git a/testsuite/tests/typecheck/should_fail/T16453E1.stderr b/testsuite/tests/typecheck/should_fail/T16453E1.stderr
index d435ab8e1e..082a1cbc4d 100644
--- a/testsuite/tests/typecheck/should_fail/T16453E1.stderr
+++ b/testsuite/tests/typecheck/should_fail/T16453E1.stderr
@@ -1,2 +1,3 @@
-T16453E1.hs:1:1: error:
+
+T16453E1.hs:1:1: error: [GHC-67120]
The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/typecheck/should_fail/T19397E3.stderr b/testsuite/tests/typecheck/should_fail/T19397E3.stderr
index 2359ec171a..b6f692f84d 100644
--- a/testsuite/tests/typecheck/should_fail/T19397E3.stderr
+++ b/testsuite/tests/typecheck/should_fail/T19397E3.stderr
@@ -1,3 +1,3 @@
-T19397E3.hs:1:1: error:
+T19397E3.hs:1:1: error: [GHC-67120]
The main IO action ‘foo’ is not defined in module ‘Main’
diff --git a/testsuite/tests/typecheck/should_fail/T19397E4.stderr b/testsuite/tests/typecheck/should_fail/T19397E4.stderr
index 3f9eec7bf0..a80a14dd3d 100644
--- a/testsuite/tests/typecheck/should_fail/T19397E4.stderr
+++ b/testsuite/tests/typecheck/should_fail/T19397E4.stderr
@@ -1,3 +1,3 @@
-T19397E4.hs:1:1: error:
+T19397E4.hs:1:1: error: [GHC-67120]
The main IO action ‘foo’ is not exported by module ‘Main’
diff --git a/testsuite/tests/typecheck/should_fail/T20588.stderr b/testsuite/tests/typecheck/should_fail/T20588.stderr
index b9b7ed3f38..50e7bbec77 100644
--- a/testsuite/tests/typecheck/should_fail/T20588.stderr
+++ b/testsuite/tests/typecheck/should_fail/T20588.stderr
@@ -1,29 +1,29 @@
-T20588.hs-boot:8:1: error:
+T20588.hs-boot:8:1: error: [GHC-15843]
Class ‘C’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type C :: * -> Constraint
class C a where
meth :: a -> a
{-# MINIMAL meth #-}
- Boot file: type C :: * -> Constraint
+ Boot file: type C :: * -> Constraint
class C a where
meth :: a -> a
{-# MINIMAL meth #-}
- The methods do not match:
- The default methods associated with ‘meth’ are different
+ The class methods do not match:
+ The default methods associated with ‘meth’ are different.
-T20588.hs-boot:11:1: error:
+T20588.hs-boot:11:1: error: [GHC-15843]
Class ‘D’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type D :: * -> Constraint
class D a where
type T :: * -> *
type family T a
Default: Int
- Boot file: type D :: * -> Constraint
+ Boot file: type D :: * -> Constraint
class D a where
type T :: * -> *
type family T a
The associated types do not match:
- The associated type defaults differ
+ The types of the second associated type default differ.
diff --git a/testsuite/tests/typecheck/should_fail/T20588c.stderr b/testsuite/tests/typecheck/should_fail/T20588c.stderr
index d15573a30f..5b008ecc48 100644
--- a/testsuite/tests/typecheck/should_fail/T20588c.stderr
+++ b/testsuite/tests/typecheck/should_fail/T20588c.stderr
@@ -1,14 +1,14 @@
-T20588c.hs-boot:7:1: error:
+T20588c.hs-boot:7:1: error: [GHC-15843]
Class ‘C’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type C :: * -> Constraint
class C a where
meth :: a
default meth :: Monoid a => a
- Boot file: type C :: * -> Constraint
+ Boot file: type C :: * -> Constraint
class C a where
meth :: a
{-# MINIMAL meth #-}
- The methods do not match:
- The default methods associated with ‘meth’ are different
+ The class methods do not match:
+ The default methods associated with ‘meth’ are different.
diff --git a/testsuite/tests/typecheck/should_fail/T3468.stderr b/testsuite/tests/typecheck/should_fail/T3468.stderr
index c8aa7622f8..77a55c34d7 100644
--- a/testsuite/tests/typecheck/should_fail/T3468.stderr
+++ b/testsuite/tests/typecheck/should_fail/T3468.stderr
@@ -1,10 +1,10 @@
-T3468.hs-boot:3:1: error:
+T3468.hs-boot:3:1: error: [GHC-15843]
Type constructor ‘Tool’ has conflicting definitions in the module
- and its hs-boot file
+ and its hs-boot file.
Main module: type role Tool phantom
type Tool :: * -> *
data Tool d = forall a r. F a
- Boot file: type Tool :: *
+ Boot file: type Tool :: *
data Tool
- The types have different kinds
+ The types have different kinds.
diff --git a/testsuite/tests/typecheck/should_fail/tcfail030.stderr b/testsuite/tests/typecheck/should_fail/tcfail030.stderr
index 66b129076b..d11a91f896 100644
--- a/testsuite/tests/typecheck/should_fail/tcfail030.stderr
+++ b/testsuite/tests/typecheck/should_fail/tcfail030.stderr
@@ -1,3 +1,3 @@
-tcfail030.hs:1:1:
+tcfail030.hs:1:1: error: [GHC-67120]
The IO action ‘main’ is not defined in module ‘Main’
diff --git a/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr b/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
index 75df49fd36..4ef1b425b1 100644
--- a/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
+++ b/testsuite/tests/wcompat-warnings/WCompatWarningsOn.stderr
@@ -1,8 +1,4 @@
-Template.hs:5:1: warning: [-Wsemigroup (in -Wcompat)]
- Local definition of ‘<>’ clashes with a future Prelude name.
- This will become an error in a future release.
-
Template.hs:11:3: warning: [GHC-50928] [-Wnoncanonical-monoid-instances (in -Wdefault, -Wcompat)]
Noncanonical ‘(<>) = mappend’ definition detected
in the instance declaration for ‘Semigroup S’.