diff options
author | Josh Meredith <joshmeredith2008@gmail.com> | 2020-06-18 02:25:59 +1000 |
---|---|---|
committer | Josh Meredith <joshmeredith2008@gmail.com> | 2020-06-18 02:25:59 +1000 |
commit | 422453180c06d5dfbe8010f5c5a9749bfc6e4513 (patch) | |
tree | be155d774c840db973c0ed4d158c5b6252e86e3a | |
parent | ad7448d3620984e33ce10330220a1acd9727da4c (diff) | |
download | haskell-wip/coreField.tar.gz |
Add the extensible data to the interface after running the last phasewip/coreField
-rw-r--r-- | compiler/GHC/Iface/Make.hs | 9 | ||||
-rw-r--r-- | compiler/GHC/IfaceToCore.hs | 4 |
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) |