diff options
author | David Terei <code@davidterei.com> | 2014-11-19 18:02:30 -0800 |
---|---|---|
committer | David Terei <code@davidterei.com> | 2014-11-21 13:03:38 -0800 |
commit | 5f84bd1d6d08e20c254227fd2f72578b751addbe (patch) | |
tree | db536ab691a4ecfa89e0bf3248a7e16916d691df /testsuite/tests/safeHaskell | |
parent | 453ce626a32cab3728a640b2299eaeeb30da8862 (diff) | |
download | haskell-5f84bd1d6d08e20c254227fd2f72578b751addbe.tar.gz |
Improve Safe Haskell bounds for changes to base over time
Diffstat (limited to 'testsuite/tests/safeHaskell')
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, ['']) |