@@ -15,7 +15,7 @@ module Development.IDE.Core.Rules(
1515 priorityTypeCheck,
1616 priorityGenerateCore,
1717 priorityFilesOfInterest,
18− runAction, useE, usesE,
18+ runAction, useE, useNoFileE, usesE,
1919 toIdeResult, defineNoFile,
2020 mainRule,
2121 getGhcCore,
@@ -68,6 +68,9 @@ toIdeResult = either (, Nothing) (([],) . Just)
6868useE :: IdeRule k v => k -> NormalizedFilePath -> MaybeT Action v
6969useE k = MaybeT . use k
7070
71+useNoFileE :: IdeRule k v => k -> MaybeT Action v
72+useNoFileE k = useE k ""
73+
7174usesE :: IdeRule k v => k -> [NormalizedFilePath] -> MaybeT Action [v]
7275usesE k = MaybeT . fmap sequence . uses k
7376
@@ -108,9 +111,9 @@ getAtPoint file pos = fmap join $ runMaybeT $ do
108111getDefinition :: NormalizedFilePath -> Position -> Action (Maybe Location)
109112getDefinition file pos = fmap join $ runMaybeT $ do
110113 spans <- useE GetSpanInfo file
111− pkgState <- useE GhcSession ""
114+ pkgState <- useNoFileE GhcSession
112115 opts <- lift getIdeOptions
113− let getHieFile x = use (GetHieFile x) ""
116+ let getHieFile x = useNoFile (GetHieFile x)
114117 lift $ AtPoint.gotoDefinition getHieFile opts pkgState spans pos
115118
116119-- | Parse the contents of a daml file.
@@ -135,7 +138,7 @@ getParsedModuleRule :: Rules ()
135138getParsedModuleRule =
136139 define $ \GetParsedModule file -> do
137140 (_, contents) <- getFileContents file
138− packageState <- use_ GhcSession ""
141+ packageState <- useNoFile_ GhcSession
139142 opt <- getIdeOptions
140143 liftIO $ Compile.parseModule opt packageState (fromNormalizedFilePath file) contents
141144
@@ -145,7 +148,7 @@ getLocatedImportsRule =
145148 pm <- use_ GetParsedModule file
146149 let ms = pm_mod_summary pm
147150 let imports = ms_textual_imps ms
148− env <- use_ GhcSession ""
151+ env <- useNoFile_ GhcSession
149152 let dflags = Compile.addRelativeImport pm $ hsc_dflags env
150153 opt <- getIdeOptions
151154 xs <- forM imports $ \(mbPkgName, modName) ->
@@ -167,7 +170,7 @@ rawDependencyInformation f = go (Set.singleton f) Map.empty Map.empty
167170 let modGraph' = Map.insert f (Left ModuleParseError) modGraph
168171 in go fs modGraph' pkgs
169172 Just imports -> do
170− packageState <- lift $ use_ GhcSession ""
173+ packageState <- lift $ useNoFile_ GhcSession
171174 modOrPkgImports <- forM imports $ \imp -> do
172175 case imp of
173176 (_modName, Just (PackageImport pkg)) -> do
@@ -233,7 +236,7 @@ getSpanInfoRule =
233236 define $ \GetSpanInfo file -> do
234237 tc <- use_ TypeCheck file
235238 imports <- use_ GetLocatedImports file
236− packageState <- use_ GhcSession ""
239+ packageState <- useNoFile_ GhcSession
237240 x <- liftIO $ Compile.getSrcSpanInfos packageState (fileImports imports) tc
238241 return ([], Just x)
239242
@@ -245,7 +248,7 @@ typeCheckRule =
245248 deps <- use_ GetDependencies file
246249 tms <- uses_ TypeCheck (transitiveModuleDeps deps)
247250 setPriority priorityTypeCheck
248− packageState <- use_ GhcSession ""
251+ packageState <- useNoFile_ GhcSession
249252 opt <- getIdeOptions
250253 liftIO $ Compile.typecheckModule opt packageState tms pm
251254
@@ -256,7 +259,7 @@ generateCoreRule =
256259 deps <- use_ GetDependencies file
257260 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
258261 setPriority priorityGenerateCore
259− packageState <- use_ GhcSession ""
262+ packageState <- useNoFile_ GhcSession
260263 liftIO $ Compile.compileModule packageState tms tm
261264
262265loadGhcSession :: Rules ()