summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Annex/Exception.hs17
-rw-r--r--Command/Add.hs2
-rw-r--r--Utility/Exception.hs4
-rw-r--r--Utility/Mounts.hsc2
4 files changed, 13 insertions, 12 deletions
diff --git a/Annex/Exception.hs b/Annex/Exception.hs
index 96070ee26..99466a851 100644
--- a/Annex/Exception.hs
+++ b/Annex/Exception.hs
@@ -13,24 +13,27 @@
module Annex.Exception (
bracketIO,
tryAnnex,
- throw,
+ throwAnnex,
catchAnnex,
) where
-import Prelude hiding (catch)
-import "MonadCatchIO-transformers" Control.Monad.CatchIO (bracket, try, throw, catch)
-import Control.Exception hiding (handle, try, throw, bracket, catch)
+import qualified "MonadCatchIO-transformers" Control.Monad.CatchIO as M
+import Control.Exception
import Common.Annex
{- Runs an Annex action, with setup and cleanup both in the IO monad. -}
bracketIO :: IO v -> (v -> IO b) -> (v -> Annex a) -> Annex a
-bracketIO setup cleanup go = bracket (liftIO setup) (liftIO . cleanup) go
+bracketIO setup cleanup go = M.bracket (liftIO setup) (liftIO . cleanup) go
{- try in the Annex monad -}
tryAnnex :: Annex a -> Annex (Either SomeException a)
-tryAnnex = try
+tryAnnex = M.try
+
+{- throw in the Annex monad -}
+throwAnnex :: Exception e => e -> Annex a
+throwAnnex = M.throw
{- catch in the Annex monad -}
catchAnnex :: Exception e => Annex a -> (e -> Annex a) -> Annex a
-catchAnnex = catch
+catchAnnex = M.catch
diff --git a/Command/Add.hs b/Command/Add.hs
index 543d37136..fe1a6b13a 100644
--- a/Command/Add.hs
+++ b/Command/Add.hs
@@ -174,7 +174,7 @@ undo file key e = do
liftIO $ nukeFile file
catchAnnex (fromAnnex key file) tryharder
logStatus key InfoMissing
- throw e
+ throwAnnex e
where
-- fromAnnex could fail if the file ownership is weird
tryharder :: IOException -> Annex ()
diff --git a/Utility/Exception.hs b/Utility/Exception.hs
index bc928e18e..3835d741d 100644
--- a/Utility/Exception.hs
+++ b/Utility/Exception.hs
@@ -9,8 +9,8 @@
module Utility.Exception where
-import Prelude hiding (catch)
import Control.Exception
+import qualified Control.Exception as E
import Control.Applicative
import Control.Monad
import System.IO.Error (isDoesNotExistError)
@@ -33,7 +33,7 @@ catchMsgIO a = either (Left . show) Right <$> tryIO a
{- catch specialized for IO errors only -}
catchIO :: IO a -> (IOException -> IO a) -> IO a
-catchIO = catch
+catchIO = E.catch
{- try specialized for IO errors only -}
tryIO :: IO a -> IO (Either IOException a)
diff --git a/Utility/Mounts.hsc b/Utility/Mounts.hsc
index c13b0ece1..b6defda43 100644
--- a/Utility/Mounts.hsc
+++ b/Utility/Mounts.hsc
@@ -20,8 +20,6 @@ module Utility.Mounts (
import Control.Monad
import Foreign
import Foreign.C
-import GHC.IO hiding (finally, bracket)
-import Prelude hiding (catch)
#include "libmounts.h"
#else
import Utility.Exception