aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/CabalHelper/Compiletime/Program/Stack.hs10
-rw-r--r--src/CabalHelper/Compiletime/Types.hs1
-rw-r--r--src/CabalHelper/Runtime/Compat.hs1
-rw-r--r--src/CabalHelper/Runtime/HelperMain.hs4
4 files changed, 8 insertions, 8 deletions
diff --git a/src/CabalHelper/Compiletime/Program/Stack.hs b/src/CabalHelper/Compiletime/Program/Stack.hs
index f0dd766..353e8f1 100644
--- a/src/CabalHelper/Compiletime/Program/Stack.hs
+++ b/src/CabalHelper/Compiletime/Program/Stack.hs
@@ -46,11 +46,7 @@ import CabalHelper.Compiletime.Types.RelativePath
import CabalHelper.Shared.Common
getUnit :: QueryEnvI c 'Stack -> CabalFile -> IO (Unit 'Stack)
-getUnit
- qe@QueryEnv{qeProjLoc=ProjLocStackYaml stack_yaml}
- cabal_file@(CabalFile cabal_file_path)
- = do
- let projdir = takeDirectory stack_yaml
+getUnit qe cabal_file@(CabalFile cabal_file_path) = do
let pkgdir = takeDirectory cabal_file_path
let pkg_name = dropExtension $ takeFileName cabal_file_path
look <- paths qe pkgdir
@@ -91,7 +87,7 @@ listPackageCabalFiles qe@QueryEnv{qeProjLoc=ProjLocStackYaml stack_yaml}
return $ map CabalFile $ lines out
where
ioerror :: IOError -> IO a
- ioerror ioe = (=<<) (fromMaybe (throwIO ioe)) $ runMaybeT $ do
+ ioerror ioe = (fromMaybe (throwIO ioe) =<<) $ runMaybeT $ do
stack_exe <- MaybeT $ findExecutable $ stackProgram $ qePrograms qe
stack_ver_str
<- liftIO $ trim <$> readStackCmd qe Nothing ["--numeric-version"]
@@ -116,6 +112,8 @@ listPackageCabalFiles qe@QueryEnv{qeProjLoc=ProjLocStackYaml stack_yaml}
workdirArg :: QueryEnvI c 'Stack -> [String]
workdirArg QueryEnv{qeDistDir=DistDirStack mworkdir} =
maybeToList $ ("--work-dir="++) . unRelativePath <$> mworkdir
+workdirArg QueryEnv{qeDistDir=DistDirCabal{}} =
+ error "workdirArg: TODO: this case is impossible and should not produce an exhaustiveness warning anymore starting with GHC 8.8"
doStackCmd :: (QueryEnvI c 'Stack -> CallProcessWithCwd a)
-> QueryEnvI c 'Stack -> Maybe FilePath -> [String] -> IO a
diff --git a/src/CabalHelper/Compiletime/Types.hs b/src/CabalHelper/Compiletime/Types.hs
index cded136..e79c812 100644
--- a/src/CabalHelper/Compiletime/Types.hs
+++ b/src/CabalHelper/Compiletime/Types.hs
@@ -32,7 +32,6 @@ import Data.IORef
import Data.Version
import Data.Typeable
import GHC.Generics
-import System.FilePath
import System.Posix.Types
import CabalHelper.Compiletime.Types.RelativePath
import CabalHelper.Shared.InterfaceTypes
diff --git a/src/CabalHelper/Runtime/Compat.hs b/src/CabalHelper/Runtime/Compat.hs
index 0c5a895..1673b7a 100644
--- a/src/CabalHelper/Runtime/Compat.hs
+++ b/src/CabalHelper/Runtime/Compat.hs
@@ -16,6 +16,7 @@
{-# LANGUAGE CPP, BangPatterns, RecordWildCards, RankNTypes, ViewPatterns,
TupleSections #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
#ifdef MIN_VERSION_Cabal
#undef CH_MIN_VERSION_Cabal
diff --git a/src/CabalHelper/Runtime/HelperMain.hs b/src/CabalHelper/Runtime/HelperMain.hs
index b4ba6cc..a3119e5 100644
--- a/src/CabalHelper/Runtime/HelperMain.hs
+++ b/src/CabalHelper/Runtime/HelperMain.hs
@@ -16,7 +16,7 @@
{-# LANGUAGE CPP, BangPatterns, RecordWildCards, RankNTypes, ViewPatterns,
TupleSections #-}
-
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{- # OPTIONS_GHC -Wno-missing-signatures #-}
{- # OPTIONS_GHC -fno-warn-incomplete-patterns #-}
@@ -512,6 +512,7 @@ componentOptions' (lbi, v, distdir) inplaceFlag flags rf f = do
#else
[] -> removeInplaceDeps v lbi pd clbi
#endif
+ _ -> error $ "invalid flags: " ++ show flags
opts = componentGhcOptions normal lbi bi clbi' outdir
opts' = f opts
@@ -686,6 +687,7 @@ combineEp (Just ChSetupEntrypoint) e = e
combineEp (Just (ChLibEntrypoint es1 os1 ss1)) (ChLibEntrypoint es2 os2 ss2) = (ChLibEntrypoint (nub $ es2++es1) (nub $ os2++os1) (nub $ ss2++ss1))
combineEp _ e@(ChExeEntrypoint _mi _os2) = error $ "combineEP: cannot have a sub exe:" ++ show e
combineEp (Just (ChExeEntrypoint mi os1)) (ChLibEntrypoint es2 os2 ss2) = (ChExeEntrypoint mi (nub $ os1++es2++os2++ss2))
+combineEp me e = error $ "combineEp: undhandled case: " ++ show (me, e)
-- no, you unconditionally always wrap the result in Just, so instead of `f x = Just y; f x = Just z` do `f x = y; f x = z` and use f as `Just . f`