Workaround for #340
This commit is contained in:
parent
b728294d3d
commit
615c6c4543
@ -1,3 +1,4 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
module Language.Haskell.GhcMod.Target (
|
||||
setTargetFiles
|
||||
) where
|
||||
@ -5,7 +6,7 @@ module Language.Haskell.GhcMod.Target (
|
||||
import Control.Applicative ((<$>))
|
||||
import Control.Monad (forM, void, (>=>))
|
||||
import DynFlags (ExtensionFlag(..), xopt)
|
||||
import GHC (DynFlags(..), LoadHowMuch(..))
|
||||
import GHC (LoadHowMuch(..))
|
||||
import qualified GHC as G
|
||||
import Language.Haskell.GhcMod.DynFlags
|
||||
import Language.Haskell.GhcMod.Monad
|
||||
@ -50,7 +51,10 @@ setTargetFiles files = do
|
||||
setCompilerMode Intelligent
|
||||
|
||||
needsFallback :: G.ModuleGraph -> Bool
|
||||
needsFallback = any (hasTHorQQ . G.ms_hspp_opts)
|
||||
where
|
||||
hasTHorQQ :: DynFlags -> Bool
|
||||
hasTHorQQ dflags = any (`xopt` dflags) [Opt_TemplateHaskell, Opt_QuasiQuotes]
|
||||
needsFallback = any $ \ms ->
|
||||
let df = G.ms_hspp_opts ms in
|
||||
Opt_TemplateHaskell `xopt` df
|
||||
|| Opt_QuasiQuotes `xopt` df
|
||||
#if __GLASGOW_HASKELL__ >= 708
|
||||
|| (Opt_PatternSynonyms `xopt` df)
|
||||
#endif
|
||||
|
@ -31,6 +31,11 @@ spec = do
|
||||
res <- runID $ checkSyntax ["Baz.hs"]
|
||||
res `shouldSatisfy` ("Baz.hs:5:1:Warning:" `isPrefixOf`)
|
||||
|
||||
it "works with modules using PatternSynonyms" $ do
|
||||
withDirectory_ "test/data/pattern-synonyms" $ do
|
||||
res <- runID $ checkSyntax ["B.hs"]
|
||||
res `shouldSatisfy` ("B.hs:6:9:Warning:" `isPrefixOf`)
|
||||
|
||||
it "works with foreign exports" $ do
|
||||
withDirectory_ "test/data" $ do
|
||||
res <- runID $ checkSyntax ["ForeignExport.hs"]
|
||||
|
Loading…
Reference in New Issue
Block a user