Skip to content

Commit 012e809

Browse files
soulomoonmichaelpj
andauthored
Simplify initPlugins (#4344)
* simplify initPlugins * fix cabal * remove initializePlugins --------- Co-authored-by: Michael Peyton Jones <[email protected]>
1 parent 1f5c60d commit 012e809

File tree

4 files changed

+11
-22
lines changed

4 files changed

+11
-22
lines changed

ghcide/src/Development/IDE/Core/Compile.hs

+7-6
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ import System.IO.Extra (fixIO,
109109

110110
import qualified Data.Set as Set
111111
import qualified GHC as G
112+
import qualified GHC.Runtime.Loader as Loader
112113
import GHC.Tc.Gen.Splice
113114
import GHC.Types.ForeignStubs
114115
import GHC.Types.HpcInfo
@@ -174,15 +175,15 @@ typecheckModule (IdeDefer defer) hsc tc_helpers pm = do
174175
let modSummary = pm_mod_summary pm
175176
dflags = ms_hspp_opts modSummary
176177
initialized <- catchSrcErrors (hsc_dflags hsc) "typecheck (initialize plugins)"
177-
(initPlugins hsc modSummary)
178+
(Loader.initializePlugins (hscSetFlags (ms_hspp_opts modSummary) hsc))
178179
case initialized of
179180
Left errs -> return (errs, Nothing)
180-
Right (modSummary', hscEnv) -> do
181+
Right hscEnv -> do
181182
(warnings, etcm) <- withWarnings sourceTypecheck $ \tweak ->
182183
let
183184
session = tweak (hscSetFlags dflags hscEnv)
184185
-- TODO: maybe settings ms_hspp_opts is unnecessary?
185-
mod_summary'' = modSummary' { ms_hspp_opts = hsc_dflags session}
186+
mod_summary'' = modSummary { ms_hspp_opts = hsc_dflags session}
186187
in
187188
catchSrcErrors (hsc_dflags hscEnv) sourceTypecheck $ do
188189
tcRnModule session tc_helpers $ demoteIfDefer pm{pm_mod_summary = mod_summary''}
@@ -981,7 +982,7 @@ getModSummaryFromImports env fp _modTime mContents = do
981982

982983
let modl = mkHomeModule (hscHomeUnit ppEnv) mod
983984
sourceType = if "-boot" `isSuffixOf` takeExtension fp then HsBootFile else HsSrcFile
984-
msrModSummary2 =
985+
msrModSummary =
985986
ModSummary
986987
{ ms_mod = modl
987988
, ms_hie_date = Nothing
@@ -1002,8 +1003,8 @@ getModSummaryFromImports env fp _modTime mContents = do
10021003
, ms_textual_imps = textualImports
10031004
}
10041005

1005-
msrFingerprint <- liftIO $ computeFingerprint opts msrModSummary2
1006-
(msrModSummary, msrHscEnv) <- liftIO $ initPlugins ppEnv msrModSummary2
1006+
msrFingerprint <- liftIO $ computeFingerprint opts msrModSummary
1007+
msrHscEnv <- liftIO $ Loader.initializePlugins (hscSetFlags (ms_hspp_opts msrModSummary) ppEnv)
10071008
return ModSummaryResult{..}
10081009
where
10091010
-- Compute a fingerprint from the contents of `ModSummary`,

ghcide/src/Development/IDE/Core/Preprocessor.hs

+2-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import Development.IDE.GHC.Error
2828
import Development.IDE.Types.Diagnostics
2929
import Development.IDE.Types.Location
3030
import qualified GHC.LanguageExtensions as LangExt
31+
import qualified GHC.Runtime.Loader as Loader
3132
import GHC.Utils.Logger (LogFlags (..))
3233
import System.FilePath
3334
import System.IO.Extra
@@ -149,7 +150,7 @@ parsePragmasIntoHscEnv env fp contents = catchSrcErrors dflags0 "pragmas" $ do
149150
evaluate $ rnf opts
150151

151152
(dflags, _, _) <- parseDynamicFilePragma dflags0 opts
152-
hsc_env' <- initializePlugins (hscSetFlags dflags env)
153+
hsc_env' <- Loader.initializePlugins (hscSetFlags dflags env)
153154
return (map unLoc opts, hscSetFlags (disableWarningsAsErrors $ hsc_dflags hsc_env') hsc_env')
154155
where dflags0 = hsc_dflags env
155156

ghcide/src/Development/IDE/GHC/Compat/Plugins.hs

-14
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ module Development.IDE.GHC.Compat.Plugins (
77
defaultPlugin,
88
PluginWithArgs(..),
99
applyPluginsParsedResultAction,
10-
initializePlugins,
11-
initPlugins,
1210

1311
-- * Static plugins
1412
StaticPlugin(..),
@@ -20,7 +18,6 @@ module Development.IDE.GHC.Compat.Plugins (
2018
) where
2119

2220
import Development.IDE.GHC.Compat.Core
23-
import Development.IDE.GHC.Compat.Env (hscSetFlags, hsc_dflags)
2421
import Development.IDE.GHC.Compat.Parser as Parser
2522

2623
import qualified GHC.Driver.Env as Env
@@ -32,7 +29,6 @@ import GHC.Driver.Plugins (ParsedResult (..),
3229
defaultPlugin,
3330
staticPlugins, withPlugins)
3431
import qualified GHC.Parser.Lexer as Lexer
35-
import qualified GHC.Runtime.Loader as Loader
3632

3733

3834
getPsMessages :: PState -> PsMessages
@@ -48,16 +44,6 @@ applyPluginsParsedResultAction env ms parsed msgs = do
4844
applyPluginAction
4945
(ParsedResult (HsParsedModule parsed []) msgs)
5046

51-
initializePlugins :: HscEnv -> IO HscEnv
52-
initializePlugins env = do
53-
Loader.initializePlugins env
54-
55-
-- | Plugins aren't stored in ModSummary anymore since GHC 9.2, but this
56-
-- function still returns it for compatibility with 8.10
57-
initPlugins :: HscEnv -> ModSummary -> IO (ModSummary, HscEnv)
58-
initPlugins session modSummary = do
59-
session1 <- initializePlugins (hscSetFlags (ms_hspp_opts modSummary) session)
60-
return (modSummary{ms_hspp_opts = hsc_dflags session1}, session1)
6147

6248
hsc_static_plugins :: HscEnv -> [StaticPlugin]
6349
hsc_static_plugins = staticPlugins . Env.hsc_plugins

plugins/hls-splice-plugin/src/Ide/Plugin/Splice.hs

+2-1
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import Development.IDE.GHC.Compat.ExactPrint
4444
import qualified Development.IDE.GHC.Compat.Util as Util
4545
import Development.IDE.GHC.ExactPrint
4646
import GHC.Exts
47+
import qualified GHC.Runtime.Loader as Loader
4748
import qualified GHC.Types.Error as Error
4849
import Ide.Plugin.Error (PluginError (PluginInternalError))
4950
import Ide.Plugin.Splice.Types
@@ -232,7 +233,7 @@ setupDynFlagsForGHCiLike env dflags = do
232233
`gopt_set` Opt_IgnoreOptimChanges
233234
`gopt_set` Opt_IgnoreHpcChanges
234235
`gopt_unset` Opt_DiagnosticsShowCaret
235-
initializePlugins (hscSetFlags dflags4 env)
236+
Loader.initializePlugins (hscSetFlags dflags4 env)
236237

237238
adjustToRange :: Uri -> Range -> WorkspaceEdit -> WorkspaceEdit
238239
adjustToRange uri ran (WorkspaceEdit mhult mlt x) =

0 commit comments

Comments
 (0)