@@ -66,6 +66,7 @@ import qualified System.Directory.Extra as IO
66
66
import System.FilePath
67
67
import System.Info
68
68
import System.IO
69
+ import System.Exit
69
70
70
71
import GHCi
71
72
import HscTypes (ic_dflags , hsc_IC , hsc_dflags , hsc_NC )
@@ -106,20 +107,22 @@ defaultLoadingOptions = SessionLoadingOptions
106
107
}
107
108
108
109
-- | Sets `unsafeGlobalDynFlags` on using the hie-bios cradle and returns the GHC libdir
109
- setInitialDynFlags :: IO ( Maybe FilePath )
110
+ setInitialDynFlags :: IO LibDir
110
111
setInitialDynFlags = do
111
112
dir <- IO. getCurrentDirectory
112
113
hieYaml <- runMaybeT $ yamlConfig dir
113
114
cradle <- maybe (HieBios. loadImplicitCradle $ addTrailingPathSeparator dir) HieBios. loadCradle hieYaml
114
115
libDirRes <- getRuntimeGhcLibDir cradle
115
116
libdir <- case libDirRes of
116
- CradleSuccess libdir -> pure $ Just libdir
117
+ CradleSuccess libdir -> pure $ LibDir libdir
117
118
CradleFail err -> do
118
119
hPutStrLn stderr $ " Couldn't load cradle for libdir: " ++ show err
119
- return Nothing
120
- CradleNone -> return Nothing
121
- dynFlags <- mapM (dynFlagsForPrinting . LibDir ) libdir
122
- mapM_ setUnsafeGlobalDynFlags dynFlags
120
+ exitWith $ ExitFailure 1
121
+ CradleNone -> do
122
+ hPutStrLn stderr $ " Couldn't load cradle (CradleNone)"
123
+ exitWith $ ExitFailure 1
124
+ dynFlags <- dynFlagsForPrinting libdir
125
+ setUnsafeGlobalDynFlags dynFlags
123
126
pure libdir
124
127
125
128
-- | Wraps `withHieDb` to provide a database connection for reading, and a `HieWriterChan` for
0 commit comments