Update tests to reflect new check for GeneralizedNewtypeDeriving
authorRichard Eisenberg <eir@cis.upenn.edu>
Mon, 21 Oct 2013 17:04:47 +0000 (13:04 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Wed, 23 Oct 2013 13:23:24 +0000 (09:23 -0400)
testsuite/tests/deriving/should_fail/T1496.stderr
testsuite/tests/deriving/should_fail/T2721.stderr
testsuite/tests/deriving/should_fail/T4846.stderr
testsuite/tests/deriving/should_fail/T7148.stderr
testsuite/tests/deriving/should_fail/T7148a.stderr
testsuite/tests/gadt/CasePrune.stderr
testsuite/tests/roles/should_compile/RolesIArray.hs [new file with mode: 0644]
testsuite/tests/roles/should_compile/all.T
testsuite/tests/roles/should_fail/Roles10.stderr
testsuite/tests/roles/should_fail/Roles9.hs [deleted file]
testsuite/tests/roles/should_fail/all.T

index cc4cdc2..b24ef69 100644 (file)
@@ -3,5 +3,6 @@ T1496.hs:10:32:
     Can't make a derived instance of ‛IsInt Moo’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛IsInt’ is at role Nominal
+      ‛isInt’, at type ‛forall (c :: * -> *).
+                        c Int -> c t’, cannot be converted safely
     In the newtype declaration for ‛Moo’
index 710b933..0e5d764 100644 (file)
@@ -4,5 +4,5 @@ T2721.hs:15:28:
       (even with cunning newtype deriving):
       the class has associated types
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛C’ is at role Nominal
+      ‛foo’, at type ‛a -> T a’, cannot be converted safely
     In the newtype declaration for ‛N’
index beb7653..0edb208 100644 (file)
@@ -3,5 +3,5 @@ T4846.hs:29:1:
     Can't make a derived instance of ‛B BOOL’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛B’ is at role Nominal
+      ‛mkExpr’, at type ‛Expr a’, cannot be converted safely
     In the stand-alone deriving instance for ‛B BOOL’
index 748ef08..a57dbef 100644 (file)
@@ -3,5 +3,8 @@ T7148.hs:27:40:
     Can't make a derived instance of ‛IsoUnit (Tagged a b)’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛IsoUnit’ is at role Nominal
+      ‛iso1’, at type ‛forall b.
+                       SameType () b -> SameType a b’, cannot be converted safely
+      ‛iso2’, at type ‛forall b.
+                       SameType b () -> SameType b a’, cannot be converted safely
     In the newtype declaration for ‛Tagged’
index fa4a2dc..00f875d 100644 (file)
@@ -3,5 +3,6 @@ T7148a.hs:19:50:
     Can't make a derived instance of ‛Convert (IS_NO_LONGER a)’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛Convert’ is at role Nominal
+      ‛coerce’, at type ‛forall b.
+                         Proxy b -> a -> Result a b’, cannot be converted safely
     In the newtype declaration for ‛IS_NO_LONGER’
index d3dbc6e..d763e0b 100644 (file)
@@ -3,5 +3,5 @@ CasePrune.hs:14:31:
     Can't make a derived instance of ‛C A’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛C’ is at role Nominal
+      ‛ic’, at type ‛T a’, cannot be converted safely
     In the newtype declaration for ‛A’
diff --git a/testsuite/tests/roles/should_compile/RolesIArray.hs b/testsuite/tests/roles/should_compile/RolesIArray.hs
new file mode 100644 (file)
index 0000000..a79909d
--- /dev/null
@@ -0,0 +1,10 @@
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+
+module RolesIArray where
+
+import Data.Word
+import Data.Array.IArray
+import Data.Array.Unboxed
+
+newtype N = MkN Word64
+  deriving (IArray UArray)
\ No newline at end of file
index eaa398d..266a260 100644 (file)
@@ -3,3 +3,4 @@ test('Roles2', only_ways('normal'), compile, ['-ddump-tc'])
 test('Roles3', only_ways('normal'), compile, ['-ddump-tc'])
 test('Roles4', only_ways('normal'), compile, ['-ddump-tc'])
 test('Roles13', only_ways('normal'), compile, ['-ddump-simpl -dsuppress-uniques'])
+test('RolesIArray', only_ways('normal'), compile, [''])
\ No newline at end of file
index 756aaa2..76c0c0d 100644 (file)
@@ -3,5 +3,5 @@ Roles10.hs:16:12:
     Can't make a derived instance of ‛C Age’
       (even with cunning newtype deriving):
       it is not type-safe to use GeneralizedNewtypeDeriving on this class;
-      the last parameter of ‛C’ is at role Nominal
+      ‛meth’, at type ‛a -> F a’, cannot be converted safely
     In the newtype declaration for ‛Age’
diff --git a/testsuite/tests/roles/should_fail/Roles9.hs b/testsuite/tests/roles/should_fail/Roles9.hs
deleted file mode 100644 (file)
index f8e134d..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# LANGUAGE GeneralizedNewtypeDeriving, RoleAnnotations #-}
-
-module Roles9 where
-
-type role C nominal
-class C a where
-  meth :: a -> a
-
-instance C Int where
-  meth = (+ 1)
-
-newtype Age = MkAge Int
-  deriving C
index 36f2d2e..0e30472 100644 (file)
@@ -2,7 +2,6 @@ test('Roles5', normal, compile_fail, [''])
 test('Roles6', normal, compile_fail, [''])
 test('Roles7', normal, compile_fail, [''])
 test('Roles8', normal, compile_fail, [''])
-test('Roles9', normal, compile_fail, [''])
 test('Roles10', normal, compile_fail, [''])
 test('Roles11', normal, compile_fail, [''])
 test('Roles12',