diff options
author | Bartosz Nitka <niteria@gmail.com> | 2016-02-15 09:16:43 -0800 |
---|---|---|
committer | Bartosz Nitka <niteria@gmail.com> | 2016-02-15 10:18:03 -0800 |
commit | 023742e444a415001d86d50a6ec331fe71d50426 (patch) | |
tree | 4f7d5493a667c3fdc9cb17f089df18d701457b91 | |
parent | e2f7d777bb7e4c176e01e1c4f8184f115253dee0 (diff) | |
download | haskell-023742e444a415001d86d50a6ec331fe71d50426.tar.gz |
Add a testcase for #11362
This reproduces the issue that I encountered in #11362.
Test Plan: this testcase
Reviewers: simonpj, bgamari, austin
Reviewed By: simonpj
Subscribers: thomie, simonmar
Differential Revision: https://phabricator.haskell.org/D1917
GHC Trac Issues: #11362
-rw-r--r-- | testsuite/tests/polykinds/T11362.hs | 26 | ||||
-rw-r--r-- | testsuite/tests/polykinds/all.T | 2 |
2 files changed, 28 insertions, 0 deletions
diff --git a/testsuite/tests/polykinds/T11362.hs b/testsuite/tests/polykinds/T11362.hs new file mode 100644 index 0000000000..945d68f825 --- /dev/null +++ b/testsuite/tests/polykinds/T11362.hs @@ -0,0 +1,26 @@ +{-# LANGUAGE DataKinds #-} +{-# LANGUAGE PolyKinds #-} +{-# LANGUAGE KindSignatures #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE GADTs #-} + +module T11362 where +-- this file when compiled with -dunique-increment=-1 made GHC crash + +data Sum a b = L a | R b + +data Sum1 (a :: k1 -> *) (b :: k2 -> *) :: Sum k1 k2 -> * where + LL :: a i -> Sum1 a b (L i) + RR :: b i -> Sum1 a b (R i) + +data Code i o = F (Code (Sum i o) o) + +-- An interpretation for `Code` using a data family works: +data family In (f :: Code i o) :: (i -> *) -> (o -> *) + +data instance In (F f) r o where + MkIn :: In f (Sum1 r (In (F f) r)) o -> In (F f) r o + +-- Requires polymorphic recursion +data In' (f :: Code i o) :: (i -> *) -> o -> * where + MkIn' :: In' g (Sum1 r (In' (F g) r)) t -> In' (F g) r t diff --git a/testsuite/tests/polykinds/all.T b/testsuite/tests/polykinds/all.T index 818769106f..b426f0e97e 100644 --- a/testsuite/tests/polykinds/all.T +++ b/testsuite/tests/polykinds/all.T @@ -139,4 +139,6 @@ test('T11480b', normal, compile, ['']) test('T11523', normal, compile, ['']) test('T11520', normal, compile_fail, ['']) test('T11516', normal, compile_fail, ['']) +test('T11362', normal, compile, ['-dunique-increment=-1']) + # -dunique-increment=-1 doesn't work inside the file test('T11399', normal, compile_fail, ['']) |