summaryrefslogtreecommitdiff
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
parentad7448d3620984e33ce10330220a1acd9727da4c (diff)
downloadhaskell-wip/coreField.tar.gz
Add the extensible data to the interface after running the last phasewip/coreField
-rw-r--r--compiler/GHC/Iface/Make.hs9
-rw-r--r--compiler/GHC/IfaceToCore.hs4
2 files changed, 7 insertions, 6 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)
diff --git a/compiler/GHC/IfaceToCore.hs b/compiler/GHC/IfaceToCore.hs
index 19217aceb4..353f9e4569 100644
--- a/compiler/GHC/IfaceToCore.hs
+++ b/compiler/GHC/IfaceToCore.hs
@@ -83,8 +83,6 @@ import qualified BooleanFormula as BF
import Control.Monad
import qualified Data.Map as Map
-import Data.IORef
-import GHC.Types.Name.Cache
{-
This module takes
@@ -1862,7 +1860,7 @@ tcIfaceBinding mod loc ibind = do
tcIfaceBinding' :: Module -> SrcSpan -> (Bool, IfaceBinding) -> IfL (Bind Id)
tcIfaceBinding' _ _ (_p, (IfaceRec _)) = panic "tcIfaceBinding: expected NonRec at top level"
-tcIfaceBinding' mod loc b@(p, IfaceNonRec (IfLetBndr fs ty info ji) rhs) = do
+tcIfaceBinding' _mod _loc _b@(_p, IfaceNonRec (IfLetBndr fs ty _info ji) rhs) = do
name <- lookupIfaceTop (mkVarOccFS fs)