Commit 24e61aad authored by Ben Price's avatar Ben Price Committed by Marge Bot

Lint should say when it is checking a rule

It is rather confusing that when lint finds an error in a rule attached
to a binder, it reports the error as in the RHS, not the rule:
  ...
  In the RHS of foo

We add a clarifying line:
  ...
  In the RHS of foo
  In a rule attached to foo

The implication that the rule lives inside the RHS is a bit odd, but
this niggle is already present for unfoldings, whose pattern we are
following.
parent a9311cd5
Pipeline #19596 passed with stages
in 781 minutes and 53 seconds
......@@ -659,7 +659,7 @@ lintLetBind top_lvl rec_flag binder rhs rhs_ty
ppr binder)
_ -> return ()
; mapM_ (lintCoreRule binder binder_ty) (idCoreRules binder)
; addLoc (RuleOf binder) $ mapM_ (lintCoreRule binder binder_ty) (idCoreRules binder)
; addLoc (UnfoldingOf binder) $
lintIdUnfolding binder binder_ty (idUnfolding binder) }
......@@ -2293,6 +2293,7 @@ data LintLocInfo
= RhsOf Id -- The variable bound
| OccOf Id -- Occurrence of id
| LambdaBodyOf Id -- The lambda-binder
| RuleOf Id -- Rules attached to a binder
| UnfoldingOf Id -- Unfolding of a binder
| BodyOfLetRec [Id] -- One of the binders
| CaseAlt CoreAlt -- Case alternative
......@@ -2511,6 +2512,9 @@ dumpLoc (OccOf v)
dumpLoc (LambdaBodyOf b)
= (getSrcLoc b, text "In the body of lambda with binder" <+> pp_binder b)
dumpLoc (RuleOf b)
= (getSrcLoc b, text "In a rule attached to" <+> pp_binder b)
dumpLoc (UnfoldingOf b)
= (getSrcLoc b, text "In the unfolding of" <+> pp_binder b)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment