summaryrefslogtreecommitdiff
path: root/testsuite/tests/safeHaskell
diff options
context:
space:
mode:
authorDavid Terei <code@davidterei.com>2014-11-19 18:02:30 -0800
committerDavid Terei <code@davidterei.com>2014-11-21 13:03:38 -0800
commit5f84bd1d6d08e20c254227fd2f72578b751addbe (patch)
treedb536ab691a4ecfa89e0bf3248a7e16916d691df /testsuite/tests/safeHaskell
parent453ce626a32cab3728a640b2299eaeeb30da8862 (diff)
downloadhaskell-5f84bd1d6d08e20c254227fd2f72578b751addbe.tar.gz
Improve Safe Haskell bounds for changes to base over time
Diffstat (limited to 'testsuite/tests/safeHaskell')
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport05.hs12
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr4
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/GoodImport02.hs10
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs49
-rw-r--r--testsuite/tests/safeHaskell/unsafeLibs/all.T1
5 files changed, 34 insertions, 42 deletions
diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.hs b/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.hs
deleted file mode 100644
index c6d63842c2..0000000000
--- a/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE Safe #-}
--- | Import unsafe module Foreign.Unsafe to make sure it fails
-module Main where
-
-import System.IO.Unsafe (unsafePerformIO)
-
-f :: Int
-f = unsafePerformIO $ putStrLn "What kind of swallow?" >> return 2
-
-main :: IO ()
-main = putStrLn $ "X is: " ++ show f
-
diff --git a/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr b/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr
deleted file mode 100644
index 32a42f59d9..0000000000
--- a/testsuite/tests/safeHaskell/unsafeLibs/BadImport05.stderr
+++ /dev/null
@@ -1,4 +0,0 @@
-
-BadImport05.hs:5:1:
- System.IO.Unsafe: Can't be safely imported!
- The module itself isn't safe.
diff --git a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport02.hs b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport02.hs
index 85a781f982..86c34adb0d 100644
--- a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport02.hs
+++ b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport02.hs
@@ -1,11 +1,11 @@
{-# LANGUAGE Safe #-}
--- | Import safe versions of unsafe modules from prelude
+-- | Import (now safe by default) modules.
module Main where
-import Control.Monad.ST.Safe
-import Control.Monad.ST.Lazy.Safe
-import Foreign.ForeignPtr.Safe
-import Foreign.Safe
+import Control.Monad.ST
+import Control.Monad.ST.Lazy
+import Foreign.ForeignPtr
+import Foreign
f :: Int
f = 2
diff --git a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs
index 6533e18b7d..30da9f5ab2 100644
--- a/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs
+++ b/testsuite/tests/safeHaskell/unsafeLibs/GoodImport03.hs
@@ -1,39 +1,47 @@
{-# LANGUAGE Safe #-}
+{-# OPTIONS_GHC -fno-warn-deprecations #-}
-- | Import all modules from prelude that should be safe
module Main where
import Numeric
import Prelude
--- import Foreign
import Control.Applicative
import Control.Arrow
import Control.Category
--- import Control.ST
--- import Control.ST.Lazy
--- import Control.ST.Strict
-
import Control.Concurrent
import Control.Concurrent.Chan
import Control.Concurrent.MVar
+import Control.Concurrent.QSem
+import Control.Concurrent.QSemN
import Control.Exception
import Control.Exception.Base
import Control.Monad
import Control.Monad.Fix
+import Control.Monad.Instances
import Control.Monad.Zip
+import Control.Monad.ST
+import Control.Monad.ST.Lazy
+import Control.Monad.ST.Strict
+
+import Data.Bifunctor
import Data.Bits
import Data.Bool
import Data.Char
+-- import Data.Coerce
import Data.Complex
+import Data.Data
+import Data.Dynamic
import Data.Either
import Data.Eq
import Data.Fixed
import Data.Foldable
import Data.Function
+import Data.Functor.Identity
import Data.Functor
import Data.IORef
import Data.Int
@@ -42,11 +50,13 @@ import Data.List
import Data.Maybe
import Data.Monoid
import Data.Ord
+import Data.Proxy
import Data.Ratio
import Data.String
import Data.Traversable
import Data.Tuple
import Data.Typeable
+-- import Data.Typeable.Internal
import Data.Unique
import Data.Version
import Data.Word
@@ -55,10 +65,16 @@ import Data.STRef
import Data.STRef.Lazy
import Data.STRef.Strict
+import Data.Type.Bool
+-- import Data.Type.Coercion
+-- import Data.Type.Equality
+
-- import Debug.Trace
+import Foreign
+
import Foreign.Concurrent
--- import Foreign.ForeignPtr
+import Foreign.ForeignPtr
import Foreign.Ptr
import Foreign.StablePtr
import Foreign.Storable
@@ -68,7 +84,7 @@ import Foreign.C.Error
import Foreign.C.String
import Foreign.C.Types
--- import Foreign.Marshal
+import Foreign.Marshal
import Foreign.Marshal.Alloc
import Foreign.Marshal.Array
import Foreign.Marshal.Error
@@ -76,34 +92,27 @@ import Foreign.Marshal.Pool
import Foreign.Marshal.Utils
import System.CPUTime
+import System.Console.GetOpt
import System.Environment
import System.Exit
-import System.Info
-import System.Mem
-import System.Timeout
-
-import System.Console.GetOpt
-
import System.IO
import System.IO.Error
-
+import System.Info
+import System.Mem
import System.Mem.StableName
import System.Mem.Weak
-
import System.Posix.Internals
import System.Posix.Types
+import System.Timeout
+import Text.ParserCombinators.ReadP
+import Text.ParserCombinators.ReadPrec
import Text.Printf
-
import Text.Read
import Text.Read.Lex
-
import Text.Show
import Text.Show.Functions
-import Text.ParserCombinators.ReadP
-import Text.ParserCombinators.ReadPrec
-
-- import Unsafe.Coerce
f :: Int
diff --git a/testsuite/tests/safeHaskell/unsafeLibs/all.T b/testsuite/tests/safeHaskell/unsafeLibs/all.T
index 03ca0e4d18..8bcda5f402 100644
--- a/testsuite/tests/safeHaskell/unsafeLibs/all.T
+++ b/testsuite/tests/safeHaskell/unsafeLibs/all.T
@@ -19,7 +19,6 @@ test('Dep10', normal, compile_fail, [''])
# check unsafe modules are marked unsafe
test('BadImport01', normal, compile_fail, [''])
-test('BadImport05', normal, compile_fail, [''])
test('BadImport06', normal, compile_fail, [''])
test('BadImport07', normal, compile_fail, [''])
test('BadImport08', normal, compile_fail, [''])