@@ -12,6 +12,9 @@
12module Development.IDE.Core.Rules(
12module Development.IDE.Core.Rules(
13 IdeState, GetDependencies(..), GetParsedModule(..), TransitiveDependencies(..),
13 IdeState, GetDependencies(..), GetParsedModule(..), TransitiveDependencies(..),
14 Priority(..),
14 Priority(..),
16+ priorityGenerateCore,
17+ priorityFilesOfInterest,
15 runAction, useE, usesE,
18 runAction, useE, usesE,
16 toIdeResult, defineNoFile,
19 toIdeResult, defineNoFile,
@@ -117,14 +120,14 @@ getParsedModule file = use GetParsedModule file
118-- These typically go from key to value and are oracles.
121-- These typically go from key to value and are oracles.
120−-- TODO (MK) This should be independent of DAML or move out of hie-core.
123+priorityTypeCheck :: Priority
121−-- | We build artefacts based on the following high-to-low priority order.
124+priorityTypeCheck = Priority 0
124− | PriorityGenerateDalf
125− | PriorityFilesOfInterest
126− deriving (Eq, Ord, Show, Enum)
126+priorityGenerateCore :: Priority
127+priorityGenerateCore = Priority (-1)
129+priorityFilesOfInterest :: Priority
130+priorityFilesOfInterest = Priority (-2)
129getParsedModuleRule :: Rules ()
132getParsedModuleRule :: Rules ()
130getParsedModuleRule =
133getParsedModuleRule =
@@ -240,7 +243,7 @@ typeCheckRule =
240 pm <- use_ GetParsedModule file
243 pm <- use_ GetParsedModule file
241 deps <- use_ GetDependencies file
244 deps <- use_ GetDependencies file
242 tms <- uses_ TypeCheck (transitiveModuleDeps deps)
245 tms <- uses_ TypeCheck (transitiveModuleDeps deps)
243− setPriority PriorityTypeCheck
246+ setPriority priorityTypeCheck
244 packageState <- use_ GhcSession ""
247 packageState <- use_ GhcSession ""
245 opt <- getIdeOptions
248 opt <- getIdeOptions
246 liftIO $ Compile.typecheckModule opt packageState tms pm
249 liftIO $ Compile.typecheckModule opt packageState tms pm
@@ -252,7 +255,7 @@ generateCoreRule =
252 deps <- use_ GetDependencies file
255 deps <- use_ GetDependencies file
253 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
256 (tm:tms) <- uses_ TypeCheck (file:transitiveModuleDeps deps)
254 let pm = tm_parsed_module . Compile.tmrModule $ tm
257 let pm = tm_parsed_module . Compile.tmrModule $ tm
255− setPriority PriorityGenerateDalf
258+ setPriority priorityGenerateCore
256 packageState <- use_ GhcSession ""
259 packageState <- use_ GhcSession ""
257 liftIO $ Compile.compileModule pm packageState tms tm
260 liftIO $ Compile.compileModule pm packageState tms tm