From a7f407296514af572cbea1ac6da31662c37d29c6 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 22 Jun 2022 21:09:22 +0100 Subject: Fix exact printing of the HsRule name Prior to this branch, the HsRule name was XRec pass (SourceText,RuleName) and there is an ExactPrint instance for (SourceText, RuleName). The SourceText has moved to a different location, so synthesise the original to trigger the correct instance when printing. We need both the SourceText and RuleName when exact printing, as it is possible to have a NoSourceText variant, in which case we fall back to the FastString. --- compiler/GHC/Hs/Decls.hs | 2 -- utils/check-exact/ExactPrint.hs | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/compiler/GHC/Hs/Decls.hs b/compiler/GHC/Hs/Decls.hs index 9264d6c7c2..8bb7834f3b 100644 --- a/compiler/GHC/Hs/Decls.hs +++ b/compiler/GHC/Hs/Decls.hs @@ -1122,8 +1122,6 @@ data HsRuleRn = HsRuleRn NameSet NameSet -- Free-vars from the LHS and RHS type instance XXRuleDecl (GhcPass _) = DataConCantHappen -type instance Anno (SourceText, RuleName) = SrcAnn NoEpAnns - data HsRuleAnn = HsRuleAnn { ra_tyanns :: Maybe (AddEpAnn, AddEpAnn) diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs index ef2e98841b..eecb1e28eb 100644 --- a/utils/check-exact/ExactPrint.hs +++ b/utils/check-exact/ExactPrint.hs @@ -1037,9 +1037,9 @@ instance ExactPrint (RuleDecls GhcPs) where instance ExactPrint (RuleDecl GhcPs) where getAnnotationEntry (HsRule {rd_ext = (an,_)}) = fromAnn an - exact (HsRule (an,_) ln act mtybndrs termbndrs lhs rhs) = do + exact (HsRule (an,nsrc) (L ln n) act mtybndrs termbndrs lhs rhs) = do debugM "HsRule entered" - markAnnotated ln + markAnnotated (L ln (nsrc, n)) debugM "HsRule after ln" markActivation an ra_rest act debugM "HsRule after act" -- cgit v1.2.1