summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Pickering <matthewtpickering@gmail.com>2022-03-21 17:48:45 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-03-24 17:13:59 -0400
commitfefd4e312f0249117f2d5a5a6962edb1e0b6ed19 (patch)
tree377c45775507f1ef031ed27fa00904982ce35d84
parent99623358754d812b8b4bdfcdc57190d38617b9cc (diff)
downloadhaskell-fefd4e312f0249117f2d5a5a6962edb1e0b6ed19.tar.gz
testsuite: Remove library dependenices from T21119
These dependencies would affect the demand signature depending on various rules and so on. Fixes #21271
-rw-r--r--testsuite/tests/stranal/sigs/T21119.hs31
-rw-r--r--testsuite/tests/stranal/sigs/T21119.stderr26
-rw-r--r--testsuite/tests/stranal/sigs/all.T1
3 files changed, 45 insertions, 13 deletions
diff --git a/testsuite/tests/stranal/sigs/T21119.hs b/testsuite/tests/stranal/sigs/T21119.hs
index 7be2cf1788..8bebcf5b16 100644
--- a/testsuite/tests/stranal/sigs/T21119.hs
+++ b/testsuite/tests/stranal/sigs/T21119.hs
@@ -3,12 +3,31 @@
-- {-# LANGUAGE PatternSynonyms #-}
-- {-# LANGUAGE BangPatterns #-}
-- {-# LANGUAGE MagicHash, UnboxedTuples #-}
-module T21119 where
+{-# LANGUAGE MagicHash #-}
+module T21119 ( get, getIO, indexError, throwIndexError ) where
-import Control.Exception
+import Control.Exception (Exception(..))
+import GHC.IO hiding (throwIO)
+import GHC.Exts
-indexError :: Show a => (a, a) -> a -> String -> b
-indexError rng i s = error (show rng ++ show i ++ show s)
+throwIO :: Exception e => e -> IO a
+throwIO e = IO (raiseIO# (toException e))
+
+myconcat :: [[a]] -> [a]
+myconcat = concat
+{-# NOINLINE myconcat #-}
+
+class MyShow a where
+ myshow :: a -> String
+
+instance MyShow Int where
+ myshow !_ = "0"
+
+instance MyShow (a, b) where
+ myshow !_ = "()"
+
+indexError :: MyShow a => (a, a) -> a -> String -> b
+indexError rng i s = errorWithoutStackTrace (myconcat [myshow rng, myshow i, s])
get :: (Int, Int) -> Int -> [a] -> a
get p@(l,u) i xs
@@ -17,8 +36,8 @@ get p@(l,u) i xs
-- Now the same with precise exceptions:
-throwIndexError :: Show a => (a, a) -> a -> String -> IO b
-throwIndexError rng i s = throwIO (userError (show rng ++ show i ++ show s))
+throwIndexError :: MyShow a => (a, a) -> a -> String -> IO b
+throwIndexError rng i s = throwIO (userError (myconcat [myshow rng, myshow i, s]))
-- It's important that we don't unbox 'u' here.
-- We may or may not unbox 'p' and 'l'.
diff --git a/testsuite/tests/stranal/sigs/T21119.stderr b/testsuite/tests/stranal/sigs/T21119.stderr
index dfefcdea03..0a398888d0 100644
--- a/testsuite/tests/stranal/sigs/T21119.stderr
+++ b/testsuite/tests/stranal/sigs/T21119.stderr
@@ -1,14 +1,22 @@
==================== Strictness signatures ====================
+T21119.$fMyShow(,): <1!A>
+T21119.$fMyShowInt: <1!A>
+T21119.$tc'C:MyShow:
+T21119.$tcMyShow:
T21119.$trModule:
-T21119.get: <1!P(S!P(L),S!P(L))><1!P(L)><1L>
-T21119.getIO: <1P(SL,L)><1L><ML><L>
-T21119.indexError: <S!P(SCS(C1(L)),1C1(L),B)><1!S><S!S><1!S>b
-T21119.throwIndexError: <LP(LCL(C1(L)),MCM(L),A)><ML><L><ML><L>x
+T21119.get: <1!P(1!P(L),1!P(L))><1!P(L)><1L>
+T21119.getIO: <1P(1L,ML)><1L><ML><L>
+T21119.indexError: <1C1(L)><1!B><S!S><S!S>b
+T21119.throwIndexError: <MCM(L)><MA><L><L><L>x
==================== Cpr signatures ====================
+T21119.$fMyShow(,):
+T21119.$fMyShowInt:
+T21119.$tc'C:MyShow:
+T21119.$tcMyShow:
T21119.$trModule:
T21119.get:
T21119.getIO: 1
@@ -18,10 +26,14 @@ T21119.throwIndexError: b
==================== Strictness signatures ====================
+T21119.$fMyShow(,): <1!A>
+T21119.$fMyShowInt: <1!A>
+T21119.$tc'C:MyShow:
+T21119.$tcMyShow:
T21119.$trModule:
T21119.get: <1!P(1!P(L),1!P(L))><1!P(L)><1L>
-T21119.getIO: <1P(SL,L)><1L><ML><L>
-T21119.indexError: <1P(SCS(C1(L)),1C1(L),B)><1!S><S!S><1!S>b
-T21119.throwIndexError: <LP(LCL(C1(L)),MCM(L),A)><ML><L><ML><L>x
+T21119.getIO: <1P(1L,ML)><1L><ML><L>
+T21119.indexError: <1C1(L)><1!B><S!S><S!S>b
+T21119.throwIndexError: <MCM(L)><MA><L><L><L>x
diff --git a/testsuite/tests/stranal/sigs/all.T b/testsuite/tests/stranal/sigs/all.T
index 59a4891f6d..876d2242d8 100644
--- a/testsuite/tests/stranal/sigs/all.T
+++ b/testsuite/tests/stranal/sigs/all.T
@@ -31,4 +31,5 @@ test('T18907', normal, compile, [''])
test('T13331', normal, compile, [''])
test('T20746', normal, compile, [''])
test('T20746b', normal, compile, [''])
+
test('T21119', normal, compile, [''])