From 45f8194c0c6b0cb0c874668c7c73bdfaac3d0b66 Mon Sep 17 00:00:00 2001 From: Alejandro Serrano Date: Sat, 11 Jul 2015 12:47:03 +0200 Subject: [PATCH] Set -fdefer-types-holes in case split --- Language/Haskell/GhcMod/CaseSplit.hs | 2 +- Language/Haskell/GhcMod/DynFlags.hs | 4 ++++ Language/Haskell/GhcMod/Gap.hs | 8 ++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Language/Haskell/GhcMod/CaseSplit.hs b/Language/Haskell/GhcMod/CaseSplit.hs index 1db05d7..4bf9588 100644 --- a/Language/Haskell/GhcMod/CaseSplit.hs +++ b/Language/Haskell/GhcMod/CaseSplit.hs @@ -47,7 +47,7 @@ splits :: IOish m -> Int -- ^ Column number. -> GhcModT m String splits file lineNo colNo = - ghandle handler $ runGmlT' [Left file] deferErrors $ do + ghandle handler $ runGmlT' [Left file] deferErrorsAndHoles $ do opt <- options crdl <- cradle style <- getStyle diff --git a/Language/Haskell/GhcMod/DynFlags.hs b/Language/Haskell/GhcMod/DynFlags.hs index f1950f7..aeea699 100644 --- a/Language/Haskell/GhcMod/DynFlags.hs +++ b/Language/Haskell/GhcMod/DynFlags.hs @@ -100,3 +100,7 @@ setNoMaxRelevantBindings = id deferErrors :: DynFlags -> Ghc DynFlags deferErrors df = return $ Gap.setWarnTypedHoles $ Gap.setDeferTypeErrors $ setNoWarningFlags df + +deferErrorsAndHoles :: DynFlags -> Ghc DynFlags +deferErrorsAndHoles df = return $ + Gap.setDeferTypeErrors $ Gap.setDeferTypedHoles $ setNoWarningFlags df diff --git a/Language/Haskell/GhcMod/Gap.hs b/Language/Haskell/GhcMod/Gap.hs index 007976c..511f0bc 100644 --- a/Language/Haskell/GhcMod/Gap.hs +++ b/Language/Haskell/GhcMod/Gap.hs @@ -14,6 +14,7 @@ module Language.Haskell.GhcMod.Gap ( , setCabalPkg , setHideAllPackages , setDeferTypeErrors + , setDeferTypedHoles , setWarnTypedHoles , setDumpSplices , isDumpSplices @@ -294,6 +295,13 @@ setDeferTypeErrors dflag = dopt_set dflag Opt_DeferTypeErrors setDeferTypeErrors = id #endif +setDeferTypedHoles :: DynFlags -> DynFlags +#if __GLASGOW_HASKELL__ >= 708 +setDeferTypedHoles dflag = gopt_set dflag Opt_DeferTypedHoles +#else +setDeferTypedHoles = id +#endif + setWarnTypedHoles :: DynFlags -> DynFlags #if __GLASGOW_HASKELL__ >= 708 setWarnTypedHoles dflag = wopt_set dflag Opt_WarnTypedHoles