Update tests following OldException removal
[ghc.git] / testsuite / tests / lib / should_run / exceptionsrun001.hs
index 9c6febc..c858ba5 100644 (file)
@@ -1,7 +1,8 @@
 module Main where
 
 import Prelude hiding (catch)
-import Control.OldException 
+import Control.Exception
+import System.IO.Error hiding (catch, try)
 
 main = do
   ioTest
@@ -9,48 +10,38 @@ main = do
   noMethodTest
   patMatchTest
   guardTest
-  dynTest
 
 ioTest :: IO ()
-ioTest = catchJust userErrors (ioError (userError "wibble")) 
-          (\ex -> putStr "user exception caught\n")
+ioTest = catchJust (\e -> if isUserError e then Just () else Nothing)
+                   (ioError (userError "wibble"))
+                   (\() -> putStrLn "user exception caught")
 
 errorTest :: IO ()
-errorTest = try (evaluate (1 + error "call to 'error'")) >>= \r ->
-           case r of
-               Left exception -> putStr "error call caught\n"
-               Right _        -> error "help!"
+errorTest = do r <- try (evaluate (1 + error "call to 'error'"))
+               case r of
+                   Left (ErrorCall _) -> putStrLn "error call caught"
+                   Right _            -> error "help!"
 
 instance (Show a, Eq a) => Num (Maybe a) where {}
 
 noMethodTest :: IO ()
-noMethodTest = try (evaluate (Just () + Just ())) >>= \ r ->
-       case r of
-               Left (NoMethodError err) -> putStr "no method error\n"
-               Right _                  -> error "help!"
+noMethodTest = do r <- try (evaluate (Just () + Just ()))
+                  case r of
+                      Left (NoMethodError err) -> putStrLn "no method error"
+                      Right _                  -> error "help!"
 
 patMatchTest :: IO ()
 patMatchTest = catch (case test1 [1..10] of () -> return ())
   (\ex -> case ex of
-               PatternMatchFail err -> putStr err
-               other                -> error "help!")
-                 
+          PatternMatchFail err -> putStr err
+          _                    -> error "help!")
+
 test1 [] = ()
 
 guardTest = catch (case test2 of () -> return ())
-  (\ex -> case ex of
-               PatternMatchFail err -> putStr err
-               other                -> error "help!")
+                  (\ex -> case ex of
+                          PatternMatchFail err -> putStr err
+                          _                    -> error "help!")
 
 test2 | all (==0) [1] = ()
 
-dynTest = catchDyn (case throwDyn (42::Int, (+1)::Int->Int) of () -> return ())
-  (\(i,f) -> let x = f (i::Int) :: Int in putStr (show x))
-
-{-
-recSelTest
-recConTest
-recUpdTest
-assertTest
-arithTest
--}