diff options
author | Matthew Pickering <matthewtpickering@gmail.com> | 2022-07-18 11:47:52 +0100 |
---|---|---|
committer | Zubin Duggal <zubin.duggal@gmail.com> | 2022-07-26 16:28:48 +0530 |
commit | f1b85d40a34c2bd87237f82eeba9e0125c80a3c9 (patch) | |
tree | 71746e3b18512a9a403ff454810a2e1ce7c76c5d | |
parent | af84a211f5f7e46d5c4651adcdc59c2dc7b9d716 (diff) | |
download | haskell-f1b85d40a34c2bd87237f82eeba9e0125c80a3c9.tar.gz |
Add tests that -XHaskell98 and -XHaskell2010 enable DeepSubsumption
(cherry picked from commit 5c4fbaf53f258d64aeb66a8172e13dc559eb8d8b)
4 files changed, 29 insertions, 1 deletions
diff --git a/compiler/GHC/Driver/Session.hs b/compiler/GHC/Driver/Session.hs index b3d53c4953..91f0ed92c0 100644 --- a/compiler/GHC/Driver/Session.hs +++ b/compiler/GHC/Driver/Session.hs @@ -1372,12 +1372,14 @@ languageExtensions (Just Haskell98) LangExt.DatatypeContexts, LangExt.TraditionalRecordSyntax, LangExt.FieldSelectors, - LangExt.NondecreasingIndentation + LangExt.NondecreasingIndentation, -- strictly speaking non-standard, but we always had this -- on implicitly before the option was added in 7.1, and -- turning it off breaks code, so we're keeping it on for -- backwards compatibility. Cabal uses -XHaskell98 by -- default unless you specify another language. + LangExt.DeepSubsumption + -- Non-standard but enabled for backwards compatability (see GHC proposal #511) ] languageExtensions (Just Haskell2010) diff --git a/testsuite/tests/typecheck/should_compile/DeepSubsumption06.hs b/testsuite/tests/typecheck/should_compile/DeepSubsumption06.hs new file mode 100644 index 0000000000..6e8b64c2c2 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/DeepSubsumption06.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE NoPolyKinds #-} +{-# LANGUAGE RankNTypes #-} +module DeepSubsumption06 where + +class Profunctor p where + dimap :: (s -> a) -> (b -> t) -> p i a b -> p i s t + +type Iso s t a b = forall p i . Profunctor p => p i a b -> p i s t + +iso :: (s -> a) -> (b -> t) -> Iso s t a b +-- iso f g = dimap f g +iso = dimap diff --git a/testsuite/tests/typecheck/should_compile/DeepSubsumption07.hs b/testsuite/tests/typecheck/should_compile/DeepSubsumption07.hs new file mode 100644 index 0000000000..1c70025051 --- /dev/null +++ b/testsuite/tests/typecheck/should_compile/DeepSubsumption07.hs @@ -0,0 +1,12 @@ +{-# LANGUAGE NoPolyKinds #-} +{-# LANGUAGE RankNTypes #-} +module DeepSubsumption07 where + +class Profunctor p where + dimap :: (s -> a) -> (b -> t) -> p i a b -> p i s t + +type Iso s t a b = forall p i . Profunctor p => p i a b -> p i s t + +iso :: (s -> a) -> (b -> t) -> Iso s t a b +-- iso f g = dimap f g +iso = dimap diff --git a/testsuite/tests/typecheck/should_compile/all.T b/testsuite/tests/typecheck/should_compile/all.T index 47ad8285c8..da674e0a2c 100644 --- a/testsuite/tests/typecheck/should_compile/all.T +++ b/testsuite/tests/typecheck/should_compile/all.T @@ -800,3 +800,5 @@ test('DeepSubsumption02', normal, compile, ['']) test('DeepSubsumption03', normal, compile, ['']) test('DeepSubsumption04', normal, compile, ['']) test('DeepSubsumption05', normal, compile, ['']) +test('DeepSubsumption06', normal, compile, ['-XHaskell98']) +test('DeepSubsumption07', normal, compile, ['-XHaskell2010']) |