diff options
Diffstat (limited to 'compiler/GHC/Tc')
-rw-r--r-- | compiler/GHC/Tc/Instance/Class.hs | 4 | ||||
-rw-r--r-- | compiler/GHC/Tc/Plugin.hs | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/compiler/GHC/Tc/Instance/Class.hs b/compiler/GHC/Tc/Instance/Class.hs index f80d3eaf93..757226ed28 100644 --- a/compiler/GHC/Tc/Instance/Class.hs +++ b/compiler/GHC/Tc/Instance/Class.hs @@ -359,8 +359,8 @@ matchKnownNat :: DynFlags -> Bool -- True <=> caller is the short-cut solver -- See Note [Shortcut solving: overlap] -> Class -> [Type] -> TcM ClsInstResult -matchKnownNat _ _ clas [ty] -- clas = KnownNat - | Just n <- isNumLitTy ty = makeLitDict clas ty (mkNaturalExpr n) +matchKnownNat dflags _ clas [ty] -- clas = KnownNat + | Just n <- isNumLitTy ty = makeLitDict clas ty (mkNaturalExpr (targetPlatform dflags) n) matchKnownNat df sc clas tys = matchInstEnv df sc clas tys -- See Note [Fabricating Evidence for Literals in Backpack] for why -- this lookup into the instance environment is required. diff --git a/compiler/GHC/Tc/Plugin.hs b/compiler/GHC/Tc/Plugin.hs index a62ac86734..f65b30db27 100644 --- a/compiler/GHC/Tc/Plugin.hs +++ b/compiler/GHC/Tc/Plugin.hs @@ -24,6 +24,7 @@ module GHC.Tc.Plugin ( -- * Getting the TcM state getTopEnv, + getTargetPlatform, getEnvs, getInstEnvs, getFamInstEnvs, @@ -51,6 +52,8 @@ module GHC.Tc.Plugin ( import GHC.Prelude +import GHC.Platform (Platform) + import qualified GHC.Tc.Utils.Monad as TcM import qualified GHC.Tc.Solver.Monad as TcS import qualified GHC.Tc.Utils.Env as TcM @@ -132,6 +135,10 @@ tcLookupId = unsafeTcPluginTcM . TcM.tcLookupId getTopEnv :: TcPluginM HscEnv getTopEnv = unsafeTcPluginTcM TcM.getTopEnv +getTargetPlatform :: TcPluginM Platform +getTargetPlatform = unsafeTcPluginTcM TcM.getPlatform + + getEnvs :: TcPluginM (TcGblEnv, TcLclEnv) getEnvs = unsafeTcPluginTcM TcM.getEnvs |