diff options
-rw-r--r-- | src/CabalHelper/Compiletime/Program/Stack.hs | 10 | ||||
-rw-r--r-- | src/CabalHelper/Compiletime/Types.hs | 1 | ||||
-rw-r--r-- | src/CabalHelper/Runtime/Compat.hs | 1 | ||||
-rw-r--r-- | src/CabalHelper/Runtime/HelperMain.hs | 4 |
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` |