summaryrefslogtreecommitdiff
path: root/compiler/GHC/Iface
diff options
context:
space:
mode:
authorJosh Meredith <joshmeredith2008@gmail.com>2020-06-18 02:25:59 +1000
committerJosh Meredith <joshmeredith2008@gmail.com>2020-06-18 02:25:59 +1000
commit422453180c06d5dfbe8010f5c5a9749bfc6e4513 (patch)
treebe155d774c840db973c0ed4d158c5b6252e86e3a /compiler/GHC/Iface
parentad7448d3620984e33ce10330220a1acd9727da4c (diff)
downloadhaskell-wip/coreField.tar.gz
Add the extensible data to the interface after running the last phasewip/coreField
Diffstat (limited to 'compiler/GHC/Iface')
-rw-r--r--compiler/GHC/Iface/Make.hs9
1 files changed, 6 insertions, 3 deletions
diff --git a/compiler/GHC/Iface/Make.hs b/compiler/GHC/Iface/Make.hs
index c97ffef733..0e93809382 100644
--- a/compiler/GHC/Iface/Make.hs
+++ b/compiler/GHC/Iface/Make.hs
@@ -61,7 +61,6 @@ import Util hiding ( eqListBy )
import FastString
import Maybes
import GHC.HsToCore.Docs
-import GHC.Iface.Binary
import Data.Function
import Data.List ( findIndex, mapAccumL, sortBy )
@@ -69,7 +68,6 @@ import Data.Ord
import Data.IORef
import GHC.Driver.Plugins
-import Control.Monad
{-
************************************************************************
@@ -99,7 +97,9 @@ mkPartialIface hsc_env mod_details
, mg_decl_docs = decl_docs
, mg_arg_docs = arg_docs
}
- = withPlugins dflags (\p opts -> interfaceWriteAction p opts hsc_env mod_details guts) iface
+ = do iface' <- withPlugins dflags (\p opts -> interfaceWriteAction p opts hsc_env mod_details guts) iface
+ ext_fs <- readIORef $ hsc_extensible_fields hsc_env
+ return $ iface'{mi_ext_fields = ext_fs}
-- | gopt Opt_WriteCoreField dflags = do
-- fields <- writeFieldWith "ghc/core" write (mi_ext_fields iface)
-- forM_ (mg_binds guts) go
@@ -787,6 +787,9 @@ toIfaceModGuts (ModGuts f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 f15 f16 f
f28
f29
+isRealBinding :: Bind Id -> Bool
isRealBinding (NonRec n _) = isExternalName (idName n)
+isRealBinding _ = True
+toIfaceBind' :: Bind Id -> (Bool, IfaceBinding)
toIfaceBind' b = (isRealBinding b, toIfaceBind b)