summaryrefslogtreecommitdiff
path: root/testsuite/tests/gadt
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/tests/gadt')
-rw-r--r--testsuite/tests/gadt/T20278.hs19
-rw-r--r--testsuite/tests/gadt/all.T1
2 files changed, 20 insertions, 0 deletions
diff --git a/testsuite/tests/gadt/T20278.hs b/testsuite/tests/gadt/T20278.hs
new file mode 100644
index 0000000000..436ff425cb
--- /dev/null
+++ b/testsuite/tests/gadt/T20278.hs
@@ -0,0 +1,19 @@
+{-# LANGUAGE GADTs #-}
+module T20278 where
+
+import Data.Kind
+import GHC.Exts
+
+type X1 :: TYPE rep -> Type
+data X1 a where
+ MkX1 :: { fld1a :: a, fld1b :: Int } -> X1 a
+
+upd1 :: forall rep (a :: TYPE rep). X1 a -> X1 a
+upd1 x = x { fld1b = 3 }
+
+type X2 :: Type -> Type
+data X2 a where
+ MkX2 :: { fld2a :: b, fld2b :: Int } -> X2 (Maybe b)
+
+upd2 :: X2 a -> X2 a
+upd2 x = x { fld2b = 3 }
diff --git a/testsuite/tests/gadt/all.T b/testsuite/tests/gadt/all.T
index 225d8e8650..276302fb57 100644
--- a/testsuite/tests/gadt/all.T
+++ b/testsuite/tests/gadt/all.T
@@ -120,4 +120,5 @@ test('T15009', normal, compile, [''])
test('T15558', normal, compile, [''])
test('T16427', normal, compile_fail, [''])
test('T18191', normal, compile_fail, [''])
+test('T20278', normal, compile, [''])
test('SynDataRec', normal, compile, [''])