diff options
-rw-r--r-- | testsuite/tests/codeGen/should_compile/T18227A.hs | 6 | ||||
-rw-r--r-- | testsuite/tests/codeGen/should_compile/T18227B.hs | 16 | ||||
-rw-r--r-- | testsuite/tests/codeGen/should_compile/all.T | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/testsuite/tests/codeGen/should_compile/T18227A.hs b/testsuite/tests/codeGen/should_compile/T18227A.hs new file mode 100644 index 0000000000..5bc76f292f --- /dev/null +++ b/testsuite/tests/codeGen/should_compile/T18227A.hs @@ -0,0 +1,6 @@ +module T18227A (kilter) where +import Data.ByteString.Internal + +kilter :: ByteString -> IO ByteString +kilter ps@(PS x _ _) = createAndTrim 1 $ const $ pure 1 + diff --git a/testsuite/tests/codeGen/should_compile/T18227B.hs b/testsuite/tests/codeGen/should_compile/T18227B.hs new file mode 100644 index 0000000000..ad05a28b8f --- /dev/null +++ b/testsuite/tests/codeGen/should_compile/T18227B.hs @@ -0,0 +1,16 @@ +-- N.B. These warnings only cause noise in stderr. +{-# OPTIONS_GHC -Wno-overlapping-patterns -Wno-inaccessible-code #-} +{-# LANGUAGE GADTs #-} + +module T18227B where + +import Unsafe.Coerce + +test1 :: UnsafeEquality Int Char -> IO () +test1 hi = print "hello" +{-# NOINLINE test1 #-} + +test2 :: IO () +test2 = + case unsafeEqualityProof :: UnsafeEquality Int Char of + proof@UnsafeRefl -> test1 proof diff --git a/testsuite/tests/codeGen/should_compile/all.T b/testsuite/tests/codeGen/should_compile/all.T index ce76ed388a..f5ed0dd36d 100644 --- a/testsuite/tests/codeGen/should_compile/all.T +++ b/testsuite/tests/codeGen/should_compile/all.T @@ -87,3 +87,5 @@ test('T14373d', [], test('T17648', normal, makefile_test, []) test('T17904', normal, compile, ['-O']) +test('T18227A', normal, compile, ['']) +test('T18227B', normal, compile, ['']) |