summaryrefslogtreecommitdiff
path: root/compiler/GHC/Core/Lint.hs
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2022-05-26 16:11:58 +0000
committerJohn Ericson <John.Ericson@Obsidian.Systems>2023-01-17 19:04:50 -0500
commit4322de246d35091e5e95a3a87fb4c1f9b7a61ee9 (patch)
tree092cd0e518b59d5fc0d666c6f1bf56e0b3c421c2 /compiler/GHC/Core/Lint.hs
parentf4d50bafb7e14f76273aaf6f634815d5628ccc86 (diff)
downloadhaskell-wip/rules-module.tar.gz
Split up `GHC.Core` somewhatwip/rules-module
- `GHC.Core.Annotated` now contains annotated Core - `GHC.Core.Rules` now contains the rules definitions - `GHC.Core.Orphans` now contains the orphans *something* - `GHC.Core.Unfoldings` now contains the unfoldings defintions - The old `GHC.Core.Rules`, which was about applying rules, is now `GHC.Core.Rules.Apply`. Compare with `GHC.Core.Simplify.Inlin` which was also about operations not the data structures and simple predictes themselves (which is `GHC.Core.Unfold`).
Diffstat (limited to 'compiler/GHC/Core/Lint.hs')
-rw-r--r--compiler/GHC/Core/Lint.hs4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/GHC/Core/Lint.hs b/compiler/GHC/Core/Lint.hs
index 73faebd80d..4c1bfdad80 100644
--- a/compiler/GHC/Core/Lint.hs
+++ b/compiler/GHC/Core/Lint.hs
@@ -38,6 +38,7 @@ import GHC.Unit.Module.ModGuts
import GHC.Platform
import GHC.Core
+import GHC.Core.Rules
import GHC.Core.FVs
import GHC.Core.Utils
import GHC.Core.Stats ( coreBindsStats )
@@ -60,6 +61,7 @@ import GHC.Core.Coercion.Opt ( checkAxInstCo )
import GHC.Core.Opt.Arity ( typeArity, exprIsDeadEnd )
import GHC.Core.Opt.Monad
+import GHC.Core.Unfoldings
import GHC.Types.Literal
import GHC.Types.Var as Var
@@ -2037,7 +2039,7 @@ lintCoreRule fun fun_ty rule@(Rule { ru_name = name, ru_bndrs = bndrs
rhs_fvs = exprFreeVars rhs
is_bad_bndr :: Var -> Bool
- -- See Note [Unbound RULE binders] in GHC.Core.Rules
+ -- See Note [Unbound RULE binders] in GHC.Core.Rules.Apply
is_bad_bndr bndr = not (bndr `elemVarSet` lhs_fvs)
&& bndr `elemVarSet` rhs_fvs
&& isNothing (isReflCoVar_maybe bndr)