@@ -28,9 +28,9 @@ module Development.IDE.Core.Rules(
29import Control.Monad.Except
29import Control.Monad.Except
30import Control.Monad.Trans.Maybe
30import Control.Monad.Trans.Maybe
31−import qualified Development.IDE.Core.Compile as Compile
31+import Development.IDE.Core.Compile
32−import qualified Development.IDE.Types.Options as Compile
32+import Development.IDE.Types.Options
33−import qualified Development.IDE.Spans.Calculate as Compile
33+import Development.IDE.Spans.Calculate
34import Development.IDE.Import.DependencyInformation
34import Development.IDE.Import.DependencyInformation
35import Development.IDE.Import.FindImports
35import Development.IDE.Import.FindImports
36import Development.IDE.Core.FileStore
36import Development.IDE.Core.FileStore
@@ -47,7 +47,7 @@ import Development.IDE.GHC.Error
47import Development.Shake hiding (Diagnostic, Env, newCache)
47import Development.Shake hiding (Diagnostic, Env, newCache)
48import Development.IDE.Core.RuleTypes
48import Development.IDE.Core.RuleTypes
50−import GHC
50+import GHC hiding (parseModule, typecheckModule)
51import Development.IDE.GHC.Compat
51import Development.IDE.GHC.Compat
52import UniqSupply
52import UniqSupply
53import NameCache
53import NameCache
@@ -105,7 +105,7 @@ getAtPoint file pos = fmap join $ runMaybeT $ do
105 files <- transitiveModuleDeps <$> useE GetDependencies file
105 files <- transitiveModuleDeps <$> useE GetDependencies file
106 tms <- usesE TypeCheck (file : files)
106 tms <- usesE TypeCheck (file : files)
107 spans <- useE GetSpanInfo file
107 spans <- useE GetSpanInfo file
108− return $ AtPoint.atPoint opts (map Compile.tmrModule tms) spans pos
108+ return $ AtPoint.atPoint opts (map tmrModule tms) spans pos
110-- | Goto Definition.
110-- | Goto Definition.
111getDefinition :: NormalizedFilePath -> Position -> Action (Maybe Location)
111getDefinition :: NormalizedFilePath -> Position -> Action (Maybe Location)
@@ -140,7 +140,7 @@ getParsedModuleRule =
140 (_, contents) <- getFileContents file
140 (_, contents) <- getFileContents file
141 packageState <- useNoFile_ GhcSession
141 packageState <- useNoFile_ GhcSession
142 opt <- getIdeOptions
142 opt <- getIdeOptions
143− liftIO $ Compile.parseModule opt packageState (fromNormalizedFilePath file) contents
143+ liftIO $ parseModule opt packageState (fromNormalizedFilePath file) contents
145getLocatedImportsRule :: Rules ()
145getLocatedImportsRule :: Rules ()
146getLocatedImportsRule =
146getLocatedImportsRule =
@@ -149,10 +149,10 @@ getLocatedImportsRule =
149 let ms = pm_mod_summary pm
149 let ms = pm_mod_summary pm
150 let imports = ms_textual_imps ms
150 let imports = ms_textual_imps ms
151 env <- useNoFile_ GhcSession
151 env <- useNoFile_ GhcSession
152− let dflags = Compile.addRelativeImport pm $ hsc_dflags env
152+ let dflags = addRelativeImport pm $ hsc_dflags env
153 opt <- getIdeOptions
153 opt <- getIdeOptions
154 xs <- forM imports $ \(mbPkgName, modName) ->
154 xs <- forM imports $ \(mbPkgName, modName) ->
155− (modName, ) <$> locateModule dflags (Compile.optExtensions opt) getFileExists modName mbPkgName
155+ (modName, ) <$> locateModule dflags (optExtensions opt) getFileExists modName mbPkgName
156 return (concat $ lefts $ map snd xs, Just $ map (second eitherToMaybe) xs)
156 return (concat $ lefts $ map snd xs, Just $ map (second eitherToMaybe) xs)
@@ -174,7 +174,7 @@ rawDependencyInformation f = go (Set.singleton f) Map.empty Map.empty
174 modOrPkgImports <- forM imports $ \imp -> do
174 modOrPkgImports <- forM imports $ \imp -> do
175 case imp of
175 case imp of
176 (_modName, Just (PackageImport pkg)) -> do
176 (_modName, Just (PackageImport pkg)) -> do
177− pkgs <- ExceptT $ liftIO $ Compile.computePackageDeps packageState pkg
177+ pkgs <- ExceptT $ liftIO $ computePackageDeps packageState pkg
178 pure $ Right $ pkg:pkgs
178 pure $ Right $ pkg:pkgs
179 (modName, Just (FileImport absFile)) -> pure $ Left (modName, Just absFile)
179 (modName, Just (FileImport absFile)) -> pure $ Left (modName, Just absFile)
180 (modName, Nothing) -> pure $ Left (modName, Nothing)
180 (modName, Nothing) -> pure $ Left (modName, Nothing)
@@ -237,7 +237,7 @@ getSpanInfoRule =
237 tc <- use_ TypeCheck file
237 tc <- use_ TypeCheck file
238 imports <- use_ GetLocatedImports file
238 imports <- use_ GetLocatedImports file
239 packageState <- useNoFile_ GhcSession
239 packageState <- useNoFile_ GhcSession
240− x <- liftIO $ Compile.getSrcSpanInfos packageState (fileImports imports) tc
240+ x <- liftIO $ getSrcSpanInfos packageState (fileImports imports) tc
241 return ([], Just x)
241 return ([], Just x)
243-- Typechecks a module.
243-- Typechecks a module.
@@ -250,7 +250,7 @@ typeCheckRule =
250 setPriority priorityTypeCheck
250 setPriority priorityTypeCheck
251 packageState <- useNoFile_ GhcSession
251 packageState <- useNoFile_ GhcSession
252 opt <- getIdeOptions
252 opt <- getIdeOptions
253− liftIO $ Compile.typecheckModule opt packageState tms pm
253+ liftIO $ typecheckModule opt packageState tms pm
256generateCoreRule :: Rules ()
256generateCoreRule :: Rules ()
@@ -260,13 +260,13 @@ generateCoreRule =
260 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
260 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
261 setPriority priorityGenerateCore
261 setPriority priorityGenerateCore
262 packageState <- useNoFile_ GhcSession
262 packageState <- useNoFile_ GhcSession
263− liftIO $ Compile.compileModule packageState tms tm
263+ liftIO $ compileModule packageState tms tm
265loadGhcSession :: Rules ()
265loadGhcSession :: Rules ()
266loadGhcSession =
266loadGhcSession =
267 defineNoFile $ \GhcSession -> do
267 defineNoFile $ \GhcSession -> do
268 opts <- getIdeOptions
268 opts <- getIdeOptions
269− Compile.optGhcSession opts
269+ optGhcSession opts
272getHieFileRule :: Rules ()
272getHieFileRule :: Rules ()