From c1c0993b4a061145ddd19d91dbb30873e586d5eb Mon Sep 17 00:00:00 2001 From: Kazu Yamamoto Date: Sat, 26 Apr 2014 13:21:22 +0900 Subject: [PATCH] import DynFlag only in Gap. --- Language/Haskell/GhcMod/Doc.hs | 3 +- Language/Haskell/GhcMod/ErrMsg.hs | 5 ++-- Language/Haskell/GhcMod/GHCApi.hs | 5 ++-- Language/Haskell/GhcMod/Gap.hs | 49 ++++++++++++++++--------------- 4 files changed, 30 insertions(+), 32 deletions(-) diff --git a/Language/Haskell/GhcMod/Doc.hs b/Language/Haskell/GhcMod/Doc.hs index e99c2d0..4c3d8ce 100644 --- a/Language/Haskell/GhcMod/Doc.hs +++ b/Language/Haskell/GhcMod/Doc.hs @@ -1,7 +1,6 @@ module Language.Haskell.GhcMod.Doc where -import DynFlags (DynFlags) -import GHC (Ghc) +import GHC (Ghc, DynFlags) import qualified GHC as G import Language.Haskell.GhcMod.Gap (withStyle, showDocWith) import Outputable (SDoc, PprStyle, mkUserStyle, Depth(AllTheWay), neverQualify) diff --git a/Language/Haskell/GhcMod/ErrMsg.hs b/Language/Haskell/GhcMod/ErrMsg.hs index daaf0f3..1b38a0d 100644 --- a/Language/Haskell/GhcMod/ErrMsg.hs +++ b/Language/Haskell/GhcMod/ErrMsg.hs @@ -11,7 +11,6 @@ import Bag (Bag, bagToList) import Control.Applicative ((<$>)) import Data.IORef (IORef, newIORef, readIORef, writeIORef, modifyIORef) import Data.Maybe (fromMaybe) -import DynFlags (dopt) import ErrUtils (ErrMsg, errMsgShortDoc, errMsgExtraInfo) import GHC (Ghc, DynFlags, SrcSpan, Severity(SevError)) import qualified GHC as G @@ -85,8 +84,8 @@ ppMsg spn sev dflag style msg = prefix ++ cts where cts = showPage dflag style msg defaultPrefix - | dopt Gap.dumpSplicesFlag dflag = "" - | otherwise = checkErrorPrefix + | Gap.isDumpSplices dflag = "" + | otherwise = checkErrorPrefix prefix = fromMaybe defaultPrefix $ do (line,col,_,_) <- Gap.getSrcSpan spn file <- normalise <$> Gap.getSrcFile spn diff --git a/Language/Haskell/GhcMod/GHCApi.hs b/Language/Haskell/GhcMod/GHCApi.hs index 94ae35b..994da29 100644 --- a/Language/Haskell/GhcMod/GHCApi.hs +++ b/Language/Haskell/GhcMod/GHCApi.hs @@ -21,7 +21,6 @@ import Control.Monad (forM, void) import CoreMonad (liftIO) import Data.Maybe (isJust, fromJust) import Distribution.PackageDescription (PackageDescription) -import DynFlags (dopt_set) import Exception (ghandle, SomeException(..)) import GHC (Ghc, GhcMonad, DynFlags(..), GhcLink(..), HscTarget(..), LoadHowMuch(..)) import qualified GHC as G @@ -146,8 +145,8 @@ setBuildEnv build = setHideAllPackages build . setCabalPackage build -- | Set option in 'DynFlags' to Expand template haskell if first argument is -- True setSplice :: Bool -> DynFlags -> DynFlags -setSplice False df = df -setSplice True df = dopt_set df Gap.dumpSplicesFlag +setSplice False = id +setSplice True = Gap.setDumpSplices -- At the moment with this option set ghc only prints different error messages, -- suggesting the user to add a hidden package to the build-depends in his cabal diff --git a/Language/Haskell/GhcMod/Gap.hs b/Language/Haskell/GhcMod/Gap.hs index 5762ca3..a2024aa 100644 --- a/Language/Haskell/GhcMod/Gap.hs +++ b/Language/Haskell/GhcMod/Gap.hs @@ -15,6 +15,9 @@ module Language.Haskell.GhcMod.Gap ( , setCabalPkg , setHideAllPackages , addPackageFlags + , setDeferTypeErrors + , setDumpSplices + , isDumpSplices , filterOutChildren , infoThing , pprInfo @@ -29,8 +32,6 @@ module Language.Haskell.GhcMod.Gap ( , showDocWith , GapThing(..) , fromTyThing - , dumpSplicesFlag - , setDeferTypeErrors ) where import Control.Applicative hiding (empty) @@ -235,12 +236,10 @@ setCabalPkg dflag = dopt_set dflag Opt_BuildingCabalPackage ---------------------------------------------------------------- setHideAllPackages :: DynFlags -> DynFlags -setHideAllPackages df = df' - where #if __GLASGOW_HASKELL__ >= 707 - df' = gopt_set df Opt_HideAllPackages +setHideAllPackages df = gopt_set df Opt_HideAllPackages #else - df' = dopt_set df Opt_HideAllPackages +setHideAllPackages df = dopt_set df Opt_HideAllPackages #endif addPackageFlags :: [Package] -> DynFlags -> DynFlags @@ -249,6 +248,26 @@ addPackageFlags pkgs df = where expose pkg = ExposePackageId $ showPkgId pkg +---------------------------------------------------------------- + +setDumpSplices :: DynFlags -> DynFlags +setDumpSplices dflag = dopt_set dflag Opt_D_dump_splices + +isDumpSplices :: DynFlags -> Bool +isDumpSplices dflag = dopt Opt_D_dump_splices dflag + +---------------------------------------------------------------- + + +setDeferTypeErrors :: DynFlags -> DynFlags +#if __GLASGOW_HASKELL__ >= 707 +setDeferTypeErrors dflag = gopt_set dflag Opt_DeferTypeErrors +#elif __GLASGOW_HASKELL__ >= 706 +setDeferTypeErrors dflag = dopt_set dflag Opt_DeferTypeErrors +#else +setDeferTypeErrors = id +#endif + ---------------------------------------------------------------- ---------------------------------------------------------------- @@ -355,21 +374,3 @@ fromTyThing (ADataCon d) = GtA $ dataConRepType d #endif fromTyThing (ATyCon t) = GtT t fromTyThing _ = GtN - ----------------------------------------------------------------- - -#if __GLASGOW_HASKELL__ >= 707 -dumpSplicesFlag :: DumpFlag -#else -dumpSplicesFlag :: DynFlag -#endif -dumpSplicesFlag = Opt_D_dump_splices - -setDeferTypeErrors :: DynFlags -> DynFlags -#if __GLASGOW_HASKELL__ >= 707 -setDeferTypeErrors dflag = gopt_set dflag Opt_DeferTypeErrors -#elif __GLASGOW_HASKELL__ >= 706 -setDeferTypeErrors dflag = dopt_set dflag Opt_DeferTypeErrors -#else -setDeferTypeErrors = id -#endif