@@ -46,6 +46,8 @@ import qualified GhcMod.Types as GM
46
46
import qualified GhcMod.Utils as GM
47
47
import qualified GHC as GHC
48
48
import qualified DynFlags as GHC
49
+ import qualified HscMain as GHC
50
+ import qualified HscTypes as GHC
49
51
import qualified Data.Trie.Convenience as T
50
52
import qualified Data.Trie as T
51
53
import qualified HIE.Bios as BIOS
@@ -101,19 +103,16 @@ loadCradle iniDynFlags (NewCradle fp) = do
101
103
-- Now load the new cradle
102
104
crdl <- liftIO $ BIOS. findCradle fp
103
105
traceShowM crdl
104
- GHC. setSessionDynFlags iniDynFlags
106
+ liftIO ( GHC. newHscEnv iniDynFlags) >>= GHC. setSession
105
107
liftIO $ setCurrentDirectory (BIOS. cradleRootDir crdl)
106
108
BIOS. initializeFlagsWithCradle fp crdl
107
109
GHC. getSessionDynFlags >>= setCurrentCradle crdl
108
- loadCradle iniDynFlags (LoadCradle (CachedCradle crd dflags )) = do
110
+ loadCradle iniDynFlags (LoadCradle (CachedCradle crd env )) = do
109
111
traceShowM (" Reload Cradle" , crd)
110
112
-- Cache the existing cradle
111
113
maybe (return () ) cacheCradle =<< (currentCradle <$> getModuleCache)
112
-
113
- GHC. setSessionDynFlags iniDynFlags
114
- GHC. setSessionDynFlags dflags
115
-
116
- setCurrentCradle crd dflags
114
+ GHC. setSession env
115
+ setCurrentCradle crd (GHC. hsc_dflags env)
117
116
118
117
119
118
@@ -127,8 +126,8 @@ setCurrentCradle crdl df = do
127
126
128
127
cacheCradle :: (HasGhcModuleCache m , GHC. GhcMonad m ) => ([FilePath ], BIOS. Cradle ) -> m ()
129
128
cacheCradle (ds, c) = do
130
- dflags <- GHC. getSessionDynFlags
131
- let cc = CachedCradle c dflags
129
+ env <- GHC. getSession
130
+ let cc = CachedCradle c env
132
131
new_map = T. fromList (map (, cc) (map B. pack ds))
133
132
modifyCache (\ s -> s { cradleCache = T. unionWith (\ a _ -> a) new_map (cradleCache s) })
134
133
0 commit comments