From 0e01e1dbc22eb30b83f1975700b46b3e3d5e453b Mon Sep 17 00:00:00 2001 From: Alan Zimmerman <alan.zimm@gmail.com> Date: Tue, 19 Dec 2023 20:02:08 +0000 Subject: [PATCH] EPA: Move EpAnn out of extension points Leaving a few that are too tricky, maybe some other time. Also - remove some unneeded helpers from Parser.y - reduce allocations with strictness annotations Updates haddock submodule Metric Decrease: parsing001 --- compiler/GHC/Hs/Binds.hs | 28 +- compiler/GHC/Hs/Decls.hs | 80 +- compiler/GHC/Hs/Dump.hs | 7 + compiler/GHC/Hs/Expr.hs | 114 +- compiler/GHC/Hs/ImpExp.hs | 20 +- compiler/GHC/Hs/Pat.hs | 26 +- compiler/GHC/Hs/Type.hs | 45 +- compiler/GHC/Hs/Utils.hs | 44 +- compiler/GHC/HsToCore/Arrows.hs | 4 +- compiler/GHC/Parser.y | 766 +++++------ compiler/GHC/Parser/Annotation.hs | 11 +- compiler/GHC/Parser/PostProcess.hs | 369 +++-- compiler/GHC/Parser/Types.hs | 4 +- compiler/GHC/Rename/Bind.hs | 4 +- compiler/GHC/Rename/Expr.hs | 10 +- compiler/GHC/Rename/Splice.hs | 6 +- compiler/GHC/Rename/Utils.hs | 4 +- compiler/GHC/Tc/Deriv/Generate.hs | 6 +- compiler/GHC/Tc/Gen/Expr.hs | 4 +- compiler/GHC/Tc/Gen/Head.hs | 10 +- compiler/GHC/Tc/Gen/HsType.hs | 4 +- compiler/GHC/Tc/Gen/Match.hs | 4 +- compiler/GHC/Tc/Gen/Splice.hs | 4 +- compiler/GHC/Tc/TyCl/Instance.hs | 6 +- compiler/GHC/Tc/TyCl/PatSyn.hs | 8 +- compiler/GHC/Tc/Utils/TcMType.hs | 8 +- compiler/GHC/Tc/Zonk/Type.hs | 6 +- compiler/GHC/ThToHs.hs | 24 +- .../tests/ghc-api/exactprint/T22919.stderr | 12 +- .../tests/ghc-api/exactprint/Test20239.stderr | 115 +- .../ghc-api/exactprint/ZeroWidthSemi.stderr | 12 +- .../should_compile_flag_haddock/T17544.stderr | 694 ++-------- .../T17544_kw.stderr | 82 +- .../should_compile_flag_haddock/T24221.stderr | 266 +--- testsuite/tests/module/mod185.stderr | 6 +- .../should_compile/DumpParsedAst.stderr | 656 ++------- .../DumpParsedAstComments.stderr | 74 +- .../should_compile/DumpRenamedAst.stderr | 662 ++------- .../parser/should_compile/DumpSemis.stderr | 426 ++---- .../should_compile/DumpTypecheckedAst.stderr | 540 ++------ .../parser/should_compile/KindSigs.stderr | 566 ++------ .../tests/parser/should_compile/T14189.stderr | 26 +- .../tests/parser/should_compile/T15323.stderr | 62 +- .../tests/parser/should_compile/T20452.stderr | 256 +--- .../tests/parser/should_compile/T20718.stderr | 12 +- .../tests/parser/should_compile/T20846.stderr | 12 +- .../should_compile/T23315/T23315.stderr | 22 +- .../plugins/hooks-plugin/Hooks/MetaPlugin.hs | 2 +- testsuite/tests/printer/T18791.stderr | 26 +- testsuite/tests/printer/Test20297.stdout | 72 +- utils/check-exact/ExactPrint.hs | 1208 ++++++++--------- utils/check-exact/Transform.hs | 4 +- utils/haddock | 2 +- 53 files changed, 2303 insertions(+), 5138 deletions(-) diff --git a/compiler/GHC/Hs/Binds.hs b/compiler/GHC/Hs/Binds.hs index fe79411477c4..1a9e4771fb92 100644 --- a/compiler/GHC/Hs/Binds.hs +++ b/compiler/GHC/Hs/Binds.hs @@ -115,7 +115,7 @@ type instance XFunBind (GhcPass pL) GhcTc = (HsWrapper, [CoreTickish]) -- type Int -> forall a'. a' -> a' -- Notice that the coercion captures the free a'. -type instance XPatBind GhcPs (GhcPass pR) = EpAnn [AddEpAnn] +type instance XPatBind GhcPs (GhcPass pR) = [AddEpAnn] type instance XPatBind GhcRn (GhcPass pR) = NameSet -- See Note [Bind free vars] type instance XPatBind GhcTc (GhcPass pR) = ( Type -- Type of the GRHSs @@ -133,7 +133,7 @@ type instance XXHsBindsLR GhcPs pR = DataConCantHappen type instance XXHsBindsLR GhcRn pR = DataConCantHappen type instance XXHsBindsLR GhcTc pR = AbsBinds -type instance XPSB (GhcPass idL) GhcPs = EpAnn [AddEpAnn] +type instance XPSB (GhcPass idL) GhcPs = [AddEpAnn] type instance XPSB (GhcPass idL) GhcRn = NameSet -- Post renaming, FVs. See Note [Bind free vars] type instance XPSB (GhcPass idL) GhcTc = NameSet @@ -679,7 +679,7 @@ isEmptyIPBindsTc :: HsIPBinds GhcTc -> Bool isEmptyIPBindsTc (IPBinds ds is) = null is && isEmptyTcEvBinds ds -- EPA annotations in GhcPs, dictionary Id in GhcTc -type instance XCIPBind GhcPs = EpAnn [AddEpAnn] +type instance XCIPBind GhcPs = [AddEpAnn] type instance XCIPBind GhcRn = NoExtField type instance XCIPBind GhcTc = Id type instance XXIPBind (GhcPass p) = DataConCantHappen @@ -704,16 +704,16 @@ instance OutputableBndrId p => Outputable (IPBind (GhcPass p)) where ************************************************************************ -} -type instance XTypeSig (GhcPass p) = EpAnn AnnSig -type instance XPatSynSig (GhcPass p) = EpAnn AnnSig -type instance XClassOpSig (GhcPass p) = EpAnn AnnSig -type instance XFixSig (GhcPass p) = EpAnn [AddEpAnn] -type instance XInlineSig (GhcPass p) = EpAnn [AddEpAnn] -type instance XSpecSig (GhcPass p) = EpAnn [AddEpAnn] -type instance XSpecInstSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText) -type instance XMinimalSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText) -type instance XSCCFunSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText) -type instance XCompleteMatchSig (GhcPass p) = (EpAnn [AddEpAnn], SourceText) +type instance XTypeSig (GhcPass p) = AnnSig +type instance XPatSynSig (GhcPass p) = AnnSig +type instance XClassOpSig (GhcPass p) = AnnSig +type instance XFixSig (GhcPass p) = [AddEpAnn] +type instance XInlineSig (GhcPass p) = [AddEpAnn] +type instance XSpecSig (GhcPass p) = [AddEpAnn] +type instance XSpecInstSig (GhcPass p) = ([AddEpAnn], SourceText) +type instance XMinimalSig (GhcPass p) = ([AddEpAnn], SourceText) +type instance XSCCFunSig (GhcPass p) = ([AddEpAnn], SourceText) +type instance XCompleteMatchSig (GhcPass p) = ([AddEpAnn], SourceText) -- SourceText: Note [Pragma source text] in "GHC.Types.SourceText" type instance XXSig GhcPs = DataConCantHappen type instance XXSig GhcRn = IdSig @@ -909,7 +909,7 @@ type instance Anno [LocatedN Id] = SrcSpan type instance Anno (FixitySig (GhcPass p)) = SrcSpanAnnA -type instance Anno StringLiteral = EpAnn NoEpAnns +type instance Anno StringLiteral = EpAnnCO type instance Anno (LocatedN RdrName) = SrcSpan type instance Anno (LocatedN Name) = SrcSpan type instance Anno (LocatedN Id) = SrcSpan diff --git a/compiler/GHC/Hs/Decls.hs b/compiler/GHC/Hs/Decls.hs index 50c1bc96f633..c5ab6ce65439 100644 --- a/compiler/GHC/Hs/Decls.hs +++ b/compiler/GHC/Hs/Decls.hs @@ -339,11 +339,11 @@ instance Outputable SpliceDecoration where type instance XFamDecl (GhcPass _) = NoExtField -type instance XSynDecl GhcPs = EpAnn [AddEpAnn] +type instance XSynDecl GhcPs = [AddEpAnn] type instance XSynDecl GhcRn = NameSet -- FVs type instance XSynDecl GhcTc = NameSet -- FVs -type instance XDataDecl GhcPs = EpAnn [AddEpAnn] +type instance XDataDecl GhcPs = [AddEpAnn] type instance XDataDecl GhcRn = DataDeclRn type instance XDataDecl GhcTc = DataDeclRn @@ -354,7 +354,7 @@ data DataDeclRn = DataDeclRn deriving Data type instance XClassDecl GhcPs = - ( EpAnn [AddEpAnn] + ( [AddEpAnn] , EpLayout -- See Note [Class EpLayout] , AnnSortKey DeclTag ) -- TODO:AZ:tidy up AnnSortKey @@ -363,7 +363,7 @@ type instance XClassDecl GhcTc = NameSet -- FVs type instance XXTyClDecl (GhcPass _) = DataConCantHappen -type instance XCTyFamInstDecl (GhcPass _) = EpAnn [AddEpAnn] +type instance XCTyFamInstDecl (GhcPass _) = [AddEpAnn] type instance XXTyFamInstDecl (GhcPass _) = DataConCantHappen ------------- Pretty printing FamilyDecls ----------- @@ -513,7 +513,7 @@ pprTyClDeclFlavour (DataDecl { tcdDataDefn = HsDataDefn { dd_cons = nd } }) instance OutputableBndrId p => Outputable (FunDep (GhcPass p)) where ppr = pprFunDep -type instance XCFunDep (GhcPass _) = EpAnn [AddEpAnn] +type instance XCFunDep (GhcPass _) = [AddEpAnn] type instance XXFunDep (GhcPass _) = DataConCantHappen pprFundeps :: OutputableBndrId p => [FunDep (GhcPass p)] -> SDoc @@ -547,7 +547,7 @@ type instance XCKindSig (GhcPass _) = NoExtField type instance XTyVarSig (GhcPass _) = NoExtField type instance XXFamilyResultSig (GhcPass _) = DataConCantHappen -type instance XCFamilyDecl (GhcPass _) = EpAnn [AddEpAnn] +type instance XCFamilyDecl (GhcPass _) = [AddEpAnn] type instance XXFamilyDecl (GhcPass _) = DataConCantHappen @@ -574,7 +574,7 @@ resultVariableName _ = Nothing ------------- Pretty printing FamilyDecls ----------- -type instance XCInjectivityAnn (GhcPass _) = EpAnn [AddEpAnn] +type instance XCInjectivityAnn (GhcPass _) = [AddEpAnn] type instance XXInjectivityAnn (GhcPass _) = DataConCantHappen instance OutputableBndrId p @@ -621,7 +621,7 @@ instance OutputableBndrId p type instance XCHsDataDefn (GhcPass _) = NoExtField type instance XXHsDataDefn (GhcPass _) = DataConCantHappen -type instance XCHsDerivingClause (GhcPass _) = EpAnn [AddEpAnn] +type instance XCHsDerivingClause (GhcPass _) = [AddEpAnn] type instance XXHsDerivingClause (GhcPass _) = DataConCantHappen instance OutputableBndrId p @@ -657,7 +657,7 @@ instance OutputableBndrId p => Outputable (DerivClauseTys (GhcPass p)) where ppr (DctSingle _ ty) = ppr ty ppr (DctMulti _ tys) = parens (interpp'SP tys) -type instance XStandaloneKindSig GhcPs = EpAnn [AddEpAnn] +type instance XStandaloneKindSig GhcPs = [AddEpAnn] type instance XStandaloneKindSig GhcRn = NoExtField type instance XStandaloneKindSig GhcTc = NoExtField @@ -666,11 +666,11 @@ type instance XXStandaloneKindSig (GhcPass p) = DataConCantHappen standaloneKindSigName :: StandaloneKindSig (GhcPass p) -> IdP (GhcPass p) standaloneKindSigName (StandaloneKindSig _ lname _) = unLoc lname -type instance XConDeclGADT GhcPs = (EpUniToken "::" "∷", EpAnn [AddEpAnn]) +type instance XConDeclGADT GhcPs = (EpUniToken "::" "∷", [AddEpAnn]) type instance XConDeclGADT GhcRn = NoExtField type instance XConDeclGADT GhcTc = NoExtField -type instance XConDeclH98 GhcPs = EpAnn [AddEpAnn] +type instance XConDeclH98 GhcPs = [AddEpAnn] type instance XConDeclH98 GhcRn = NoExtField type instance XConDeclH98 GhcTc = NoExtField @@ -808,7 +808,7 @@ ppr_con_names = pprWithCommas (pprPrefixOcc . unLoc) ************************************************************************ -} -type instance XCFamEqn (GhcPass _) r = EpAnn [AddEpAnn] +type instance XCFamEqn (GhcPass _) r = [AddEpAnn] type instance XXFamEqn (GhcPass _) r = DataConCantHappen type instance Anno (FamEqn (GhcPass p) _) = SrcSpanAnnA @@ -819,7 +819,7 @@ type instance XCClsInstDecl GhcPs = ( Maybe (LWarningTxt GhcPs) -- The warning of the deprecated instance -- See Note [Implementation of deprecated instances] -- in GHC.Tc.Solver.Dict - , EpAnn [AddEpAnn] + , [AddEpAnn] , AnnSortKey DeclTag) -- For sorting the additional annotations -- TODO:AZ:tidy up type instance XCClsInstDecl GhcRn = Maybe (LWarningTxt GhcRn) @@ -1004,13 +1004,13 @@ type instance XCDerivDecl GhcPs = ( Maybe (LWarningTxt GhcPs) -- The warning of the deprecated derivation -- See Note [Implementation of deprecated instances] -- in GHC.Tc.Solver.Dict - , EpAnn [AddEpAnn] ) + , [AddEpAnn] ) type instance XCDerivDecl GhcRn = ( Maybe (LWarningTxt GhcRn) -- The warning of the deprecated derivation -- See Note [Implementation of deprecated instances] -- in GHC.Tc.Solver.Dict - , EpAnn [AddEpAnn] ) -type instance XCDerivDecl GhcTc = EpAnn [AddEpAnn] + , [AddEpAnn] ) +type instance XCDerivDecl GhcTc = [AddEpAnn] type instance XXDerivDecl (GhcPass _) = DataConCantHappen derivDeprecation :: forall p. IsPass p @@ -1048,15 +1048,15 @@ instance OutputableBndrId p ************************************************************************ -} -type instance XStockStrategy GhcPs = EpAnn [AddEpAnn] +type instance XStockStrategy GhcPs = [AddEpAnn] type instance XStockStrategy GhcRn = NoExtField type instance XStockStrategy GhcTc = NoExtField -type instance XAnyClassStrategy GhcPs = EpAnn [AddEpAnn] +type instance XAnyClassStrategy GhcPs = [AddEpAnn] type instance XAnyClassStrategy GhcRn = NoExtField type instance XAnyClassStrategy GhcTc = NoExtField -type instance XNewtypeStrategy GhcPs = EpAnn [AddEpAnn] +type instance XNewtypeStrategy GhcPs = [AddEpAnn] type instance XNewtypeStrategy GhcRn = NoExtField type instance XNewtypeStrategy GhcTc = NoExtField @@ -1064,7 +1064,7 @@ type instance XViaStrategy GhcPs = XViaStrategyPs type instance XViaStrategy GhcRn = LHsSigType GhcRn type instance XViaStrategy GhcTc = Type -data XViaStrategyPs = XViaStrategyPs (EpAnn [AddEpAnn]) (LHsSigType GhcPs) +data XViaStrategyPs = XViaStrategyPs [AddEpAnn] (LHsSigType GhcPs) instance OutputableBndrId p => Outputable (DerivStrategy (GhcPass p)) where @@ -1103,7 +1103,7 @@ mapDerivStrategy f ds = foldDerivStrategy ds (ViaStrategy . f) ds ************************************************************************ -} -type instance XCDefaultDecl GhcPs = EpAnn [AddEpAnn] +type instance XCDefaultDecl GhcPs = [AddEpAnn] type instance XCDefaultDecl GhcRn = NoExtField type instance XCDefaultDecl GhcTc = NoExtField @@ -1122,11 +1122,11 @@ instance OutputableBndrId p ************************************************************************ -} -type instance XForeignImport GhcPs = EpAnn [AddEpAnn] +type instance XForeignImport GhcPs = [AddEpAnn] type instance XForeignImport GhcRn = NoExtField type instance XForeignImport GhcTc = Coercion -type instance XForeignExport GhcPs = EpAnn [AddEpAnn] +type instance XForeignExport GhcPs = [AddEpAnn] type instance XForeignExport GhcRn = NoExtField type instance XForeignExport GhcTc = Coercion @@ -1191,13 +1191,13 @@ instance OutputableBndrId p ************************************************************************ -} -type instance XCRuleDecls GhcPs = (EpAnn [AddEpAnn], SourceText) +type instance XCRuleDecls GhcPs = ([AddEpAnn], SourceText) type instance XCRuleDecls GhcRn = SourceText type instance XCRuleDecls GhcTc = SourceText type instance XXRuleDecls (GhcPass _) = DataConCantHappen -type instance XHsRule GhcPs = (EpAnn HsRuleAnn, SourceText) +type instance XHsRule GhcPs = (HsRuleAnn, SourceText) type instance XHsRule GhcRn = (HsRuleRn, SourceText) type instance XHsRule GhcTc = (HsRuleRn, SourceText) @@ -1223,8 +1223,8 @@ instance NoAnn HsRuleAnn where flattenRuleDecls :: [LRuleDecls (GhcPass p)] -> [LRuleDecl (GhcPass p)] flattenRuleDecls decls = concatMap (rds_rules . unLoc) decls -type instance XCRuleBndr (GhcPass _) = EpAnn [AddEpAnn] -type instance XRuleBndrSig (GhcPass _) = EpAnn [AddEpAnn] +type instance XCRuleBndr (GhcPass _) = [AddEpAnn] +type instance XRuleBndrSig (GhcPass _) = [AddEpAnn] type instance XXRuleBndr (GhcPass _) = DataConCantHappen instance (OutputableBndrId p) => Outputable (RuleDecls (GhcPass p)) where @@ -1275,13 +1275,13 @@ pprFullRuleName st (L _ n) = pprWithSourceText st (doubleQuotes $ ftext n) ************************************************************************ -} -type instance XWarnings GhcPs = (EpAnn [AddEpAnn], SourceText) +type instance XWarnings GhcPs = ([AddEpAnn], SourceText) type instance XWarnings GhcRn = SourceText type instance XWarnings GhcTc = SourceText type instance XXWarnDecls (GhcPass _) = DataConCantHappen -type instance XWarning (GhcPass _) = (NamespaceSpecifier, EpAnn [AddEpAnn]) +type instance XWarning (GhcPass _) = (NamespaceSpecifier, [AddEpAnn]) type instance XXWarnDecl (GhcPass _) = DataConCantHappen data NamespaceSpecifier @@ -1336,7 +1336,7 @@ instance OutputableBndrId p ************************************************************************ -} -type instance XHsAnnotation (GhcPass _) = (EpAnn AnnPragma, SourceText) +type instance XHsAnnotation (GhcPass _) = (AnnPragma, SourceText) type instance XXAnnDecl (GhcPass _) = DataConCantHappen instance (OutputableBndrId p) => Outputable (AnnDecl (GhcPass p)) where @@ -1358,13 +1358,13 @@ pprAnnProvenance (TypeAnnProvenance (L _ name)) ************************************************************************ -} -type instance XCRoleAnnotDecl GhcPs = EpAnn [AddEpAnn] +type instance XCRoleAnnotDecl GhcPs = [AddEpAnn] type instance XCRoleAnnotDecl GhcRn = NoExtField type instance XCRoleAnnotDecl GhcTc = NoExtField type instance XXRoleAnnotDecl (GhcPass _) = DataConCantHappen -type instance Anno (Maybe Role) = EpAnn NoEpAnns +type instance Anno (Maybe Role) = EpAnnCO instance OutputableBndr (IdP (GhcPass p)) => Outputable (RoleAnnotDecl (GhcPass p)) where @@ -1390,15 +1390,15 @@ type instance Anno (HsDecl (GhcPass _)) = SrcSpanAnnA type instance Anno (SpliceDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (TyClDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (FunDep (GhcPass p)) = SrcSpanAnnA -type instance Anno (FamilyResultSig (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (FamilyResultSig (GhcPass p)) = EpAnnCO type instance Anno (FamilyDecl (GhcPass p)) = SrcSpanAnnA -type instance Anno (InjectivityAnn (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (InjectivityAnn (GhcPass p)) = EpAnnCO type instance Anno CType = SrcSpanAnnP -type instance Anno (HsDerivingClause (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (HsDerivingClause (GhcPass p)) = EpAnnCO type instance Anno (DerivClauseTys (GhcPass _)) = SrcSpanAnnC type instance Anno (StandaloneKindSig (GhcPass p)) = SrcSpanAnnA type instance Anno (ConDecl (GhcPass p)) = SrcSpanAnnA -type instance Anno Bool = EpAnn NoEpAnns +type instance Anno Bool = EpAnnCO type instance Anno [LocatedA (ConDeclField (GhcPass _))] = SrcSpanAnnL type instance Anno (FamEqn p (LocatedA (HsType p))) = SrcSpanAnnA type instance Anno (TyFamInstDecl (GhcPass p)) = SrcSpanAnnA @@ -1409,18 +1409,18 @@ type instance Anno (InstDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (DocDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (DerivDecl (GhcPass p)) = SrcSpanAnnA type instance Anno OverlapMode = SrcSpanAnnP -type instance Anno (DerivStrategy (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (DerivStrategy (GhcPass p)) = EpAnnCO type instance Anno (DefaultDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (ForeignDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (RuleDecls (GhcPass p)) = SrcSpanAnnA type instance Anno (RuleDecl (GhcPass p)) = SrcSpanAnnA -type instance Anno (SourceText, RuleName) = EpAnn NoEpAnns -type instance Anno (RuleBndr (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (SourceText, RuleName) = EpAnnCO +type instance Anno (RuleBndr (GhcPass p)) = EpAnnCO type instance Anno (WarnDecls (GhcPass p)) = SrcSpanAnnA type instance Anno (WarnDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (AnnDecl (GhcPass p)) = SrcSpanAnnA type instance Anno (RoleAnnotDecl (GhcPass p)) = SrcSpanAnnA -type instance Anno (Maybe Role) = EpAnn NoEpAnns +type instance Anno (Maybe Role) = EpAnnCO type instance Anno CCallConv = SrcSpan type instance Anno Safety = SrcSpan type instance Anno CExportSpec = SrcSpan diff --git a/compiler/GHC/Hs/Dump.hs b/compiler/GHC/Hs/Dump.hs index 9b8f384d0d03..7fe3cc8bff3e 100644 --- a/compiler/GHC/Hs/Dump.hs +++ b/compiler/GHC/Hs/Dump.hs @@ -57,6 +57,7 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 showAstData' = generic `ext1Q` list + `extQ` list_addEpAnn `extQ` string `extQ` fastString `extQ` srcSpan `extQ` realSrcSpan `extQ` annotation `extQ` annotationModule @@ -101,6 +102,12 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 bytestring :: B.ByteString -> SDoc bytestring = text . normalize_newlines . show + list_addEpAnn :: [AddEpAnn] -> SDoc + list_addEpAnn ls = case ba of + BlankEpAnnotations -> parens + $ text "blanked:" <+> text "[AddEpAnn]" + NoBlankEpAnnotations -> list ls + list [] = brackets empty list [x] = brackets (showAstData' x) list (x1 : x2 : xs) = (text "[" <> showAstData' x1) diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs index a22048e03f0f..f2c489396f82 100644 --- a/compiler/GHC/Hs/Expr.hs +++ b/compiler/GHC/Hs/Expr.hs @@ -129,7 +129,7 @@ data SyntaxExprTc = SyntaxExprTc { syn_expr :: HsExpr GhcTc -- | This is used for rebindable-syntax pieces that are too polymorphic -- for tcSyntaxOp (trS_fmap and the mzip in ParStmt) noExpr :: HsExpr (GhcPass p) -noExpr = HsLit noComments (HsString (SourceText $ fsLit "noExpr") (fsLit "noExpr")) +noExpr = HsLit noExtField (HsString (SourceText $ fsLit "noExpr") (fsLit "noExpr")) noSyntaxExpr :: forall p. IsPass p => SyntaxExpr (GhcPass p) -- Before renaming, and sometimes after @@ -185,10 +185,10 @@ data HsBracketTc = HsBracketTc -- pasted back in by the desugarer } -type instance XTypedBracket GhcPs = EpAnn [AddEpAnn] +type instance XTypedBracket GhcPs = [AddEpAnn] type instance XTypedBracket GhcRn = NoExtField type instance XTypedBracket GhcTc = HsBracketTc -type instance XUntypedBracket GhcPs = EpAnn [AddEpAnn] +type instance XUntypedBracket GhcPs = [AddEpAnn] type instance XUntypedBracket GhcRn = [PendingRnSplice] -- See Note [Pending Splices] -- Output of the renamer is the *original* renamed expression, -- plus _renamed_ splices to be type checked @@ -220,15 +220,15 @@ type instance XRecSel GhcTc = NoExtField -- OverLabel not present in GhcTc pass; see GHC.Rename.Expr -- Note [Handling overloaded and rebindable constructs] -type instance XOverLabel GhcPs = EpAnnCO -type instance XOverLabel GhcRn = EpAnnCO +type instance XOverLabel GhcPs = NoExtField +type instance XOverLabel GhcRn = NoExtField type instance XOverLabel GhcTc = DataConCantHappen -- --------------------------------------------------------------------- type instance XVar (GhcPass _) = NoExtField -type instance XUnboundVar GhcPs = EpAnn (Maybe EpAnnUnboundVar) +type instance XUnboundVar GhcPs = Maybe EpAnnUnboundVar type instance XUnboundVar GhcRn = NoExtField type instance XUnboundVar GhcTc = HoleExprRef -- We really don't need the whole HoleExprRef; just the IORef EvTerm @@ -236,13 +236,13 @@ type instance XUnboundVar GhcTc = HoleExprRef -- Much, much easier just to define HoleExprRef with a Data instance and -- store the whole structure. -type instance XIPVar GhcPs = EpAnnCO -type instance XIPVar GhcRn = EpAnnCO +type instance XIPVar GhcPs = NoExtField +type instance XIPVar GhcRn = NoExtField type instance XIPVar GhcTc = DataConCantHappen -type instance XOverLitE (GhcPass _) = EpAnnCO -type instance XLitE (GhcPass _) = EpAnnCO -type instance XLam (GhcPass _) = EpAnn [AddEpAnn] -type instance XApp (GhcPass _) = EpAnnCO +type instance XOverLitE (GhcPass _) = NoExtField +type instance XLitE (GhcPass _) = NoExtField +type instance XLam (GhcPass _) = [AddEpAnn] +type instance XApp (GhcPass _) = NoExtField type instance XAppTypeE GhcPs = EpToken "@" type instance XAppTypeE GhcRn = NoExtField @@ -250,21 +250,21 @@ type instance XAppTypeE GhcTc = Type -- OpApp not present in GhcTc pass; see GHC.Rename.Expr -- Note [Handling overloaded and rebindable constructs] -type instance XOpApp GhcPs = EpAnn [AddEpAnn] +type instance XOpApp GhcPs = [AddEpAnn] type instance XOpApp GhcRn = Fixity type instance XOpApp GhcTc = DataConCantHappen -- SectionL, SectionR not present in GhcTc pass; see GHC.Rename.Expr -- Note [Handling overloaded and rebindable constructs] -type instance XSectionL GhcPs = EpAnnCO -type instance XSectionR GhcPs = EpAnnCO -type instance XSectionL GhcRn = EpAnnCO -type instance XSectionR GhcRn = EpAnnCO +type instance XSectionL GhcPs = NoExtField +type instance XSectionR GhcPs = NoExtField +type instance XSectionL GhcRn = NoExtField +type instance XSectionR GhcRn = NoExtField type instance XSectionL GhcTc = DataConCantHappen type instance XSectionR GhcTc = DataConCantHappen -type instance XNegApp GhcPs = EpAnn [AddEpAnn] +type instance XNegApp GhcPs = [AddEpAnn] type instance XNegApp GhcRn = NoExtField type instance XNegApp GhcTc = NoExtField @@ -272,23 +272,23 @@ type instance XPar GhcPs = (EpToken "(", EpToken ")") type instance XPar GhcRn = NoExtField type instance XPar GhcTc = NoExtField -type instance XExplicitTuple GhcPs = EpAnn [AddEpAnn] +type instance XExplicitTuple GhcPs = [AddEpAnn] type instance XExplicitTuple GhcRn = NoExtField type instance XExplicitTuple GhcTc = NoExtField -type instance XExplicitSum GhcPs = EpAnn AnnExplicitSum +type instance XExplicitSum GhcPs = AnnExplicitSum type instance XExplicitSum GhcRn = NoExtField type instance XExplicitSum GhcTc = [Type] -type instance XCase GhcPs = EpAnn EpAnnHsCase +type instance XCase GhcPs = EpAnnHsCase type instance XCase GhcRn = HsMatchContextRn type instance XCase GhcTc = HsMatchContextRn -type instance XIf GhcPs = EpAnn AnnsIf +type instance XIf GhcPs = AnnsIf type instance XIf GhcRn = NoExtField type instance XIf GhcTc = NoExtField -type instance XMultiIf GhcPs = EpAnn [AddEpAnn] +type instance XMultiIf GhcPs = [AddEpAnn] type instance XMultiIf GhcRn = NoExtField type instance XMultiIf GhcTc = Type @@ -296,11 +296,11 @@ type instance XLet GhcPs = (EpToken "let", EpToken "in") type instance XLet GhcRn = NoExtField type instance XLet GhcTc = NoExtField -type instance XDo GhcPs = EpAnn AnnList +type instance XDo GhcPs = AnnList type instance XDo GhcRn = NoExtField type instance XDo GhcTc = Type -type instance XExplicitList GhcPs = EpAnn AnnList +type instance XExplicitList GhcPs = AnnList type instance XExplicitList GhcRn = NoExtField type instance XExplicitList GhcTc = Type -- GhcPs: ExplicitList includes all source-level @@ -311,11 +311,11 @@ type instance XExplicitList GhcTc = Type -- See Note [Handling overloaded and rebindable constructs] -- in GHC.Rename.Expr -type instance XRecordCon GhcPs = EpAnn [AddEpAnn] +type instance XRecordCon GhcPs = [AddEpAnn] type instance XRecordCon GhcRn = NoExtField type instance XRecordCon GhcTc = PostTcExpr -- Instantiated constructor function -type instance XRecordUpd GhcPs = EpAnn [AddEpAnn] +type instance XRecordUpd GhcPs = [AddEpAnn] type instance XRecordUpd GhcRn = NoExtField type instance XRecordUpd GhcTc = DataConCantHappen -- We desugar record updates in the typechecker. @@ -347,29 +347,29 @@ type instance XLHsRecUpdLabels GhcTc = DataConCantHappen type instance XLHsOLRecUpdLabels p = NoExtField -type instance XGetField GhcPs = EpAnnCO +type instance XGetField GhcPs = NoExtField type instance XGetField GhcRn = NoExtField type instance XGetField GhcTc = DataConCantHappen -- HsGetField is eliminated by the renamer. See [Handling overloaded -- and rebindable constructs]. -type instance XProjection GhcPs = EpAnn AnnProjection +type instance XProjection GhcPs = AnnProjection type instance XProjection GhcRn = NoExtField type instance XProjection GhcTc = DataConCantHappen -- HsProjection is eliminated by the renamer. See [Handling overloaded -- and rebindable constructs]. -type instance XExprWithTySig GhcPs = EpAnn [AddEpAnn] +type instance XExprWithTySig GhcPs = [AddEpAnn] type instance XExprWithTySig GhcRn = NoExtField type instance XExprWithTySig GhcTc = NoExtField -type instance XArithSeq GhcPs = EpAnn [AddEpAnn] +type instance XArithSeq GhcPs = [AddEpAnn] type instance XArithSeq GhcRn = NoExtField type instance XArithSeq GhcTc = PostTcExpr -type instance XProc (GhcPass _) = EpAnn [AddEpAnn] +type instance XProc (GhcPass _) = [AddEpAnn] -type instance XStatic GhcPs = EpAnn [AddEpAnn] +type instance XStatic GhcPs = [AddEpAnn] type instance XStatic GhcRn = NameSet type instance XStatic GhcTc = (NameSet, Type) -- Free variables and type of expression, this is stored for convenience as wiring in @@ -428,10 +428,10 @@ instance NoAnn AnnsIf where -- --------------------------------------------------------------------- -type instance XSCC (GhcPass _) = (EpAnn AnnPragma, SourceText) +type instance XSCC (GhcPass _) = (AnnPragma, SourceText) type instance XXPragE (GhcPass _) = DataConCantHappen -type instance XCDotFieldOcc (GhcPass _) = EpAnn AnnFieldLabel +type instance XCDotFieldOcc (GhcPass _) = AnnFieldLabel type instance XXDotFieldOcc (GhcPass _) = DataConCantHappen type instance XPresent (GhcPass _) = NoExtField @@ -1240,28 +1240,28 @@ names 'getField' and 'setField' are whatever in-scope names they are. ************************************************************************ -} -type instance XCmdArrApp GhcPs = EpAnn AddEpAnn +type instance XCmdArrApp GhcPs = AddEpAnn type instance XCmdArrApp GhcRn = NoExtField type instance XCmdArrApp GhcTc = Type -type instance XCmdArrForm GhcPs = EpAnn AnnList +type instance XCmdArrForm GhcPs = AnnList type instance XCmdArrForm GhcRn = NoExtField type instance XCmdArrForm GhcTc = NoExtField -type instance XCmdApp (GhcPass _) = EpAnnCO +type instance XCmdApp (GhcPass _) = NoExtField type instance XCmdLam (GhcPass _) = NoExtField type instance XCmdPar GhcPs = (EpToken "(", EpToken ")") type instance XCmdPar GhcRn = NoExtField type instance XCmdPar GhcTc = NoExtField -type instance XCmdCase GhcPs = EpAnn EpAnnHsCase +type instance XCmdCase GhcPs = EpAnnHsCase type instance XCmdCase GhcRn = NoExtField type instance XCmdCase GhcTc = NoExtField -type instance XCmdLamCase (GhcPass _) = EpAnn [AddEpAnn] +type instance XCmdLamCase (GhcPass _) = [AddEpAnn] -type instance XCmdIf GhcPs = EpAnn AnnsIf +type instance XCmdIf GhcPs = AnnsIf type instance XCmdIf GhcRn = NoExtField type instance XCmdIf GhcTc = NoExtField @@ -1269,7 +1269,7 @@ type instance XCmdLet GhcPs = (EpToken "let", EpToken "in") type instance XCmdLet GhcRn = NoExtField type instance XCmdLet GhcTc = NoExtField -type instance XCmdDo GhcPs = EpAnn AnnList +type instance XCmdDo GhcPs = AnnList type instance XCmdDo GhcRn = NoExtField type instance XCmdDo GhcTc = Type @@ -1463,7 +1463,7 @@ data MatchGroupTc type instance XXMatchGroup (GhcPass _) b = DataConCantHappen -type instance XCMatch (GhcPass _) b = EpAnn [AddEpAnn] +type instance XCMatch (GhcPass _) b = [AddEpAnn] type instance XXMatch (GhcPass _) b = DataConCantHappen instance (OutputableBndrId pr, Outputable body) @@ -1649,7 +1649,7 @@ data RecStmtTc = type instance XLastStmt (GhcPass _) (GhcPass _) b = NoExtField -type instance XBindStmt (GhcPass _) GhcPs b = EpAnn [AddEpAnn] +type instance XBindStmt (GhcPass _) GhcPs b = [AddEpAnn] type instance XBindStmt (GhcPass _) GhcRn b = XBindStmtRn type instance XBindStmt (GhcPass _) GhcTc b = XBindStmtTc @@ -1673,17 +1673,17 @@ type instance XBodyStmt (GhcPass _) GhcPs b = NoExtField type instance XBodyStmt (GhcPass _) GhcRn b = NoExtField type instance XBodyStmt (GhcPass _) GhcTc b = Type -type instance XLetStmt (GhcPass _) (GhcPass _) b = EpAnn [AddEpAnn] +type instance XLetStmt (GhcPass _) (GhcPass _) b = [AddEpAnn] type instance XParStmt (GhcPass _) GhcPs b = NoExtField type instance XParStmt (GhcPass _) GhcRn b = NoExtField type instance XParStmt (GhcPass _) GhcTc b = Type -type instance XTransStmt (GhcPass _) GhcPs b = EpAnn [AddEpAnn] +type instance XTransStmt (GhcPass _) GhcPs b = [AddEpAnn] type instance XTransStmt (GhcPass _) GhcRn b = NoExtField type instance XTransStmt (GhcPass _) GhcTc b = Type -type instance XRecStmt (GhcPass _) GhcPs b = EpAnn AnnList +type instance XRecStmt (GhcPass _) GhcPs b = AnnList type instance XRecStmt (GhcPass _) GhcRn b = NoExtField type instance XRecStmt (GhcPass _) GhcTc b = RecStmtTc @@ -1892,17 +1892,17 @@ data HsUntypedSpliceResult thing -- 'thing' can be HsExpr or HsType } | HsUntypedSpliceNested SplicePointName -- A unique name to identify this splice point -type instance XTypedSplice GhcPs = (EpAnnCO, EpAnn [AddEpAnn]) +type instance XTypedSplice GhcPs = [AddEpAnn] type instance XTypedSplice GhcRn = SplicePointName type instance XTypedSplice GhcTc = DelayedSplice -type instance XUntypedSplice GhcPs = EpAnnCO +type instance XUntypedSplice GhcPs = NoExtField type instance XUntypedSplice GhcRn = HsUntypedSpliceResult (HsExpr GhcRn) type instance XUntypedSplice GhcTc = DataConCantHappen -- HsUntypedSplice -type instance XUntypedSpliceExpr GhcPs = EpAnn [AddEpAnn] -type instance XUntypedSpliceExpr GhcRn = EpAnn [AddEpAnn] +type instance XUntypedSpliceExpr GhcPs = [AddEpAnn] +type instance XUntypedSpliceExpr GhcRn = [AddEpAnn] type instance XUntypedSpliceExpr GhcTc = DataConCantHappen type instance XQuasiQuote p = NoExtField @@ -2322,26 +2322,26 @@ type instance Anno (HsCmd (GhcPass p)) = SrcSpanAnnA type instance Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (HsCmd (GhcPass pr))))] = SrcSpanAnnL -type instance Anno (HsCmdTop (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (HsCmdTop (GhcPass p)) = EpAnnCO type instance Anno [LocatedA (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p))))] = SrcSpanAnnL type instance Anno [LocatedA (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p))))] = SrcSpanAnnL type instance Anno (Match (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = SrcSpanAnnA type instance Anno (Match (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcSpanAnnA -type instance Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = EpAnn NoEpAnns -type instance Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = EpAnn NoEpAnns +type instance Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = EpAnnCO +type instance Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = EpAnnCO type instance Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA type instance Anno (HsUntypedSplice (GhcPass p)) = SrcSpanAnnA type instance Anno [LocatedA (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr))))] = SrcSpanAnnL -type instance Anno (FieldLabelStrings (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (FieldLabelStrings (GhcPass p)) = EpAnnCO type instance Anno FieldLabelString = SrcSpanAnnN -type instance Anno FastString = EpAnn NoEpAnns +type instance Anno FastString = EpAnnCO -- Used in HsQuasiQuote and perhaps elsewhere -type instance Anno (DotFieldOcc (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (DotFieldOcc (GhcPass p)) = EpAnnCO instance (HasAnnotation (Anno a)) => WrapXRec (GhcPass p) a where diff --git a/compiler/GHC/Hs/ImpExp.hs b/compiler/GHC/Hs/ImpExp.hs index 162152fab385..329a38a41d97 100644 --- a/compiler/GHC/Hs/ImpExp.hs +++ b/compiler/GHC/Hs/ImpExp.hs @@ -212,28 +212,28 @@ type instance XIEVar GhcTc = NoExtField -- The additional field of type 'Maybe (WarningTxt pass)' holds information -- about export deprecation annotations and is thus set to Nothing when `IE` -- is used in an import list (since export deprecation can only be used in exports) -type instance XIEThingAbs GhcPs = (Maybe (LWarningTxt GhcPs), EpAnn [AddEpAnn]) -type instance XIEThingAbs GhcRn = (Maybe (LWarningTxt GhcRn), EpAnn [AddEpAnn]) -type instance XIEThingAbs GhcTc = EpAnn [AddEpAnn] +type instance XIEThingAbs GhcPs = (Maybe (LWarningTxt GhcPs), [AddEpAnn]) +type instance XIEThingAbs GhcRn = (Maybe (LWarningTxt GhcRn), [AddEpAnn]) +type instance XIEThingAbs GhcTc = [AddEpAnn] -- The additional field of type 'Maybe (WarningTxt pass)' holds information -- about export deprecation annotations and is thus set to Nothing when `IE` -- is used in an import list (since export deprecation can only be used in exports) -type instance XIEThingAll GhcPs = (Maybe (LWarningTxt GhcPs), EpAnn [AddEpAnn]) -type instance XIEThingAll GhcRn = (Maybe (LWarningTxt GhcRn), EpAnn [AddEpAnn]) -type instance XIEThingAll GhcTc = EpAnn [AddEpAnn] +type instance XIEThingAll GhcPs = (Maybe (LWarningTxt GhcPs), [AddEpAnn]) +type instance XIEThingAll GhcRn = (Maybe (LWarningTxt GhcRn), [AddEpAnn]) +type instance XIEThingAll GhcTc = [AddEpAnn] -- The additional field of type 'Maybe (WarningTxt pass)' holds information -- about export deprecation annotations and is thus set to Nothing when `IE` -- is used in an import list (since export deprecation can only be used in exports) -type instance XIEThingWith GhcPs = (Maybe (LWarningTxt GhcPs), EpAnn [AddEpAnn]) -type instance XIEThingWith GhcRn = (Maybe (LWarningTxt GhcRn), EpAnn [AddEpAnn]) -type instance XIEThingWith GhcTc = EpAnn [AddEpAnn] +type instance XIEThingWith GhcPs = (Maybe (LWarningTxt GhcPs), [AddEpAnn]) +type instance XIEThingWith GhcRn = (Maybe (LWarningTxt GhcRn), [AddEpAnn]) +type instance XIEThingWith GhcTc = [AddEpAnn] -- The additional field of type 'Maybe (WarningTxt pass)' holds information -- about export deprecation annotations and is thus set to Nothing when `IE` -- is used in an import list (since export deprecation can only be used in exports) -type instance XIEModuleContents GhcPs = (Maybe (LWarningTxt GhcPs), EpAnn [AddEpAnn]) +type instance XIEModuleContents GhcPs = (Maybe (LWarningTxt GhcPs), [AddEpAnn]) type instance XIEModuleContents GhcRn = Maybe (LWarningTxt GhcRn) type instance XIEModuleContents GhcTc = NoExtField diff --git a/compiler/GHC/Hs/Pat.hs b/compiler/GHC/Hs/Pat.hs index 5d0e90a5ef69..cedc2adaeb2f 100644 --- a/compiler/GHC/Hs/Pat.hs +++ b/compiler/GHC/Hs/Pat.hs @@ -93,7 +93,7 @@ type instance XWildPat GhcTc = Type type instance XVarPat (GhcPass _) = NoExtField -type instance XLazyPat GhcPs = EpAnn [AddEpAnn] -- For '~' +type instance XLazyPat GhcPs = [AddEpAnn] -- For '~' type instance XLazyPat GhcRn = NoExtField type instance XLazyPat GhcTc = NoExtField @@ -105,11 +105,11 @@ type instance XParPat GhcPs = (EpToken "(", EpToken ")") type instance XParPat GhcRn = NoExtField type instance XParPat GhcTc = NoExtField -type instance XBangPat GhcPs = EpAnn [AddEpAnn] -- For '!' +type instance XBangPat GhcPs = [AddEpAnn] -- For '!' type instance XBangPat GhcRn = NoExtField type instance XBangPat GhcTc = NoExtField -type instance XListPat GhcPs = EpAnn AnnList +type instance XListPat GhcPs = AnnList -- After parsing, ListPat can refer to a built-in Haskell list pattern -- or an overloaded list pattern. type instance XListPat GhcRn = NoExtField @@ -119,19 +119,19 @@ type instance XListPat GhcRn = NoExtField type instance XListPat GhcTc = Type -- List element type, for use in hsPatType. -type instance XTuplePat GhcPs = EpAnn [AddEpAnn] +type instance XTuplePat GhcPs = [AddEpAnn] type instance XTuplePat GhcRn = NoExtField type instance XTuplePat GhcTc = [Type] -type instance XSumPat GhcPs = EpAnn EpAnnSumPat +type instance XSumPat GhcPs = EpAnnSumPat type instance XSumPat GhcRn = NoExtField type instance XSumPat GhcTc = [Type] -type instance XConPat GhcPs = EpAnn [AddEpAnn] +type instance XConPat GhcPs = [AddEpAnn] type instance XConPat GhcRn = NoExtField type instance XConPat GhcTc = ConPatTc -type instance XViewPat GhcPs = EpAnn [AddEpAnn] +type instance XViewPat GhcPs = [AddEpAnn] type instance XViewPat GhcRn = Maybe (HsExpr GhcRn) -- The @HsExpr GhcRn@ gives an inverse to the view function. -- This is used for overloaded lists in particular. @@ -147,15 +147,15 @@ type instance XSplicePat GhcTc = DataConCantHappen type instance XLitPat (GhcPass _) = NoExtField -type instance XNPat GhcPs = EpAnn [AddEpAnn] -type instance XNPat GhcRn = EpAnn [AddEpAnn] +type instance XNPat GhcPs = [AddEpAnn] +type instance XNPat GhcRn = [AddEpAnn] type instance XNPat GhcTc = Type -type instance XNPlusKPat GhcPs = EpAnn EpaLocation -- Of the "+" +type instance XNPlusKPat GhcPs = EpaLocation -- Of the "+" type instance XNPlusKPat GhcRn = NoExtField type instance XNPlusKPat GhcTc = Type -type instance XSigPat GhcPs = EpAnn [AddEpAnn] +type instance XSigPat GhcPs = [AddEpAnn] type instance XSigPat GhcRn = NoExtField type instance XSigPat GhcTc = Type @@ -180,7 +180,7 @@ type instance XConPatTyArg GhcPs = EpToken "@" type instance XConPatTyArg GhcRn = NoExtField type instance XConPatTyArg GhcTc = NoExtField -type instance XHsFieldBind _ = EpAnn [AddEpAnn] +type instance XHsFieldBind _ = [AddEpAnn] -- --------------------------------------------------------------------- @@ -896,7 +896,7 @@ collectEvVarsPat pat = -} type instance Anno (Pat (GhcPass p)) = SrcSpanAnnA -type instance Anno (HsOverLit (GhcPass p)) = EpAnn NoEpAnns +type instance Anno (HsOverLit (GhcPass p)) = EpAnnCO type instance Anno ConLike = SrcSpanAnnN type instance Anno (HsFieldBind lhs rhs) = SrcSpanAnnA type instance Anno RecFieldsDotDot = SrcSpan diff --git a/compiler/GHC/Hs/Type.hs b/compiler/GHC/Hs/Type.hs index 9fa25a17536f..4ace10c61ac4 100644 --- a/compiler/GHC/Hs/Type.hs +++ b/compiler/GHC/Hs/Type.hs @@ -305,8 +305,8 @@ mkEmptyWildCardBndrs x = HsWC { hswc_body = x -------------------------------------------------- -type instance XUserTyVar (GhcPass _) = EpAnn [AddEpAnn] -type instance XKindedTyVar (GhcPass _) = EpAnn [AddEpAnn] +type instance XUserTyVar (GhcPass _) = [AddEpAnn] +type instance XKindedTyVar (GhcPass _) = [AddEpAnn] type instance XXTyVarBndr (GhcPass _) = DataConCantHappen @@ -349,17 +349,17 @@ type instance XXBndrVis (GhcPass _) = DataConCantHappen type instance XForAllTy (GhcPass _) = NoExtField type instance XQualTy (GhcPass _) = NoExtField -type instance XTyVar (GhcPass _) = EpAnn [AddEpAnn] +type instance XTyVar (GhcPass _) = [AddEpAnn] type instance XAppTy (GhcPass _) = NoExtField -type instance XFunTy (GhcPass _) = EpAnnCO -type instance XListTy (GhcPass _) = EpAnn AnnParen -type instance XTupleTy (GhcPass _) = EpAnn AnnParen -type instance XSumTy (GhcPass _) = EpAnn AnnParen -type instance XOpTy (GhcPass _) = EpAnn [AddEpAnn] -type instance XParTy (GhcPass _) = EpAnn AnnParen -type instance XIParamTy (GhcPass _) = EpAnn [AddEpAnn] +type instance XFunTy (GhcPass _) = NoExtField +type instance XListTy (GhcPass _) = AnnParen +type instance XTupleTy (GhcPass _) = AnnParen +type instance XSumTy (GhcPass _) = AnnParen +type instance XOpTy (GhcPass _) = [AddEpAnn] +type instance XParTy (GhcPass _) = AnnParen +type instance XIParamTy (GhcPass _) = [AddEpAnn] type instance XStarTy (GhcPass _) = NoExtField -type instance XKindSig (GhcPass _) = EpAnn [AddEpAnn] +type instance XKindSig (GhcPass _) = [AddEpAnn] type instance XAppKindTy GhcPs = EpToken "@" type instance XAppKindTy GhcRn = NoExtField @@ -369,18 +369,18 @@ type instance XSpliceTy GhcPs = NoExtField type instance XSpliceTy GhcRn = HsUntypedSpliceResult (LHsType GhcRn) type instance XSpliceTy GhcTc = Kind -type instance XDocTy (GhcPass _) = EpAnn [AddEpAnn] -type instance XBangTy (GhcPass _) = EpAnn [AddEpAnn] +type instance XDocTy (GhcPass _) = [AddEpAnn] +type instance XBangTy (GhcPass _) = [AddEpAnn] -type instance XRecTy GhcPs = EpAnn AnnList +type instance XRecTy GhcPs = AnnList type instance XRecTy GhcRn = NoExtField type instance XRecTy GhcTc = NoExtField -type instance XExplicitListTy GhcPs = EpAnn [AddEpAnn] +type instance XExplicitListTy GhcPs = [AddEpAnn] type instance XExplicitListTy GhcRn = NoExtField type instance XExplicitListTy GhcTc = Kind -type instance XExplicitTupleTy GhcPs = EpAnn [AddEpAnn] +type instance XExplicitTupleTy GhcPs = [AddEpAnn] type instance XExplicitTupleTy GhcRn = NoExtField type instance XExplicitTupleTy GhcTc = [Kind] @@ -470,7 +470,7 @@ pprHsArrow (HsUnrestrictedArrow _) = pprArrowWithMultiplicity visArgTypeLike (Le pprHsArrow (HsLinearArrow _) = pprArrowWithMultiplicity visArgTypeLike (Left True) pprHsArrow (HsExplicitMult _ p) = pprArrowWithMultiplicity visArgTypeLike (Right (ppr p)) -type instance XConDeclField (GhcPass _) = EpAnn [AddEpAnn] +type instance XConDeclField (GhcPass _) = [AddEpAnn] type instance XXConDeclField (GhcPass _) = DataConCantHappen instance OutputableBndrId p @@ -615,15 +615,12 @@ splitHsFunType ty = go ty = let (anns, cs, args, res) = splitHsFunType ty anns' = anns ++ annParen2AddEpAnn an - cs' = cs S.<> epAnnComments l S.<> epAnnComments an + cs' = cs S.<> epAnnComments l in (anns', cs', args, res) - go (L ll (HsFunTy (EpAnn _ _ cs) mult x y)) + go (L ll (HsFunTy _ mult x y)) | (anns, csy, args, res) <- splitHsFunType y - = (anns, csy S.<> epAnnComments ll, HsScaled mult x':args, res) - where - L l t = x - x' = L (addCommentsToEpAnn l cs) t + = (anns, csy S.<> epAnnComments ll, HsScaled mult x:args, res) go other = ([], emptyComments, [], other) @@ -1483,7 +1480,7 @@ type instance Anno (HsTyVarBndr _flag GhcRn) = SrcSpanAnnA type instance Anno (HsTyVarBndr _flag GhcTc) = SrcSpanAnnA type instance Anno (HsOuterTyVarBndrs _ (GhcPass _)) = SrcSpanAnnA -type instance Anno HsIPName = EpAnn NoEpAnns +type instance Anno HsIPName = EpAnnCO type instance Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA type instance Anno (FieldOcc (GhcPass p)) = SrcSpanAnnA diff --git a/compiler/GHC/Hs/Utils.hs b/compiler/GHC/Hs/Utils.hs index 942b3f6db011..8e3cb7da4bed 100644 --- a/compiler/GHC/Hs/Utils.hs +++ b/compiler/GHC/Hs/Utils.hs @@ -240,14 +240,14 @@ mkLocatedList ms = case nonEmpty ms of Just ms1 -> L (noAnnSrcSpan $ locA $ combineLocsA (NE.head ms1) (NE.last ms1)) ms mkHsApp :: LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -mkHsApp e1 e2 = addCLocA e1 e2 (HsApp noComments e1 e2) +mkHsApp e1 e2 = addCLocA e1 e2 (HsApp noExtField e1 e2) mkHsAppWith :: (LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> HsExpr (GhcPass id) -> LHsExpr (GhcPass id)) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -mkHsAppWith mkLocated e1 e2 = mkLocated e1 e2 (HsApp noAnn e1 e2) +mkHsAppWith mkLocated e1 e2 = mkLocated e1 e2 (HsApp noExtField e1 e2) mkHsApps :: LHsExpr (GhcPass id) -> [LHsExpr (GhcPass id)] -> LHsExpr (GhcPass id) @@ -332,16 +332,16 @@ mkHsIntegral :: IntegralLit -> HsOverLit GhcPs mkHsFractional :: FractionalLit -> HsOverLit GhcPs mkHsIsString :: SourceText -> FastString -> HsOverLit GhcPs mkHsDo :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> HsExpr GhcPs -mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> EpAnn AnnList -> HsExpr GhcPs +mkHsDoAnns :: HsDoFlavour -> LocatedL [ExprLStmt GhcPs] -> AnnList -> HsExpr GhcPs mkHsComp :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> HsExpr GhcPs mkHsCompAnns :: HsDoFlavour -> [ExprLStmt GhcPs] -> LHsExpr GhcPs - -> EpAnn AnnList + -> AnnList -> HsExpr GhcPs -mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> EpAnn [AddEpAnn] +mkNPat :: LocatedAn NoEpAnns (HsOverLit GhcPs) -> Maybe (SyntaxExpr GhcPs) -> [AddEpAnn] -> Pat GhcPs -mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpAnn EpaLocation +mkNPlusKPat :: LocatedN RdrName -> LocatedAn NoEpAnns (HsOverLit GhcPs) -> EpaLocation -> Pat GhcPs -- NB: The following functions all use noSyntaxExpr: the generated expressions @@ -350,7 +350,7 @@ mkLastStmt :: IsPass idR => LocatedA (bodyR (GhcPass idR)) -> StmtLR (GhcPass idL) (GhcPass idR) (LocatedA (bodyR (GhcPass idR))) mkBodyStmt :: LocatedA (bodyR GhcPs) -> StmtLR (GhcPass idL) GhcPs (LocatedA (bodyR GhcPs)) -mkPsBindStmt :: EpAnn [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) +mkPsBindStmt :: [AddEpAnn] -> LPat GhcPs -> LocatedA (bodyR GhcPs) -> StmtLR GhcPs GhcPs (LocatedA (bodyR GhcPs)) mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) -> StmtLR GhcRn GhcRn (LocatedA (bodyR GhcRn)) @@ -374,7 +374,7 @@ mkRecStmt :: forall (idL :: Pass) bodyR. (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL) - => EpAnn AnnList + => AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR mkRecStmt anns stmts = (emptyRecStmt' anns :: StmtLR (GhcPass idL) GhcPs bodyR) @@ -397,12 +397,12 @@ mkHsCompAnns ctxt stmts expr@(L l e) anns = mkHsDoAnns ctxt (L loc (stmts ++ [la loc = noAnnSrcSpan $ getHasLocList (last_stmt:stmts) -- restricted to GhcPs because other phases might need a SyntaxExpr -mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> EpAnn AnnsIf +mkHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> AnnsIf -> HsExpr GhcPs mkHsIf c a b anns = HsIf anns c a b -- restricted to GhcPs because other phases might need a SyntaxExpr -mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> EpAnn AnnsIf +mkHsCmdIf :: LHsExpr GhcPs -> LHsCmd GhcPs -> LHsCmd GhcPs -> AnnsIf -> HsCmd GhcPs mkHsCmdIf c a b anns = HsCmdIf anns noSyntaxExpr c a b @@ -410,17 +410,17 @@ mkNPat lit neg anns = NPat anns lit neg noSyntaxExpr mkNPlusKPat id lit anns = NPlusKPat anns id lit (unLoc lit) noSyntaxExpr noSyntaxExpr -mkTransformStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs +mkTransformStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) -mkTransformByStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs +mkTransformByStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) -mkGroupUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs +mkGroupUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) -mkGroupByUsingStmt :: EpAnn [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs +mkGroupByUsingStmt :: [AddEpAnn] -> [ExprLStmt GhcPs] -> LHsExpr GhcPs -> LHsExpr GhcPs -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) -emptyTransStmt :: EpAnn [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) +emptyTransStmt :: [AddEpAnn] -> StmtLR GhcPs GhcPs (LHsExpr GhcPs) emptyTransStmt anns = TransStmt { trS_ext = anns , trS_form = panic "emptyTransStmt: form" , trS_stmts = [], trS_bndrs = [] @@ -469,7 +469,7 @@ emptyRecStmtName = emptyRecStmt' noExtField emptyRecStmtId = emptyRecStmt' unitRecStmtTc -- a panic might trigger during zonking -mkLetStmt :: EpAnn [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b) +mkLetStmt :: [AddEpAnn] -> HsLocalBinds GhcPs -> StmtLR GhcPs GhcPs (LocatedA b) mkLetStmt anns binds = LetStmt anns binds ------------------------------- @@ -514,10 +514,10 @@ nlHsDataCon :: DataCon -> LHsExpr GhcTc nlHsDataCon con = noLocA (mkConLikeTc (RealDataCon con)) nlHsLit :: HsLit (GhcPass p) -> LHsExpr (GhcPass p) -nlHsLit n = noLocA (HsLit noComments n) +nlHsLit n = noLocA (HsLit noExtField n) nlHsIntLit :: Integer -> LHsExpr (GhcPass p) -nlHsIntLit n = noLocA (HsLit noComments (HsInt noExtField (mkIntegralLit n))) +nlHsIntLit n = noLocA (HsLit noExtField (HsInt noExtField (mkIntegralLit n))) nlVarPat :: IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p) @@ -527,7 +527,7 @@ nlLitPat :: HsLit GhcPs -> LPat GhcPs nlLitPat l = noLocA (LitPat noExtField l) nlHsApp :: IsPass id => LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -nlHsApp f x = noLocA (HsApp noComments f (mkLHsPar x)) +nlHsApp f x = noLocA (HsApp noExtField f (mkLHsPar x)) nlHsSyntaxApps :: SyntaxExprTc -> [LHsExpr GhcTc] -> LHsExpr GhcTc @@ -542,7 +542,7 @@ nlHsVarApps :: IsSrcSpanAnn p a nlHsVarApps f xs = noLocA (foldl' mk (HsVar noExtField (noLocA f)) (map ((HsVar noExtField) . noLocA) xs)) where - mk f a = HsApp noComments (noLocA f) (noLocA a) + mk f a = HsApp noExtField (noLocA f) (noLocA a) nlConVarPat :: RdrName -> [RdrName] -> LPat GhcPs nlConVarPat con vars = nlConPat con (map nlVarPat vars) @@ -633,7 +633,7 @@ nlHsParTy :: LHsType (GhcPass p) -> LHsType (GhcPass p) nlHsAppTy f t = noLocA (HsAppTy noExtField f t) nlHsTyVar p x = noLocA (HsTyVar noAnn p (noLocA x)) -nlHsFunTy a b = noLocA (HsFunTy noAnn (HsUnrestrictedArrow x) a b) +nlHsFunTy a b = noLocA (HsFunTy noExtField (HsUnrestrictedArrow x) a b) where x = case ghcPass @p of GhcPs -> noAnn @@ -851,7 +851,7 @@ mkVarBind var rhs = L (getLoc rhs) $ var_id = var, var_rhs = rhs } mkPatSynBind :: LocatedN RdrName -> HsPatSynDetails GhcPs - -> LPat GhcPs -> HsPatSynDir GhcPs -> EpAnn [AddEpAnn] -> HsBind GhcPs + -> LPat GhcPs -> HsPatSynDir GhcPs -> [AddEpAnn] -> HsBind GhcPs mkPatSynBind name details lpat dir anns = PatSynBind noExtField psb where psb = PSB{ psb_ext = anns diff --git a/compiler/GHC/HsToCore/Arrows.hs b/compiler/GHC/HsToCore/Arrows.hs index 9456c5915990..65a13d3f37e4 100644 --- a/compiler/GHC/HsToCore/Arrows.hs +++ b/compiler/GHC/HsToCore/Arrows.hs @@ -784,9 +784,9 @@ dsCases ids local_vars stack_id stack_ty res_ty let left_id = mkConLikeTc (RealDataCon left_con) right_id = mkConLikeTc (RealDataCon right_con) - left_expr ty1 ty2 e = noLocA $ HsApp noComments + left_expr ty1 ty2 e = noLocA $ HsApp noExtField (noLocA $ mkHsWrap (mkWpTyApps [ty1, ty2]) left_id ) e - right_expr ty1 ty2 e = noLocA $ HsApp noComments + right_expr ty1 ty2 e = noLocA $ HsApp noExtField (noLocA $ mkHsWrap (mkWpTyApps [ty1, ty2]) right_id) e -- Prefix each tuple with a distinct series of Left's and Right's, diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y index 8336070988ab..3c7fcb98709d 100644 --- a/compiler/GHC/Parser.y +++ b/compiler/GHC/Parser.y @@ -758,10 +758,10 @@ identifier :: { LocatedN RdrName } | qcon { $1 } | qvarop { $1 } | qconop { $1 } - | '(' '->' ')' {% amsrn (sLL $1 $> $ getRdrName unrestrictedFunTyCon) - (NameAnnRArrow (isUnicode $2) (Just $ glAA $1) (glAA $2) (Just $ glAA $3) []) } - | '->' {% amsrn (sLL $1 $> $ getRdrName unrestrictedFunTyCon) - (NameAnnRArrow (isUnicode $1) Nothing (glAA $1) Nothing []) } + | '(' '->' ')' {% amsr (sLL $1 $> $ getRdrName unrestrictedFunTyCon) + (NameAnnRArrow (isUnicode $2) (Just $ glAA $1) (glAA $2) (Just $ glAA $3) []) } + | '->' {% amsr (sLL $1 $> $ getRdrName unrestrictedFunTyCon) + (NameAnnRArrow (isUnicode $1) Nothing (glAA $1) Nothing []) } ----------------------------------------------------------------------------- -- Backpack stuff @@ -880,7 +880,7 @@ unitdecl :: { LHsUnitDecl PackageName } signature :: { Located (HsModule GhcPs) } : 'signature' modid maybe_warning_pragma maybeexports 'where' body {% fileSrcSpan >>= \ loc -> - acs (\cs-> (L loc (HsModule (XModulePs + acs loc (\loc cs-> (L loc (HsModule (XModulePs (EpAnn (spanAsAnchor loc) (AnnsModule [mj AnnSignature $1, mj AnnWhere $5] (fstOf3 $6) Nothing) cs) (thdOf3 $6) $3 Nothing) (Just $2) $4 (fst $ sndOf3 $6) @@ -938,14 +938,14 @@ top1 :: { ([LImportDecl GhcPs], [LHsDecl GhcPs]) } header :: { Located (HsModule GhcPs) } : 'module' modid maybe_warning_pragma maybeexports 'where' header_body {% fileSrcSpan >>= \ loc -> - acs (\cs -> (L loc (HsModule (XModulePs + acs loc (\loc cs -> (L loc (HsModule (XModulePs (EpAnn (spanAsAnchor loc) (AnnsModule [mj AnnModule $1,mj AnnWhere $5] [] Nothing) cs) EpNoLayout $3 Nothing) (Just $2) $4 $6 [] ))) } | 'signature' modid maybe_warning_pragma maybeexports 'where' header_body {% fileSrcSpan >>= \ loc -> - acs (\cs -> (L loc (HsModule (XModulePs + acs loc (\loc cs -> (L loc (HsModule (XModulePs (EpAnn (spanAsAnchor loc) (AnnsModule [mj AnnModule $1,mj AnnWhere $5] [] Nothing) cs) EpNoLayout $3 Nothing) (Just $2) $4 $6 [] @@ -973,7 +973,7 @@ header_top_importdecls :: { [LImportDecl GhcPs] } -- The Export List maybeexports :: { (Maybe (LocatedL [LIE GhcPs])) } - : '(' exportlist ')' {% fmap Just $ amsrl (sLL $1 $> (fromOL $ snd $2)) + : '(' exportlist ')' {% fmap Just $ amsr (sLL $1 $> (fromOL $ snd $2)) (AnnList Nothing (Just $ mop $1) (Just $ mcp $3) (fst $2) []) } | {- empty -} { Nothing } @@ -1008,7 +1008,7 @@ export :: { OrdList (LIE GhcPs) } ; return $ unitOL $ reLoc $ sL span $ impExp } } | maybe_warning_pragma 'module' modid {% do { let { span = (maybe comb2 comb3 $1) $2 $> ; anchor = (maybe glR (\loc -> spanAsAnchor . comb2 loc) $1) $2 } - ; locImpExp <- acs (\cs -> sL span (IEModuleContents ($1, EpAnn anchor [mj AnnModule $2] cs) $3)) + ; locImpExp <- return (sL span (IEModuleContents ($1, [mj AnnModule $2]) $3)) ; return $ unitOL $ reLoc $ locImpExp } } | maybe_warning_pragma 'pattern' qcon { let span = (maybe comb2 comb3 $1) $2 $> in unitOL $ reLoc $ sL span $ IEVar $1 (sLLa $2 $> (IEPattern (glAA $2) $3)) } @@ -1103,7 +1103,7 @@ importdecl :: { LImportDecl GhcPs } , importDeclAnnAs = fst $8 } ; let loc = (comb5 $1 $6 $7 (snd $8) $9); - ; fmap reLoc $ acs (\cs -> L loc $ + ; fmap reLoc $ acs loc (\loc cs -> L loc $ ImportDecl { ideclExt = XImportDeclPass (EpAnn (spanAsAnchor loc) anns cs) (snd $ fst $2) False , ideclName = $6, ideclPkgQual = snd $5 , ideclSource = snd $2, ideclSafe = snd $3 @@ -1148,10 +1148,10 @@ maybeimpspec :: { Located (Maybe (ImportListInterpretation, LocatedL [LIE GhcPs] | {- empty -} { noLoc Nothing } impspec :: { Located (ImportListInterpretation, LocatedL [LIE GhcPs]) } - : '(' importlist ')' {% do { es <- amsrl (sLL $1 $> $ fromOL $ snd $2) + : '(' importlist ')' {% do { es <- amsr (sLL $1 $> $ fromOL $ snd $2) (AnnList Nothing (Just $ mop $1) (Just $ mcp $3) (fst $2) []) ; return $ sLL $1 $> (Exactly, es)} } - | 'hiding' '(' importlist ')' {% do { es <- amsrl (sLL $1 $> $ fromOL $ snd $3) + | 'hiding' '(' importlist ')' {% do { es <- amsr (sLL $1 $> $ fromOL $ snd $3) (AnnList Nothing (Just $ mop $2) (Just $ mcp $4) (mj AnnHiding $1:fst $3) []) ; return $ sLL $1 $> (EverythingBut, es)} } @@ -1179,7 +1179,7 @@ importlist1 :: { OrdList (LIE GhcPs) } import :: { OrdList (LIE GhcPs) } : qcname_ext export_subspec {% fmap (unitOL . reLoc . (sLL $1 $>)) $ mkModuleImpExp Nothing (fst $ unLoc $2) $1 (snd $ unLoc $2) } - | 'module' modid {% fmap (unitOL . reLoc) $ acs (\cs -> sLL $1 $> (IEModuleContents (Nothing, EpAnn (glEE $1 $>) [mj AnnModule $1] cs) $2)) } + | 'module' modid {% fmap (unitOL . reLoc) $ return (sLL $1 $> (IEModuleContents (Nothing, [mj AnnModule $1]) $2)) } | 'pattern' qcon { unitOL $ reLoc $ sLL $1 $> $ IEVar Nothing (sLLa $1 $> (IEPattern (glAA $1) $2)) } ----------------------------------------------------------------------------- @@ -1240,12 +1240,12 @@ topdecl :: { LHsDecl GhcPs } | inst_decl { sL1a $1 (InstD noExtField (unLoc $1)) } | stand_alone_deriving { sL1a $1 (DerivD noExtField (unLoc $1)) } | role_annot { sL1a $1 (RoleAnnotD noExtField (unLoc $1)) } - | 'default' '(' comma_types0 ')' {% acsA (\cs -> sLL $1 $> - (DefD noExtField (DefaultDecl (EpAnn (glEE $1 $>) [mj AnnDefault $1,mop $2,mcp $4] cs) $3))) } - | 'foreign' fdecl {% acsA (\cs -> sLL $1 $> ((snd $ unLoc $2) (EpAnn (glEE $1 $>) (mj AnnForeign $1:(fst $ unLoc $2)) cs))) } - | '{-# DEPRECATED' deprecations '#-}' {% acsA (\cs -> sLL $1 $> $ WarningD noExtField (Warnings ((EpAnn (glEE $1 $>) [mo $1,mc $3] cs), (getDEPRECATED_PRAGs $1)) (fromOL $2))) } - | '{-# WARNING' warnings '#-}' {% acsA (\cs -> sLL $1 $> $ WarningD noExtField (Warnings ((EpAnn (glEE $1 $>) [mo $1,mc $3] cs), (getWARNING_PRAGs $1)) (fromOL $2))) } - | '{-# RULES' rules '#-}' {% acsA (\cs -> sLL $1 $> $ RuleD noExtField (HsRules ((EpAnn (glEE $1 $>) [mo $1,mc $3] cs), (getRULES_PRAGs $1)) (reverse $2))) } + | 'default' '(' comma_types0 ')' {% amsA' (sLL $1 $> + (DefD noExtField (DefaultDecl [mj AnnDefault $1,mop $2,mcp $4] $3))) } + | 'foreign' fdecl {% amsA' (sLL $1 $> ((snd $ unLoc $2) (mj AnnForeign $1:(fst $ unLoc $2)))) } + | '{-# DEPRECATED' deprecations '#-}' {% amsA' (sLL $1 $> $ WarningD noExtField (Warnings ([mo $1,mc $3], (getDEPRECATED_PRAGs $1)) (fromOL $2))) } + | '{-# WARNING' warnings '#-}' {% amsA' (sLL $1 $> $ WarningD noExtField (Warnings ([mo $1,mc $3], (getWARNING_PRAGs $1)) (fromOL $2))) } + | '{-# RULES' rules '#-}' {% amsA' (sLL $1 $> $ RuleD noExtField (HsRules ([mo $1,mc $3], (getRULES_PRAGs $1)) (reverse $2))) } | annotation { $1 } | decl_no_th { $1 } @@ -1333,15 +1333,15 @@ inst_decl :: { LInstDecl GhcPs } : 'instance' maybe_warning_pragma overlap_pragma inst_type where_inst {% do { (binds, sigs, _, ats, adts, _) <- cvBindsAndSigs (snd $ unLoc $5) ; let anns = (mj AnnInstance $1 : (fst $ unLoc $5)) - ; let cid cs = ClsInstDecl - { cid_ext = ($2, EpAnn (spanAsAnchor (comb3 $1 $4 $5)) anns cs, NoAnnSortKey) - , cid_poly_ty = $4, cid_binds = binds - , cid_sigs = mkClassOpSigs sigs - , cid_tyfam_insts = ats - , cid_overlap_mode = $3 - , cid_datafam_insts = adts } - ; acsA (\cs -> L (comb3 $1 $4 $5) - (ClsInstD { cid_d_ext = noExtField, cid_inst = cid cs })) + ; let cid = ClsInstDecl + { cid_ext = ($2, anns, NoAnnSortKey) + , cid_poly_ty = $4, cid_binds = binds + , cid_sigs = mkClassOpSigs sigs + , cid_tyfam_insts = ats + , cid_overlap_mode = $3 + , cid_datafam_insts = adts } + ; amsA' (L (comb3 $1 $4 $5) + (ClsInstD { cid_d_ext = noExtField, cid_inst = cid })) } } -- type instance declarations @@ -1368,29 +1368,28 @@ inst_decl :: { LInstDecl GhcPs } :(fst $ unLoc $5)++(fst $ unLoc $6)) } overlap_pragma :: { Maybe (LocatedP OverlapMode) } - : '{-# OVERLAPPABLE' '#-}' {% fmap Just $ amsrp (sLL $1 $> (Overlappable (getOVERLAPPABLE_PRAGs $1))) + : '{-# OVERLAPPABLE' '#-}' {% fmap Just $ amsr (sLL $1 $> (Overlappable (getOVERLAPPABLE_PRAGs $1))) (AnnPragma (mo $1) (mc $2) []) } - | '{-# OVERLAPPING' '#-}' {% fmap Just $ amsrp (sLL $1 $> (Overlapping (getOVERLAPPING_PRAGs $1))) + | '{-# OVERLAPPING' '#-}' {% fmap Just $ amsr (sLL $1 $> (Overlapping (getOVERLAPPING_PRAGs $1))) (AnnPragma (mo $1) (mc $2) []) } - | '{-# OVERLAPS' '#-}' {% fmap Just $ amsrp (sLL $1 $> (Overlaps (getOVERLAPS_PRAGs $1))) + | '{-# OVERLAPS' '#-}' {% fmap Just $ amsr (sLL $1 $> (Overlaps (getOVERLAPS_PRAGs $1))) (AnnPragma (mo $1) (mc $2) []) } - | '{-# INCOHERENT' '#-}' {% fmap Just $ amsrp (sLL $1 $> (Incoherent (getINCOHERENT_PRAGs $1))) + | '{-# INCOHERENT' '#-}' {% fmap Just $ amsr (sLL $1 $> (Incoherent (getINCOHERENT_PRAGs $1))) (AnnPragma (mo $1) (mc $2) []) } | {- empty -} { Nothing } deriv_strategy_no_via :: { LDerivStrategy GhcPs } - : 'stock' {% acsA (\cs -> sL1 $1 (StockStrategy (EpAnn (glR $1) [mj AnnStock $1] cs))) } - | 'anyclass' {% acsA (\cs -> sL1 $1 (AnyclassStrategy (EpAnn (glR $1) [mj AnnAnyclass $1] cs))) } - | 'newtype' {% acsA (\cs -> sL1 $1 (NewtypeStrategy (EpAnn (glR $1) [mj AnnNewtype $1] cs))) } + : 'stock' {% amsA' (sL1 $1 (StockStrategy [mj AnnStock $1])) } + | 'anyclass' {% amsA' (sL1 $1 (AnyclassStrategy [mj AnnAnyclass $1])) } + | 'newtype' {% amsA' (sL1 $1 (NewtypeStrategy [mj AnnNewtype $1])) } deriv_strategy_via :: { LDerivStrategy GhcPs } - : 'via' sigktype {% acsA (\cs -> sLL $1 $> (ViaStrategy (XViaStrategyPs (EpAnn (glEE $1 $>) [mj AnnVia $1] cs) - $2))) } + : 'via' sigktype {% amsA' (sLL $1 $> (ViaStrategy (XViaStrategyPs [mj AnnVia $1] $2))) } deriv_standalone_strategy :: { Maybe (LDerivStrategy GhcPs) } - : 'stock' {% fmap Just $ acsA (\cs -> sL1 $1 (StockStrategy (EpAnn (glR $1) [mj AnnStock $1] cs))) } - | 'anyclass' {% fmap Just $ acsA (\cs -> sL1 $1 (AnyclassStrategy (EpAnn (glR $1) [mj AnnAnyclass $1] cs))) } - | 'newtype' {% fmap Just $ acsA (\cs -> sL1 $1 (NewtypeStrategy (EpAnn (glR $1) [mj AnnNewtype $1] cs))) } + : 'stock' {% fmap Just $ amsA' (sL1 $1 (StockStrategy [mj AnnStock $1])) } + | 'anyclass' {% fmap Just $ amsA' (sL1 $1 (AnyclassStrategy [mj AnnAnyclass $1])) } + | 'newtype' {% fmap Just $ amsA' (sL1 $1 (NewtypeStrategy [mj AnnNewtype $1])) } | deriv_strategy_via { Just $1 } | {- empty -} { Nothing } @@ -1403,7 +1402,7 @@ opt_injective_info :: { Located ([AddEpAnn], Maybe (LInjectivityAnn GhcPs)) } injectivity_cond :: { LInjectivityAnn GhcPs } : tyvarid '->' inj_varids - {% acsA (\cs -> sLL $1 $> (InjectivityAnn (EpAnn (glR $1) [mu AnnRarrow $2] cs) $1 (reverse (unLoc $3)))) } + {% amsA' (sLL $1 $> (InjectivityAnn [mu AnnRarrow $2] $1 (reverse (unLoc $3)))) } inj_varids :: { Located [LocatedN RdrName] } : inj_varids tyvarid { sLL $1 $> ($2 : unLoc $1) } @@ -1448,7 +1447,7 @@ ty_fam_inst_eqn :: { LTyFamInstEqn GhcPs } {% do { hintExplicitForall $1 ; tvbs <- fromSpecTyVarBndrs $2 ; let loc = comb2 $1 $> - ; cs <- getCommentsFor loc + ; !cs <- getCommentsFor loc ; mkTyFamInstEqn loc (mkHsOuterExplicit (EpAnn (glEE $1 $3) (mu AnnForall $1, mj AnnDot $3) cs) tvbs) $4 $6 [mj AnnEqual $5] }} | type '=' ktype {% mkTyFamInstEqn (comb2 $1 $>) mkHsOuterImplicit $1 $3 (mj AnnEqual $2:[]) } @@ -1571,35 +1570,35 @@ opt_at_kind_inj_sig :: { Located ([AddEpAnn], ( LFamilyResultSig GhcPs -- T Int [a] -- for associated types -- Rather a lot of inlining here, else we get reduce/reduce errors tycl_hdr :: { Located (Maybe (LHsContext GhcPs), LHsType GhcPs) } - : context '=>' type {% acs (\cs -> (sLL $1 $> (Just (addTrailingDarrowC $1 $2 cs), $3))) } + : context '=>' type {% acs (comb2 $1 $>) (\loc cs -> (L loc (Just (addTrailingDarrowC $1 $2 cs), $3))) } | type { sL1 $1 (Nothing, $1) } datafam_inst_hdr :: { Located (Maybe (LHsContext GhcPs), HsOuterFamEqnTyVarBndrs GhcPs, LHsType GhcPs) } : 'forall' tv_bndrs '.' context '=>' type {% hintExplicitForall $1 >> fromSpecTyVarBndrs $2 >>= \tvbs -> - (acs (\cs -> (sLL $1 $> + (acs (comb2 $1 $>) (\loc cs -> (L loc (Just ( addTrailingDarrowC $4 $5 cs) , mkHsOuterExplicit (EpAnn (glEE $1 $3) (mu AnnForall $1, mj AnnDot $3) emptyComments) tvbs, $6)))) } | 'forall' tv_bndrs '.' type {% do { hintExplicitForall $1 ; tvbs <- fromSpecTyVarBndrs $2 ; let loc = comb2 $1 $> - ; cs <- getCommentsFor loc + ; !cs <- getCommentsFor loc ; return (sL loc (Nothing, mkHsOuterExplicit (EpAnn (glEE $1 $3) (mu AnnForall $1, mj AnnDot $3) cs) tvbs, $4)) } } - | context '=>' type {% acs (\cs -> (sLL $1 $>(Just (addTrailingDarrowC $1 $2 cs), mkHsOuterImplicit, $3))) } + | context '=>' type {% acs (comb2 $1 $>) (\loc cs -> (L loc (Just (addTrailingDarrowC $1 $2 cs), mkHsOuterImplicit, $3))) } | type { sL1 $1 (Nothing, mkHsOuterImplicit, $1) } capi_ctype :: { Maybe (LocatedP CType) } capi_ctype : '{-# CTYPE' STRING STRING '#-}' - {% fmap Just $ amsrp (sLL $1 $> (CType (getCTYPEs $1) (Just (Header (getSTRINGs $2) (getSTRING $2))) + {% fmap Just $ amsr (sLL $1 $> (CType (getCTYPEs $1) (Just (Header (getSTRINGs $2) (getSTRING $2))) (getSTRINGs $3,getSTRING $3))) (AnnPragma (mo $1) (mc $4) [mj AnnHeader $2,mj AnnVal $3]) } | '{-# CTYPE' STRING '#-}' - {% fmap Just $ amsrp (sLL $1 $> (CType (getCTYPEs $1) Nothing (getSTRINGs $2, getSTRING $2))) + {% fmap Just $ amsr (sLL $1 $> (CType (getCTYPEs $1) Nothing (getSTRINGs $2, getSTRING $2))) (AnnPragma (mo $1) (mc $3) [mj AnnVal $2]) } | { Nothing } @@ -1612,8 +1611,8 @@ stand_alone_deriving :: { LDerivDecl GhcPs } : 'deriving' deriv_standalone_strategy 'instance' maybe_warning_pragma overlap_pragma inst_type {% do { let { err = text "in the stand-alone deriving instance" <> colon <+> quotes (ppr $6) } - ; acsA (\cs -> sLL $1 $> - (DerivDecl ($4, EpAnn (glEE $1 $>) [mj AnnDeriving $1, mj AnnInstance $3] cs) (mkHsWildCardBndrs $6) $2 $5)) }} + ; amsA' (sLL $1 $> + (DerivDecl ($4, [mj AnnDeriving $1, mj AnnInstance $3]) (mkHsWildCardBndrs $6) $2 $5)) }} ----------------------------------------------------------------------------- -- Role annotations @@ -1643,21 +1642,21 @@ role : VARID { sL1 $1 $ Just $ getVARID $1 } pattern_synonym_decl :: { LHsDecl GhcPs } : 'pattern' pattern_synonym_lhs '=' pat {% let (name, args, as ) = $2 in - acsA (\cs -> sLL $1 $> . ValD noExtField $ mkPatSynBind name args $4 + amsA' (sLL $1 $> . ValD noExtField $ mkPatSynBind name args $4 ImplicitBidirectional - (EpAnn (glEE $1 $>) (as ++ [mj AnnPattern $1, mj AnnEqual $3]) cs)) } + (as ++ [mj AnnPattern $1, mj AnnEqual $3])) } | 'pattern' pattern_synonym_lhs '<-' pat {% let (name, args, as) = $2 in - acsA (\cs -> sLL $1 $> . ValD noExtField $ mkPatSynBind name args $4 Unidirectional - (EpAnn (glEE $1 $>) (as ++ [mj AnnPattern $1,mu AnnLarrow $3]) cs)) } + amsA' (sLL $1 $> . ValD noExtField $ mkPatSynBind name args $4 Unidirectional + (as ++ [mj AnnPattern $1,mu AnnLarrow $3])) } | 'pattern' pattern_synonym_lhs '<-' pat where_decls {% do { let (name, args, as) = $2 ; mg <- mkPatSynMatchGroup name $5 - ; acsA (\cs -> sLL $1 $> . ValD noExtField $ + ; amsA' (sLL $1 $> . ValD noExtField $ mkPatSynBind name args $4 (ExplicitBidirectional mg) - (EpAnn (glEE $1 $>) (as ++ [mj AnnPattern $1,mu AnnLarrow $3]) cs)) + (as ++ [mj AnnPattern $1,mu AnnLarrow $3])) }} pattern_synonym_lhs :: { (LocatedN RdrName, HsPatSynDetails GhcPs, [AddEpAnn]) } @@ -1675,15 +1674,15 @@ cvars1 :: { [RecordPatSynField GhcPs] } ; return ((RecordPatSynField (mkFieldOcc h) h) : $3 )}} where_decls :: { LocatedL (OrdList (LHsDecl GhcPs)) } - : 'where' '{' decls '}' {% amsrl (sLL $1 $> (snd $ unLoc $3)) + : 'where' '{' decls '}' {% amsr (sLL $1 $> (snd $ unLoc $3)) (AnnList (Just $ glR $3) (Just $ moc $2) (Just $ mcc $4) (mj AnnWhere $1: (fst $ unLoc $3)) []) } - | 'where' vocurly decls close {% amsrl (sLL $1 $3 (snd $ unLoc $3)) + | 'where' vocurly decls close {% amsr (sLL $1 $3 (snd $ unLoc $3)) (AnnList (Just $ glR $3) Nothing Nothing (mj AnnWhere $1: (fst $ unLoc $3)) []) } pattern_synonym_sig :: { LSig GhcPs } : 'pattern' con_list '::' sigtype - {% acsA (\cs -> sLL $1 $> - $ PatSynSig (EpAnn (glEE $1 $>) (AnnSig (mu AnnDcolon $3) [mj AnnPattern $1]) cs) + {% amsA' (sLL $1 $> + $ PatSynSig (AnnSig (mu AnnDcolon $3) [mj AnnPattern $1]) (toList $ unLoc $2) $4) } qvarcon :: { LocatedN RdrName } @@ -1705,7 +1704,7 @@ decl_cls : at_decl_cls { $1 } do { v <- checkValSigLhs $2 ; let err = text "in default signature" <> colon <+> quotes (ppr $2) - ; acsA (\cs -> sLL $1 $> $ SigD noExtField $ ClassOpSig (EpAnn (glEE $1 $>) (AnnSig (mu AnnDcolon $3) [mj AnnDefault $1]) cs) True [v] $4) }} + ; amsA' (sLL $1 $> $ SigD noExtField $ ClassOpSig (AnnSig (mu AnnDcolon $3) [mj AnnDefault $1]) True [v] $4) }} decls_cls :: { Located ([AddEpAnn],OrdList (LHsDecl GhcPs)) } -- Reversed : decls_cls ';' decl_cls {% if isNilOL (snd $ unLoc $1) @@ -1826,21 +1825,21 @@ binds :: { Located (HsLocalBinds GhcPs) } -- May have implicit parameters -- No type declarations : decllist {% do { val_binds <- cvBindGroup (unLoc $ snd $ unLoc $1) - ; cs <- getCommentsFor (gl $1) + ; !cs <- getCommentsFor (gl $1) ; return (sL1 $1 $ HsValBinds (fixValbindsAnn $ EpAnn (glR $1) (fst $ unLoc $1) cs) val_binds)} } - | '{' dbinds '}' {% acs (\cs -> (L (comb3 $1 $2 $3) + | '{' dbinds '}' {% acs (comb3 $1 $2 $3) (\loc cs -> (L loc $ HsIPBinds (EpAnn (spanAsAnchor (comb3 $1 $2 $3)) (AnnList (Just$ glR $2) (Just $ moc $1) (Just $ mcc $3) [] []) cs) (IPBinds noExtField (reverse $ unLoc $2)))) } - | vocurly dbinds close {% acs (\cs -> (L (gl $2) + | vocurly dbinds close {% acs (gl $2) (\loc cs -> (L loc $ HsIPBinds (EpAnn (glR $1) (AnnList (Just $ glR $2) Nothing Nothing [] []) cs) (IPBinds noExtField (reverse $ unLoc $2)))) } wherebinds :: { Maybe (Located (HsLocalBinds GhcPs, Maybe EpAnnComments )) } -- May have implicit parameters -- No type declarations - : 'where' binds {% do { r <- acs (\cs -> - (sLL $1 $> (annBinds (mj AnnWhere $1) cs (unLoc $2)))) + : 'where' binds {% do { r <- acs (comb2 $1 $>) (\loc cs -> + (L loc (annBinds (mj AnnWhere $1) cs (unLoc $2)))) ; return $ Just r} } | {- empty -} { Nothing } @@ -1865,12 +1864,12 @@ rule :: { LRuleDecl GhcPs } : STRING rule_activation rule_foralls infixexp '=' exp {%runPV (unECP $4) >>= \ $4 -> runPV (unECP $6) >>= \ $6 -> - acsA (\cs -> (sLL $1 $> $ HsRule - { rd_ext = (EpAnn (glEE $1 $>) ((fstOf3 $3) (mj AnnEqual $5 : (fst $2))) cs, getSTRINGs $1) + amsA' (sLL $1 $> $ HsRule + { rd_ext = (((fstOf3 $3) (mj AnnEqual $5 : (fst $2))), getSTRINGs $1) , rd_name = L (noAnnSrcSpan $ gl $1) (getSTRING $1) , rd_act = (snd $2) `orElse` AlwaysActive , rd_tyvs = sndOf3 $3, rd_tmvs = thdOf3 $3 - , rd_lhs = $4, rd_rhs = $6 })) } + , rd_lhs = $4, rd_rhs = $6 }) } -- Rules can be specified to be NeverActive, unlike inline/specialize pragmas rule_activation :: { ([AddEpAnn],Maybe Activation) } @@ -1925,7 +1924,7 @@ rule_vars :: { [LRuleTyTmVar] } rule_var :: { LRuleTyTmVar } : varid { sL1a $1 (RuleTyTmVar noAnn $1 Nothing) } - | '(' varid '::' ctype ')' {% acsA (\cs -> sLL $1 $> (RuleTyTmVar (EpAnn (glEE $1 $>) [mop $1,mu AnnDcolon $3,mcp $5] cs) $2 (Just $4))) } + | '(' varid '::' ctype ')' {% amsA' (sLL $1 $> (RuleTyTmVar [mop $1,mu AnnDcolon $3,mcp $5] $2 (Just $4))) } {- Note [Parsing explicit foralls in Rules] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1955,10 +1954,10 @@ to varid (used for rule_vars), 'checkRuleTyVarBndrNames' must be updated. maybe_warning_pragma :: { Maybe (LWarningTxt GhcPs) } : '{-# DEPRECATED' strings '#-}' - {% fmap Just $ amsrp (sLL $1 $> $ DeprecatedTxt (getDEPRECATED_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $2)) + {% fmap Just $ amsr (sLL $1 $> $ DeprecatedTxt (getDEPRECATED_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $2)) (AnnPragma (mo $1) (mc $3) (fst $ unLoc $2)) } | '{-# WARNING' warning_category strings '#-}' - {% fmap Just $ amsrp (sLL $1 $> $ WarningTxt $2 (getWARNING_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $3)) + {% fmap Just $ amsr (sLL $1 $> $ WarningTxt $2 (getWARNING_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $3)) (AnnPragma (mo $1) (mc $4) (fst $ unLoc $3))} | {- empty -} { Nothing } @@ -1986,8 +1985,8 @@ warnings :: { OrdList (LWarnDecl GhcPs) } -- SUP: TEMPORARY HACK, not checking for `module Foo' warning :: { OrdList (LWarnDecl GhcPs) } : warning_category namespace_spec namelist strings - {% fmap unitOL $ acsA (\cs -> L (comb4 $1 $2 $3 $4) - (Warning (unLoc $2, EpAnn (glMR $1 $3) (fst $ unLoc $4) cs) (unLoc $3) + {% fmap unitOL $ amsA' (L (comb4 $1 $2 $3 $4) + (Warning (unLoc $2, fst $ unLoc $4) (unLoc $3) (WarningTxt $1 NoSourceText $ map stringLiteralToHsDocWst $ snd $ unLoc $4))) } namespace_spec :: { Located NamespaceSpecifier } @@ -2015,7 +2014,7 @@ deprecations :: { OrdList (LWarnDecl GhcPs) } -- SUP: TEMPORARY HACK, not checking for `module Foo' deprecation :: { OrdList (LWarnDecl GhcPs) } : namespace_spec namelist strings - {% fmap unitOL $ acsA (\cs -> sL (comb3 $1 $2 $>) $ (Warning (unLoc $1, EpAnn (glEE $2 $>) (fst $ unLoc $3) cs) (unLoc $2) + {% fmap unitOL $ amsA' (sL (comb3 $1 $2 $>) $ (Warning (unLoc $1, fst $ unLoc $3) (unLoc $2) (DeprecatedTxt NoSourceText $ map stringLiteralToHsDocWst $ snd $ unLoc $3))) } strings :: { Located ([AddEpAnn],[Located StringLiteral]) } @@ -2040,27 +2039,27 @@ stringlist :: { Located (OrdList (Located StringLiteral)) } -- Annotations annotation :: { LHsDecl GhcPs } : '{-# ANN' name_var aexp '#-}' {% runPV (unECP $3) >>= \ $3 -> - acsA (\cs -> sLL $1 $> (AnnD noExtField $ HsAnnotation - ((EpAnn (glEE $1 $>) (AnnPragma (mo $1) (mc $4) []) cs), + amsA' (sLL $1 $> (AnnD noExtField $ HsAnnotation + (AnnPragma (mo $1) (mc $4) [], (getANN_PRAGs $1)) (ValueAnnProvenance $2) $3)) } | '{-# ANN' 'type' otycon aexp '#-}' {% runPV (unECP $4) >>= \ $4 -> - acsA (\cs -> sLL $1 $> (AnnD noExtField $ HsAnnotation - ((EpAnn (glEE $1 $>) (AnnPragma (mo $1) (mc $5) [mj AnnType $2]) cs), + amsA' (sLL $1 $> (AnnD noExtField $ HsAnnotation + (AnnPragma (mo $1) (mc $5) [mj AnnType $2], (getANN_PRAGs $1)) (TypeAnnProvenance $3) $4)) } | '{-# ANN' 'module' aexp '#-}' {% runPV (unECP $3) >>= \ $3 -> - acsA (\cs -> sLL $1 $> (AnnD noExtField $ HsAnnotation - ((EpAnn (glEE $1 $>) (AnnPragma (mo $1) (mc $4) [mj AnnModule $2]) cs), + amsA' (sLL $1 $> (AnnD noExtField $ HsAnnotation + (AnnPragma (mo $1) (mc $4) [mj AnnModule $2], (getANN_PRAGs $1)) ModuleAnnProvenance $3)) } ----------------------------------------------------------------------------- -- Foreign import and export declarations -fdecl :: { Located ([AddEpAnn],EpAnn [AddEpAnn] -> HsDecl GhcPs) } +fdecl :: { Located ([AddEpAnn], [AddEpAnn] -> HsDecl GhcPs) } fdecl : 'import' callconv safety fspec {% mkImport $2 $3 (snd $ unLoc $4) >>= \i -> return (sLL $1 $> (mj AnnImport $1 : (fst $ unLoc $4),i)) } @@ -2109,8 +2108,8 @@ opt_tyconsig :: { ([AddEpAnn], Maybe (LocatedN RdrName)) } -- See Note [forall-or-nothing rule] in GHC.Hs.Type. sigktype :: { LHsSigType GhcPs } : sigtype { $1 } - | ctype '::' kind {% acsA (\cs -> sLL $1 $> $ mkHsImplicitSigType $ - sLLa $1 $> $ HsKindSig (EpAnn (glEE $1 $>) [mu AnnDcolon $2] cs) $1 $3) } + | ctype '::' kind {% amsA' (sLL $1 $> $ mkHsImplicitSigType $ + sLLa $1 $> $ HsKindSig [mu AnnDcolon $2] $1 $3) } -- Like ctype, but for types that obey the forall-or-nothing rule. -- See Note [forall-or-nothing rule] in GHC.Hs.Type. To avoid duplicating the @@ -2140,17 +2139,17 @@ unpackedness :: { Located UnpackednessPragma } forall_telescope :: { Located (HsForAllTelescope GhcPs) } : 'forall' tv_bndrs '.' {% do { hintExplicitForall $1 - ; acs (\cs -> (sLL $1 $> $ + ; acs (comb2 $1 $>) (\loc cs -> (L loc $ mkHsForAllInvisTele (EpAnn (glEE $1 $>) (mu AnnForall $1,mu AnnDot $3) cs) $2 )) }} | 'forall' tv_bndrs '->' {% do { hintExplicitForall $1 ; req_tvbs <- fromSpecTyVarBndrs $2 - ; acs (\cs -> (sLL $1 $> $ + ; acs (comb2 $1 $>) (\loc cs -> (L loc $ mkHsForAllVisTele (EpAnn (glEE $1 $>) (mu AnnForall $1,mu AnnRarrow $3) cs) req_tvbs )) }} -- A ktype is a ctype, possibly with a kind annotation ktype :: { LHsType GhcPs } : ctype { $1 } - | ctype '::' kind {% acsA (\cs -> sLL $1 $> $ HsKindSig (EpAnn (glEE $1 $>) [mu AnnDcolon $2] cs) $1 $3) } + | ctype '::' kind {% amsA' (sLL $1 $> $ HsKindSig [mu AnnDcolon $2] $1 $3) } -- A ctype is a for-all type ctype :: { LHsType GhcPs } @@ -2158,12 +2157,12 @@ ctype :: { LHsType GhcPs } HsForAllTy { hst_tele = unLoc $1 , hst_xforall = noExtField , hst_body = $2 } } - | context '=>' ctype {% acsA (\cs -> (sLL $1 $> $ + | context '=>' ctype {% acsA (comb2 $1 $>) (\loc cs -> (L loc $ HsQualTy { hst_ctxt = addTrailingDarrowC $1 $2 cs , hst_xqual = NoExtField , hst_body = $3 })) } - | ipvar '::' ctype {% acsA (\cs -> sLL $1 $> (HsIParamTy (EpAnn (glEE $1 $>) [mu AnnDcolon $2] cs) (reLoc $1) $3)) } + | ipvar '::' ctype {% amsA' (sLL $1 $> (HsIParamTy [mu AnnDcolon $2] (reLoc $1) $3)) } | type { $1 } ---------------------- @@ -2195,17 +2194,15 @@ is connected to the first type too. type :: { LHsType GhcPs } -- See Note [%shift: type -> btype] : btype %shift { $1 } - | btype '->' ctype {% acsA (\cs -> sLL $1 $> - $ HsFunTy (EpAnn (glEE $1 $>) NoEpAnns cs) (HsUnrestrictedArrow (epUniTok $2)) $1 $3) } + | btype '->' ctype {% amsA' (sLL $1 $> + $ HsFunTy noExtField (HsUnrestrictedArrow (epUniTok $2)) $1 $3) } | btype mult '->' ctype {% hintLinear (getLoc $2) >> let arr = (unLoc $2) (epUniTok $3) - in acsA (\cs -> sLL $1 $> - $ HsFunTy (EpAnn (glEE $1 $>) NoEpAnns cs) arr $1 $4) } + in amsA' (sLL $1 $> $ HsFunTy noExtField arr $1 $4) } | btype '->.' ctype {% hintLinear (getLoc $2) >> - acsA (\cs -> sLL $1 $> - $ HsFunTy (EpAnn (glEE $1 $>) NoEpAnns cs) (HsLinearArrow (EpLolly (epTok $2))) $1 $3) } + amsA' (sLL $1 $> $ HsFunTy noExtField (HsLinearArrow (EpLolly (epTok $2))) $1 $3) } -- [mu AnnLollyU $2] } mult :: { Located (EpUniToken "->" "\8594" -> HsArrow GhcPs) } @@ -2240,53 +2237,53 @@ tyarg :: { LHsType GhcPs } tyop :: { (LocatedN RdrName, PromotionFlag) } : qtyconop { ($1, NotPromoted) } | tyvarop { ($1, NotPromoted) } - | SIMPLEQUOTE qconop {% do { op <- amsrn (sLL $1 $> (unLoc $2)) - (NameAnnQuote (glAA $1) (gl $2) []) + | SIMPLEQUOTE qconop {% do { op <- amsr (sLL $1 $> (unLoc $2)) + (NameAnnQuote (glAA $1) (gl $2) []) ; return (op, IsPromoted) } } - | SIMPLEQUOTE varop {% do { op <- amsrn (sLL $1 $> (unLoc $2)) - (NameAnnQuote (glAA $1) (gl $2) []) + | SIMPLEQUOTE varop {% do { op <- amsr (sLL $1 $> (unLoc $2)) + (NameAnnQuote (glAA $1) (gl $2) []) ; return (op, IsPromoted) } } atype :: { LHsType GhcPs } - : ntgtycon {% acsA (\cs -> sL1 $1 (HsTyVar (EpAnn (glR $1) [] cs) NotPromoted $1)) } -- Not including unit tuples + : ntgtycon {% amsA' (sL1 $1 (HsTyVar [] NotPromoted $1)) } -- Not including unit tuples -- See Note [%shift: atype -> tyvar] - | tyvar %shift {% acsA (\cs -> sL1 $1 (HsTyVar (EpAnn (glR $1) [] cs) NotPromoted $1)) } -- (See Note [Unit tuples]) + | tyvar %shift {% amsA' (sL1 $1 (HsTyVar [] NotPromoted $1)) } -- (See Note [Unit tuples]) | '*' {% do { warnStarIsType (getLoc $1) ; return $ sL1a $1 (HsStarTy noExtField (isUnicode $1)) } } -- See Note [Whitespace-sensitive operator parsing] in GHC.Parser.Lexer - | PREFIX_TILDE atype {% acsA (\cs -> sLL $1 $> (mkBangTy (EpAnn (glEE $1 $>) [mj AnnTilde $1] cs) SrcLazy $2)) } - | PREFIX_BANG atype {% acsA (\cs -> sLL $1 $> (mkBangTy (EpAnn (glEE $1 $>) [mj AnnBang $1] cs) SrcStrict $2)) } + | PREFIX_TILDE atype {% amsA' (sLL $1 $> (mkBangTy [mj AnnTilde $1] SrcLazy $2)) } + | PREFIX_BANG atype {% amsA' (sLL $1 $> (mkBangTy [mj AnnBang $1] SrcStrict $2)) } - | '{' fielddecls '}' {% do { decls <- acsA (\cs -> (sLL $1 $> $ HsRecTy (EpAnn (glEE $1 $>) (AnnList (listAsAnchorM $2) (Just $ moc $1) (Just $ mcc $3) [] []) cs) $2)) + | '{' fielddecls '}' {% do { decls <- amsA' (sLL $1 $> $ HsRecTy (AnnList (listAsAnchorM $2) (Just $ moc $1) (Just $ mcc $3) [] []) $2) ; checkRecordSyntax decls }} -- Constructor sigs only - | '(' ')' {% acsA (\cs -> sLL $1 $> $ HsTupleTy (EpAnn (glEE $1 $>) (AnnParen AnnParens (glAA $1) (glAA $2)) cs) + | '(' ')' {% amsA' (sLL $1 $> $ HsTupleTy (AnnParen AnnParens (glAA $1) (glAA $2)) HsBoxedOrConstraintTuple []) } | '(' ktype ',' comma_types1 ')' {% do { h <- addTrailingCommaA $2 (gl $3) - ; acsA (\cs -> sLL $1 $> $ HsTupleTy (EpAnn (glEE $1 $>) (AnnParen AnnParens (glAA $1) (glAA $5)) cs) + ; amsA' (sLL $1 $> $ HsTupleTy (AnnParen AnnParens (glAA $1) (glAA $5)) HsBoxedOrConstraintTuple (h : $4)) }} - | '(#' '#)' {% acsA (\cs -> sLL $1 $> $ HsTupleTy (EpAnn (glEE $1 $>) (AnnParen AnnParensHash (glAA $1) (glAA $2)) cs) HsUnboxedTuple []) } - | '(#' comma_types1 '#)' {% acsA (\cs -> sLL $1 $> $ HsTupleTy (EpAnn (glEE $1 $>) (AnnParen AnnParensHash (glAA $1) (glAA $3)) cs) HsUnboxedTuple $2) } - | '(#' bar_types2 '#)' {% acsA (\cs -> sLL $1 $> $ HsSumTy (EpAnn (glEE $1 $>) (AnnParen AnnParensHash (glAA $1) (glAA $3)) cs) $2) } - | '[' ktype ']' {% acsA (\cs -> sLL $1 $> $ HsListTy (EpAnn (glEE $1 $>) (AnnParen AnnParensSquare (glAA $1) (glAA $3)) cs) $2) } - | '(' ktype ')' {% acsA (\cs -> sLL $1 $> $ HsParTy (EpAnn (glEE $1 $>) (AnnParen AnnParens (glAA $1) (glAA $3)) cs) $2) } + | '(#' '#)' {% amsA' (sLL $1 $> $ HsTupleTy (AnnParen AnnParensHash (glAA $1) (glAA $2)) HsUnboxedTuple []) } + | '(#' comma_types1 '#)' {% amsA' (sLL $1 $> $ HsTupleTy (AnnParen AnnParensHash (glAA $1) (glAA $3)) HsUnboxedTuple $2) } + | '(#' bar_types2 '#)' {% amsA' (sLL $1 $> $ HsSumTy (AnnParen AnnParensHash (glAA $1) (glAA $3)) $2) } + | '[' ktype ']' {% amsA' (sLL $1 $> $ HsListTy (AnnParen AnnParensSquare (glAA $1) (glAA $3)) $2) } + | '(' ktype ')' {% amsA' (sLL $1 $> $ HsParTy (AnnParen AnnParens (glAA $1) (glAA $3)) $2) } | quasiquote { mapLocA (HsSpliceTy noExtField) $1 } | splice_untyped { mapLocA (HsSpliceTy noExtField) $1 } -- see Note [Promotion] for the followings - | SIMPLEQUOTE qcon_nowiredlist {% acsA (\cs -> sLL $1 $> $ HsTyVar (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1,mjN AnnName $2] cs) IsPromoted $2) } + | SIMPLEQUOTE qcon_nowiredlist {% amsA' (sLL $1 $> $ HsTyVar [mj AnnSimpleQuote $1,mjN AnnName $2] IsPromoted $2) } | SIMPLEQUOTE '(' ktype ',' comma_types1 ')' {% do { h <- addTrailingCommaA $3 (gl $4) - ; acsA (\cs -> sLL $1 $> $ HsExplicitTupleTy (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1,mop $2,mcp $6] cs) (h : $5)) }} - | SIMPLEQUOTE '[' comma_types0 ']' {% acsA (\cs -> sLL $1 $> $ HsExplicitListTy (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1,mos $2,mcs $4] cs) IsPromoted $3) } - | SIMPLEQUOTE var {% acsA (\cs -> sLL $1 $> $ HsTyVar (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1,mjN AnnName $2] cs) IsPromoted $2) } + ; amsA' (sLL $1 $> $ HsExplicitTupleTy [mj AnnSimpleQuote $1,mop $2,mcp $6] (h : $5)) }} + | SIMPLEQUOTE '[' comma_types0 ']' {% amsA' (sLL $1 $> $ HsExplicitListTy [mj AnnSimpleQuote $1,mos $2,mcs $4] IsPromoted $3) } + | SIMPLEQUOTE var {% amsA' (sLL $1 $> $ HsTyVar [mj AnnSimpleQuote $1,mjN AnnName $2] IsPromoted $2) } -- Two or more [ty, ty, ty] must be a promoted list type, just as -- if you had written '[ty, ty, ty] -- (One means a list type, zero means the list type constructor, -- so you have to quote those.) | '[' ktype ',' comma_types1 ']' {% do { h <- addTrailingCommaA $2 (gl $3) - ; acsA (\cs -> sLL $1 $> $ HsExplicitListTy (EpAnn (glEE $1 $>) [mos $1,mcs $5] cs) NotPromoted (h:$4)) }} + ; amsA' (sLL $1 $> $ HsExplicitListTy [mos $1,mcs $5] NotPromoted (h:$4)) }} | INTEGER { sLLa $1 $> $ HsTyLit noExtField $ HsNumTy (getINTEGERs $1) (il_value (getINTEGER $1)) } | CHAR { sLLa $1 $> $ HsTyLit noExtField $ HsCharTy (getCHARs $1) @@ -2297,7 +2294,7 @@ atype :: { LHsType GhcPs } -- Type variables are never exported, so `M.tyvar` will be rejected by the renamer. -- We let it pass the parser because the renamer can generate a better error message. | QVARID {% let qname = mkQual tvName (getQVARID $1) - in acsA (\cs -> sL1 $1 (HsTyVar (EpAnn (glEE $1 $>) [] cs) NotPromoted (sL1n $1 $ qname)))} + in amsA' (sL1 $1 (HsTyVar [] NotPromoted (sL1n $1 $ qname)))} -- An inst_type is what occurs in the head of an instance decl -- e.g. (Foo a, Gaz b) => Wibble a b @@ -2332,12 +2329,12 @@ tv_bndrs :: { [LHsTyVarBndr Specificity GhcPs] } tv_bndr :: { LHsTyVarBndr Specificity GhcPs } : tv_bndr_no_braces { $1 } - | '{' tyvar '}' {% acsA (\cs -> sLL $1 $> (UserTyVar (EpAnn (glEE $1 $>) [moc $1, mcc $3] cs) InferredSpec $2)) } - | '{' tyvar '::' kind '}' {% acsA (\cs -> sLL $1 $> (KindedTyVar (EpAnn (glEE $1 $>) [moc $1,mu AnnDcolon $3 ,mcc $5] cs) InferredSpec $2 $4)) } + | '{' tyvar '}' {% amsA' (sLL $1 $> (UserTyVar [moc $1, mcc $3] InferredSpec $2)) } + | '{' tyvar '::' kind '}' {% amsA' (sLL $1 $> (KindedTyVar [moc $1,mu AnnDcolon $3 ,mcc $5] InferredSpec $2 $4)) } tv_bndr_no_braces :: { LHsTyVarBndr Specificity GhcPs } - : tyvar {% acsA (\cs -> (sL1 $1 (UserTyVar (EpAnn (glR $1) [] cs) SpecifiedSpec $1))) } - | '(' tyvar '::' kind ')' {% acsA (\cs -> (sLL $1 $> (KindedTyVar (EpAnn (glEE $1 $>) [mop $1,mu AnnDcolon $3 ,mcp $5] cs) SpecifiedSpec $2 $4))) } + : tyvar {% amsA' (sL1 $1 (UserTyVar [] SpecifiedSpec $1)) } + | '(' tyvar '::' kind ')' {% amsA' (sLL $1 $> (KindedTyVar [mop $1,mu AnnDcolon $3 ,mcp $5] SpecifiedSpec $2 $4)) } fds :: { Located ([AddEpAnn],[LHsFunDep GhcPs]) } : {- empty -} { noLoc ([],[]) } @@ -2352,8 +2349,8 @@ fds1 :: { Located [LHsFunDep GhcPs] } | fd { sL1 $1 [$1] } fd :: { LHsFunDep GhcPs } - : varids0 '->' varids0 {% acsA (\cs -> L (comb3 $1 $2 $3) - (FunDep (EpAnn (spanAsAnchor (comb3 $1 $2 $3)) [mu AnnRarrow $2] cs) + : varids0 '->' varids0 {% amsA' (L (comb3 $1 $2 $3) + (FunDep [mu AnnRarrow $2] (reverse (unLoc $1)) (reverse (unLoc $3)))) } @@ -2451,17 +2448,16 @@ constrs1 :: { Located [LConDecl GhcPs] } constr :: { LConDecl GhcPs } : forall context '=>' constr_stuff - {% acsA (\cs -> let (con,details) = unLoc $4 in + {% amsA' (let (con,details) = unLoc $4 in (L (comb4 $1 $2 $3 $4) (mkConDeclH98 - (EpAnn (spanAsAnchor (comb4 $1 $2 $3 $4)) - (mu AnnDarrow $3:(fst $ unLoc $1)) cs) + (mu AnnDarrow $3:(fst $ unLoc $1)) con (snd $ unLoc $1) (Just $2) details))) } | forall constr_stuff - {% acsA (\cs -> let (con,details) = unLoc $2 in - (L (comb2 $1 $2) (mkConDeclH98 (EpAnn (spanAsAnchor (comb2 $1 $2)) (fst $ unLoc $1) cs) + {% amsA' (let (con,details) = unLoc $2 in + (L (comb2 $1 $2) (mkConDeclH98 (fst $ unLoc $1) con (snd $ unLoc $1) Nothing -- No context @@ -2489,8 +2485,8 @@ fielddecls1 :: { [LConDeclField GhcPs] } fielddecl :: { LConDeclField GhcPs } -- A list because of f,g :: Int : sig_vars '::' ctype - {% acsA (\cs -> L (comb2 $1 $3) - (ConDeclField (EpAnn (glEE $1 $>) [mu AnnDcolon $2] cs) + {% amsA' (L (comb2 $1 $3) + (ConDeclField [mu AnnDcolon $2] (reverse (map (\ln@(L l n) -> L (fromTrailingN l) $ FieldOcc noExtField (L (noTrailingN l) n)) (unLoc $1))) $3 Nothing))} @@ -2509,24 +2505,24 @@ derivings :: { Located (HsDeriving GhcPs) } deriving :: { LHsDerivingClause GhcPs } : 'deriving' deriv_clause_types {% let { full_loc = comb2 $1 $> } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glEE $1 $>) [mj AnnDeriving $1] cs) Nothing $2) } + in amsA' (L full_loc $ HsDerivingClause [mj AnnDeriving $1] Nothing $2) } | 'deriving' deriv_strategy_no_via deriv_clause_types {% let { full_loc = comb2 $1 $> } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glEE $1 $>) [mj AnnDeriving $1] cs) (Just $2) $3) } + in amsA' (L full_loc $ HsDerivingClause [mj AnnDeriving $1] (Just $2) $3) } | 'deriving' deriv_clause_types deriv_strategy_via {% let { full_loc = comb2 $1 $> } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glEE $1 $>) [mj AnnDeriving $1] cs) (Just $3) $2) } + in amsA' (L full_loc $ HsDerivingClause [mj AnnDeriving $1] (Just $3) $2) } deriv_clause_types :: { LDerivClauseTys GhcPs } : qtycon { let { tc = sL1a $1 $ mkHsImplicitSigType $ sL1a $1 $ HsTyVar noAnn NotPromoted $1 } in sL1a $1 (DctSingle noExtField tc) } - | '(' ')' {% amsrc (sLL $1 $> (DctMulti noExtField [])) - (AnnContext Nothing [glAA $1] [glAA $2]) } - | '(' deriv_types ')' {% amsrc (sLL $1 $> (DctMulti noExtField $2)) - (AnnContext Nothing [glAA $1] [glAA $3])} + | '(' ')' {% amsr (sLL $1 $> (DctMulti noExtField [])) + (AnnContext Nothing [glAA $1] [glAA $2]) } + | '(' deriv_types ')' {% amsr (sLL $1 $> (DctMulti noExtField $2)) + (AnnContext Nothing [glAA $1] [glAA $3])} ----------------------------------------------------------------------------- -- Value definitions @@ -2562,7 +2558,7 @@ decl_no_th :: { LHsDecl GhcPs } -- Depending upon what the pattern looks like we might get either -- a FunBind or PatBind back from checkValDef. See Note -- [FunBind vs PatBind] - ; cs <- getCommentsFor l + ; !cs <- getCommentsFor l ; return $! (sL (commentsA l cs) $ ValD noExtField r) } } | PREFIX_PERCENT atype infixexp opt_sig rhs {% runPV (unECP $3) >>= \ $3 -> do { let { l = comb2 $3 $> } @@ -2573,7 +2569,7 @@ decl_no_th :: { LHsDecl GhcPs } -- Depending upon what the pattern looks like we might get either -- a FunBind or PatBind back from checkValDef. See Note -- [FunBind vs PatBind] - ; cs <- getCommentsFor l + ; !cs <- getCommentsFor l ; return $! (sL (commentsA l cs) $ ValD noExtField r) } } | pattern_synonym_decl { $1 } @@ -2590,11 +2586,11 @@ rhs :: { Located (GRHSs GhcPs (LHsExpr GhcPs)) } do { let L l (bs, csw) = adaptWhereBinds $3 ; let loc = (comb3 $1 $2 (L l bs)) ; let locg = (comb2 $1 $2) - ; acs (\cs -> - sL loc (GRHSs csw (unguardedRHS (EpAnn (anc $ rs locg) (GrhsAnn Nothing (mj AnnEqual $1)) cs) locg $2) + ; acs loc (\loc cs -> + sL loc (GRHSs csw (unguardedRHS (EpAnn (spanAsAnchor locg) (GrhsAnn Nothing (mj AnnEqual $1)) cs) locg $2) bs)) } } | gdrhs wherebinds {% do { let {L l (bs, csw) = adaptWhereBinds $2} - ; acs (\cs -> sL (comb2 $1 (L l bs)) + ; acs (comb2 $1 (L l bs)) (\loc cs -> L loc (GRHSs (cs Semi.<> csw) (reverse (unLoc $1)) bs)) }} gdrhs :: { Located [LGRHS GhcPs (LHsExpr GhcPs)] } @@ -2603,7 +2599,7 @@ gdrhs :: { Located [LGRHS GhcPs (LHsExpr GhcPs)] } gdrh :: { LGRHS GhcPs (LHsExpr GhcPs) } : '|' guardquals '=' exp {% runPV (unECP $4) >>= \ $4 -> - acsA (\cs -> sL (comb2 $1 $>) $ GRHS (EpAnn (glEE $1 $>) (GrhsAnn (Just $ glAA $1) (mj AnnEqual $3)) cs) (unLoc $2) $4) } + acsA (comb2 $1 $>) (\loc cs -> L loc $ GRHS (EpAnn (glEE $1 $>) (GrhsAnn (Just $ glAA $1) (mj AnnEqual $3)) cs) (unLoc $2) $4) } sigdecl :: { LHsDecl GhcPs } : @@ -2611,14 +2607,14 @@ sigdecl :: { LHsDecl GhcPs } infixexp '::' sigtype {% do { $1 <- runPV (unECP $1) ; v <- checkValSigLhs $1 - ; acsA (\cs -> (sLL $1 $> $ SigD noExtField $ - TypeSig (EpAnn (glEE $1 $>) (AnnSig (mu AnnDcolon $2) []) cs) [v] (mkHsWildCardBndrs $3)))} } + ; amsA' (sLL $1 $> $ SigD noExtField $ + TypeSig (AnnSig (mu AnnDcolon $2) []) [v] (mkHsWildCardBndrs $3))} } | var ',' sig_vars '::' sigtype {% do { v <- addTrailingCommaN $1 (gl $2) - ; let sig cs = TypeSig (EpAnn (glR $1) (AnnSig (mu AnnDcolon $4) []) cs) (v : reverse (unLoc $3)) + ; let sig = TypeSig (AnnSig (mu AnnDcolon $4) []) (v : reverse (unLoc $3)) (mkHsWildCardBndrs $5) - ; acsA (\cs -> sLL $1 $> $ SigD noExtField (sig cs) ) }} + ; amsA' (sLL $1 $> $ SigD noExtField sig ) }} | infix prec ops {% do { mbPrecAnn <- traverse (\l2 -> do { checkPrecP l2 $3 @@ -2629,8 +2625,8 @@ sigdecl :: { LHsDecl GhcPs } -- it defaults to maxPrecedence Nothing -> (NoSourceText, maxPrecedence) Just l2 -> (fst $ unLoc l2, snd $ unLoc l2) - ; acsA (\cs -> sLL $1 $> $ SigD noExtField - (FixSig (EpAnn (glEE $1 $>) (mj AnnInfix $1 : maybeToList mbPrecAnn) cs) (FixitySig noExtField (fromOL $ unLoc $3) + ; amsA' (sLL $1 $> $ SigD noExtField + (FixSig (mj AnnInfix $1 : maybeToList mbPrecAnn) (FixitySig noExtField (fromOL $ unLoc $3) (Fixity fixText fixPrec (unLoc $1))))) }} @@ -2638,44 +2634,42 @@ sigdecl :: { LHsDecl GhcPs } | '{-# COMPLETE' qcon_list opt_tyconsig '#-}' {% let (dcolon, tc) = $3 - in acsA - (\cs -> sLL $1 $> - (SigD noExtField (CompleteMatchSig ((EpAnn (glEE $1 $>) ([ mo $1 ] ++ dcolon ++ [mc $4]) cs), (getCOMPLETE_PRAGs $1)) $2 tc))) } + in amsA' (sLL $1 $> + (SigD noExtField (CompleteMatchSig ([ mo $1 ] ++ dcolon ++ [mc $4], (getCOMPLETE_PRAGs $1)) $2 tc))) } -- This rule is for both INLINE and INLINABLE pragmas | '{-# INLINE' activation qvarcon '#-}' - {% acsA (\cs -> (sLL $1 $> $ SigD noExtField (InlineSig (EpAnn (glEE $1 $>) ((mo $1:fst $2) ++ [mc $4]) cs) $3 + {% amsA' (sLL $1 $> $ SigD noExtField (InlineSig ((mo $1:fst $2) ++ [mc $4]) $3 (mkInlinePragma (getINLINE_PRAGs $1) (getINLINE $1) - (snd $2))))) } + (snd $2)))) } | '{-# OPAQUE' qvar '#-}' - {% acsA (\cs -> (sLL $1 $> $ SigD noExtField (InlineSig (EpAnn (glEE $1 $>) [mo $1, mc $3] cs) $2 - (mkOpaquePragma (getOPAQUE_PRAGs $1))))) } + {% amsA' (sLL $1 $> $ SigD noExtField (InlineSig [mo $1, mc $3] $2 + (mkOpaquePragma (getOPAQUE_PRAGs $1)))) } | '{-# SCC' qvar '#-}' - {% acsA (\cs -> sLL $1 $> (SigD noExtField (SCCFunSig ((EpAnn (glEE $1 $>) [mo $1, mc $3] cs), (getSCC_PRAGs $1)) $2 Nothing))) } + {% amsA' (sLL $1 $> (SigD noExtField (SCCFunSig ([mo $1, mc $3], (getSCC_PRAGs $1)) $2 Nothing))) } | '{-# SCC' qvar STRING '#-}' {% do { scc <- getSCC $3 ; let str_lit = StringLiteral (getSTRINGs $3) scc Nothing - ; acsA (\cs -> sLL $1 $> (SigD noExtField (SCCFunSig ((EpAnn (glEE $1 $>) [mo $1, mc $4] cs), (getSCC_PRAGs $1)) $2 (Just ( sL1a $3 str_lit))))) }} + ; amsA' (sLL $1 $> (SigD noExtField (SCCFunSig ([mo $1, mc $4], (getSCC_PRAGs $1)) $2 (Just ( sL1a $3 str_lit))))) }} | '{-# SPECIALISE' activation qvar '::' sigtypes1 '#-}' - {% acsA (\cs -> + {% amsA' ( let inl_prag = mkInlinePragma (getSPEC_PRAGs $1) (NoUserInlinePrag, FunLike) (snd $2) - in sLL $1 $> $ SigD noExtField (SpecSig (EpAnn (glEE $1 $>) (mo $1:mu AnnDcolon $4:mc $6:(fst $2)) cs) $3 (fromOL $5) inl_prag)) } + in sLL $1 $> $ SigD noExtField (SpecSig (mo $1:mu AnnDcolon $4:mc $6:(fst $2)) $3 (fromOL $5) inl_prag)) } | '{-# SPECIALISE_INLINE' activation qvar '::' sigtypes1 '#-}' - {% acsA (\cs -> sLL $1 $> $ SigD noExtField (SpecSig (EpAnn (glEE $1 $>) (mo $1:mu AnnDcolon $4:mc $6:(fst $2)) cs) $3 (fromOL $5) + {% amsA' (sLL $1 $> $ SigD noExtField (SpecSig (mo $1:mu AnnDcolon $4:mc $6:(fst $2)) $3 (fromOL $5) (mkInlinePragma (getSPEC_INLINE_PRAGs $1) (getSPEC_INLINE $1) (snd $2)))) } | '{-# SPECIALISE' 'instance' inst_type '#-}' - {% acsA (\cs -> sLL $1 $> - $ SigD noExtField (SpecInstSig ((EpAnn (glEE $1 $>) [mo $1,mj AnnInstance $2,mc $4] cs), (getSPEC_PRAGs $1)) $3)) } + {% amsA' (sLL $1 $> $ SigD noExtField (SpecInstSig ([mo $1,mj AnnInstance $2,mc $4], (getSPEC_PRAGs $1)) $3)) } -- A minimal complete definition | '{-# MINIMAL' name_boolformula_opt '#-}' - {% acsA (\cs -> sLL $1 $> $ SigD noExtField (MinimalSig ((EpAnn (glEE $1 $>) [mo $1,mc $3] cs), (getMINIMAL_PRAGs $1)) $2)) } + {% amsA' (sLL $1 $> $ SigD noExtField (MinimalSig ([mo $1,mc $3], (getMINIMAL_PRAGs $1)) $2)) } activation :: { ([AddEpAnn],Maybe Activation) } -- See Note [%shift: activation -> {- empty -}] @@ -2712,22 +2706,22 @@ exp :: { ECP } | infixexp '-<' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrApp (EpAnn (glEE $1 $>) (mu Annlarrowtail $2) cs) $1 $3 + amsA' (sLL $1 $> $ HsCmdArrApp (mu Annlarrowtail $2) $1 $3 HsFirstOrderApp True) } | infixexp '>-' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrApp (EpAnn (glEE $1 $>) (mu Annrarrowtail $2) cs) $3 $1 + amsA' (sLL $1 $> $ HsCmdArrApp (mu Annrarrowtail $2) $3 $1 HsFirstOrderApp False) } | infixexp '-<<' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrApp (EpAnn (glEE $1 $>) (mu AnnLarrowtail $2) cs) $1 $3 + amsA' (sLL $1 $> $ HsCmdArrApp (mu AnnLarrowtail $2) $1 $3 HsHigherOrderApp True) } | infixexp '>>-' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrApp (EpAnn (glEE $1 $>) (mu AnnRarrowtail $2) cs) $3 $1 + amsA' (sLL $1 $> $ HsCmdArrApp (mu AnnRarrowtail $2) $3 $1 HsHigherOrderApp False) } -- See Note [%shift: exp -> infixexp] | infixexp %shift { $1 } @@ -2758,7 +2752,7 @@ exp_prag(e) :: { ECP } : prag_e e -- See Note [Pragmas and operator fixity] {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromExp $ - return $ (sLLa $1 $> $ HsPragE noExtField (unLoc $1) $2) } + amsA' $ (sLL $1 $> $ HsPragE noExtField (unLoc $1) $2) } exp10 :: { ECP } -- See Note [%shift: exp10 -> '-' fexp] @@ -2820,23 +2814,24 @@ may sound unnecessary, but it's actually needed to support a common idiom: -} prag_e :: { Located (HsPragE GhcPs) } : '{-# SCC' STRING '#-}' {% do { scc <- getSCC $2 - ; acs (\cs -> (sLL $1 $> + ; return (sLL $1 $> (HsPragSCC - ((EpAnn (glEE $1 $>) (AnnPragma (mo $1) (mc $3) [mj AnnValStr $2]) cs), + (AnnPragma (mo $1) (mc $3) [mj AnnValStr $2], (getSCC_PRAGs $1)) - (StringLiteral (getSTRINGs $2) scc Nothing))))} } - | '{-# SCC' VARID '#-}' {% acs (\cs -> (sLL $1 $> + (StringLiteral (getSTRINGs $2) scc Nothing)))} } + | '{-# SCC' VARID '#-}' { sLL $1 $> (HsPragSCC - ((EpAnn (glEE $1 $>) (AnnPragma (mo $1) (mc $3) [mj AnnVal $2]) cs), + (AnnPragma (mo $1) (mc $3) [mj AnnVal $2], (getSCC_PRAGs $1)) - (StringLiteral NoSourceText (getVARID $2) Nothing)))) } + (StringLiteral NoSourceText (getVARID $2) Nothing)) } fexp :: { ECP } : fexp aexp { ECP $ superFunArg $ unECP $1 >>= \ $1 -> unECP $2 >>= \ $2 -> - mkHsAppPV (noAnnSrcSpan $ comb2 $1 $>) $1 $2 } + spanWithComments (comb2 $1 $>) >>= \l -> + mkHsAppPV l $1 $2 } -- See Note [Whitespace-sensitive operator parsing] in GHC.Parser.Lexer | fexp PREFIX_AT atype { ECP $ @@ -2845,7 +2840,7 @@ fexp :: { ECP } | 'static' aexp {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsStatic (EpAnn (glEE $1 $>) [mj AnnStatic $1] cs) $2) } + amsA' (sLL $1 $> $ HsStatic [mj AnnStatic $1] $2) } | aexp { $1 } @@ -2876,7 +2871,7 @@ aexp :: { ECP } mkHsLamPV (comb2 $1 $>) LamSingle (sLLl $1 $> [sLLa $1 $> - $ Match { m_ext = EpAnn (glEE $1 $>) [] emptyComments + $ Match { m_ext = [] , m_ctxt = LamAlt LamSingle , m_pats = $2 , m_grhss = unguardedGRHSs (comb2 $3 $4) $4 (EpAnn (glR $3) (GrhsAnn Nothing (mu AnnRarrow $3)) emptyComments) }]) @@ -2902,7 +2897,7 @@ aexp :: { ECP } | 'if' ifgdpats {% hintMultiWayIf (getLoc $1) >>= \_ -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsMultiIf (EpAnn (glEE $1 $>) (mj AnnIf $1:(fst $ unLoc $2)) cs) + amsA' (sLL $1 $> $ HsMultiIf (mj AnnIf $1:(fst $ unLoc $2)) (reverse $ snd $ unLoc $2)) } | 'case' exp 'of' altslist(pats1) {% runPV (unECP $2) >>= \ ($2 :: LHsExpr GhcPs) -> return $ ECP $ @@ -2920,16 +2915,16 @@ aexp :: { ECP } (AnnList (Just $ glR $2) Nothing Nothing [mj AnnDo $1] []) } | MDO stmtlist {% hintQualifiedDo $1 >> runPV $2 >>= \ $2 -> fmap ecpFromExp $ - acsA (\cs -> L (comb2 $1 $2) + amsA' (L (comb2 $1 $2) (mkHsDoAnns (MDoExpr $ fmap mkModuleNameFS (getMDO $1)) $2 - (EpAnn (glEE $1 $>) (AnnList (Just $ glR $2) Nothing Nothing [mj AnnMdo $1] []) cs) )) } + (AnnList (Just $ glR $2) Nothing Nothing [mj AnnMdo $1] []) )) } | 'proc' aexp '->' exp {% (checkPattern <=< runPV) (unECP $2) >>= \ p -> runPV (unECP $4) >>= \ $4@cmd -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsProc (EpAnn (glEE $1 $>) [mj AnnProc $1,mu AnnRarrow $3] cs) p (sLLa $1 $> $ HsCmdTop noExtField cmd)) } + amsA' (sLL $1 $> $ HsProc [mj AnnProc $1,mu AnnRarrow $3] p (sLLa $1 $> $ HsCmdTop noExtField cmd)) } | aexp1 { $1 } @@ -2945,9 +2940,9 @@ aexp1 :: { ECP } -- See Note [Whitespace-sensitive operator parsing] in GHC.Parser.Lexer | aexp1 TIGHT_INFIX_PROJ field {% runPV (unECP $1) >>= \ $1 -> - fmap ecpFromExp $ acsA (\cs -> - let fl = sLLa $2 $> (DotFieldOcc ((EpAnn (glR $2) (AnnFieldLabel (Just $ glAA $2)) emptyComments)) $3) in - sLL $1 $> $ mkRdrGetField $1 fl (EpAnn (glEE $1 $>) NoEpAnns cs)) } + fmap ecpFromExp $ amsA' ( + let fl = sLLa $2 $> (DotFieldOcc (AnnFieldLabel (Just $ glAA $2)) $3) in + sLL $1 $> $ mkRdrGetField $1 fl) } @@ -2957,9 +2952,11 @@ aexp2 :: { ECP } : qvar { ECP $ mkHsVarPV $! $1 } | qcon { ECP $ mkHsVarPV $! $1 } -- See Note [%shift: aexp2 -> ipvar] - | ipvar %shift {% acsExpr (\cs -> sL1a $1 (HsIPVar (comment (glRR $1) cs) $! unLoc $1)) } - | overloaded_label {% acsExpr (\cs -> sL1a $1 (HsOverLabel (comment (glRR $1) cs) (fst $! unLoc $1) (snd $! unLoc $1))) } - | literal { ECP $ pvA (mkHsLitPV $! $1) } + | ipvar %shift {% fmap ecpFromExp + (ams1 $1 (HsIPVar NoExtField $! unLoc $1)) } + | overloaded_label {% fmap ecpFromExp + (ams1 $1 (HsOverLabel NoExtField (fst $! unLoc $1) (snd $! unLoc $1))) } + | literal { ECP $ mkHsLitPV $! $1 } -- This will enable overloaded strings permanently. Normally the renamer turns HsString -- into HsOverLit when -XOverloadedStrings is on. -- | STRING { sL (getLoc $1) (HsOverLit $! mkHsIsString (getSTRINGs $1) @@ -2981,7 +2978,7 @@ aexp2 :: { ECP } -- This case is only possible when 'OverloadedRecordDotBit' is enabled. | '(' projection ')' { ECP $ - acsA (\cs -> sLL $1 $> $ mkRdrProjection (NE.reverse (unLoc $2)) (EpAnn (glEE $1 $>) (AnnProjection (glAA $1) (glAA $3)) cs)) + amsA' (sLL $1 $> $ mkRdrProjection (NE.reverse (unLoc $2)) (AnnProjection (glAA $1) (glAA $3)) ) >>= ecpFromExp' } @@ -2995,61 +2992,61 @@ aexp2 :: { ECP } [moh $1,mch $3] } | '[' list ']' { ECP $ $2 (comb2 $1 $>) (mos $1,mcs $3) } - | '_' { ECP $ pvA $ mkHsWildCardPV (getLoc $1) } + | '_' { ECP $ mkHsWildCardPV (getLoc $1) } -- Template Haskell Extension - | splice_untyped { ECP $ pvA $ mkHsSplicePV $1 } + | splice_untyped { ECP $ mkHsSplicePV $1 } | splice_typed { ecpFromExp $ fmap (uncurry HsTypedSplice) (reLoc $1) } - | SIMPLEQUOTE qvar {% fmap ecpFromExp $ acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1] cs) (VarBr noExtField True $2)) } - | SIMPLEQUOTE qcon {% fmap ecpFromExp $ acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mj AnnSimpleQuote $1] cs) (VarBr noExtField True $2)) } - | TH_TY_QUOTE tyvar {% fmap ecpFromExp $ acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mj AnnThTyQuote $1 ] cs) (VarBr noExtField False $2)) } - | TH_TY_QUOTE gtycon {% fmap ecpFromExp $ acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mj AnnThTyQuote $1 ] cs) (VarBr noExtField False $2)) } + | SIMPLEQUOTE qvar {% fmap ecpFromExp $ amsA' (sLL $1 $> $ HsUntypedBracket [mj AnnSimpleQuote $1] (VarBr noExtField True $2)) } + | SIMPLEQUOTE qcon {% fmap ecpFromExp $ amsA' (sLL $1 $> $ HsUntypedBracket [mj AnnSimpleQuote $1] (VarBr noExtField True $2)) } + | TH_TY_QUOTE tyvar {% fmap ecpFromExp $ amsA' (sLL $1 $> $ HsUntypedBracket [mj AnnThTyQuote $1 ] (VarBr noExtField False $2)) } + | TH_TY_QUOTE gtycon {% fmap ecpFromExp $ amsA' (sLL $1 $> $ HsUntypedBracket [mj AnnThTyQuote $1 ] (VarBr noExtField False $2)) } -- See Note [%shift: aexp2 -> TH_TY_QUOTE] | TH_TY_QUOTE %shift {% reportEmptyDoubleQuotes (getLoc $1) } | '[|' exp '|]' {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) (if (hasE $1) then [mj AnnOpenE $1, mu AnnCloseQ $3] - else [mu AnnOpenEQ $1,mu AnnCloseQ $3]) cs) (ExpBr noExtField $2)) } + amsA' (sLL $1 $> $ HsUntypedBracket (if (hasE $1) then [mj AnnOpenE $1, mu AnnCloseQ $3] + else [mu AnnOpenEQ $1,mu AnnCloseQ $3]) (ExpBr noExtField $2)) } | '[||' exp '||]' {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsTypedBracket (EpAnn (glEE $1 $>) (if (hasE $1) then [mj AnnOpenE $1,mc $3] else [mo $1,mc $3]) cs) $2) } + amsA' (sLL $1 $> $ HsTypedBracket (if (hasE $1) then [mj AnnOpenE $1,mc $3] else [mo $1,mc $3]) $2) } | '[t|' ktype '|]' {% fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mo $1,mu AnnCloseQ $3] cs) (TypBr noExtField $2)) } + amsA' (sLL $1 $> $ HsUntypedBracket [mo $1,mu AnnCloseQ $3] (TypBr noExtField $2)) } | '[p|' infixexp '|]' {% (checkPattern <=< runPV) (unECP $2) >>= \p -> fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) [mo $1,mu AnnCloseQ $3] cs) (PatBr noExtField p)) } + amsA' (sLL $1 $> $ HsUntypedBracket [mo $1,mu AnnCloseQ $3] (PatBr noExtField p)) } | '[d|' cvtopbody '|]' {% fmap ecpFromExp $ - acsA (\cs -> sLL $1 $> $ HsUntypedBracket (EpAnn (glEE $1 $>) (mo $1:mu AnnCloseQ $3:fst $2) cs) (DecBrL noExtField (snd $2))) } - | quasiquote { ECP $ pvA $ mkHsSplicePV $1 } + amsA' (sLL $1 $> $ HsUntypedBracket (mo $1:mu AnnCloseQ $3:fst $2) (DecBrL noExtField (snd $2))) } + | quasiquote { ECP $ mkHsSplicePV $1 } -- arrow notation extension | '(|' aexp cmdargs '|)' {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrForm (EpAnn (glEE $1 $>) (AnnList (glRM $1) (Just $ mu AnnOpenB $1) (Just $ mu AnnCloseB $4) [] []) cs) $2 Prefix + amsA' (sLL $1 $> $ HsCmdArrForm (AnnList (glRM $1) (Just $ mu AnnOpenB $1) (Just $ mu AnnCloseB $4) [] []) $2 Prefix Nothing (reverse $3)) } projection :: { Located (NonEmpty (LocatedAn NoEpAnns (DotFieldOcc GhcPs))) } projection -- See Note [Whitespace-sensitive operator parsing] in GHC.Parsing.Lexer : projection TIGHT_INFIX_PROJ field - {% acs (\cs -> sLL $1 $> ((sLLa $2 $> $ DotFieldOcc (EpAnn (glEE $1 $>) (AnnFieldLabel (Just $ glAA $2)) cs) $3) `NE.cons` unLoc $1)) } - | PREFIX_PROJ field {% acs (\cs -> sLL $1 $> ((sLLa $1 $> $ DotFieldOcc (EpAnn (glEE $1 $>) (AnnFieldLabel (Just $ glAA $1)) cs) $2) :| [])) } + { sLL $1 $> ((sLLa $2 $> $ DotFieldOcc (AnnFieldLabel (Just $ glAA $2)) $3) `NE.cons` unLoc $1) } + | PREFIX_PROJ field { sLL $1 $> ((sLLa $1 $> $ DotFieldOcc (AnnFieldLabel (Just $ glAA $1)) $2) :| [])} splice_exp :: { LHsExpr GhcPs } - : splice_untyped { fmap (HsUntypedSplice noAnn) (reLoc $1) } + : splice_untyped { fmap (HsUntypedSplice noExtField) (reLoc $1) } | splice_typed { fmap (uncurry HsTypedSplice) (reLoc $1) } splice_untyped :: { Located (HsUntypedSplice GhcPs) } -- See Note [Whitespace-sensitive operator parsing] in GHC.Parser.Lexer : PREFIX_DOLLAR aexp2 {% runPV (unECP $2) >>= \ $2 -> - acs (\cs -> sLL $1 $> $ HsUntypedSpliceExpr (EpAnn (glEE $1 $>) [mj AnnDollar $1] cs) $2) } + return (sLL $1 $> $ HsUntypedSpliceExpr [mj AnnDollar $1] $2) } -splice_typed :: { Located ((EpAnnCO, EpAnn [AddEpAnn]), LHsExpr GhcPs) } +splice_typed :: { Located ([AddEpAnn], LHsExpr GhcPs) } -- See Note [Whitespace-sensitive operator parsing] in GHC.Parser.Lexer : PREFIX_DOLLAR_DOLLAR aexp2 {% runPV (unECP $2) >>= \ $2 -> - acs (\cs -> sLL $1 $> $ ((noAnn, EpAnn (glEE $1 $>) [mj AnnDollarDollar $1] cs), $2)) } + return (sLL $1 $> $ ([mj AnnDollarDollar $1], $2)) } cmdargs :: { [LHsCmdTop GhcPs] } : cmdargs acmd { $2 : $1 } @@ -3094,12 +3091,12 @@ texp :: { ECP } runPV (rejectPragmaPV $1) >> runPV $2 >>= \ $2 -> return $ ecpFromExp $ - sLLa $1 $> $ SectionL noAnn $1 (n2l $2) } + sLLa $1 $> $ SectionL noExtField $1 (n2l $2) } | qopm infixexp { ECP $ superInfixOp $ unECP $2 >>= \ $2 -> $1 >>= \ $1 -> - pvA $ mkHsSectionR_PV (comb2 $1 $>) (n2l $1) $2 } + mkHsSectionR_PV (comb2 $1 $>) (n2l $1) $2 } -- View patterns get parenthesized above | exp '->' texp { ECP $ @@ -3119,7 +3116,7 @@ tup_exprs :: { forall b. DisambECP b => PV (SumOrTuple b) } ; return (Tuple (Right t : snd $2)) } } | commas tup_tail { $2 >>= \ $2 -> - do { let {cos = map (\ll -> (Left (EpAnn (anc $ rs ll) True emptyComments))) (fst $1) } + do { let {cos = map (\ll -> (Left (EpAnn (spanAsAnchor ll) True emptyComments))) (fst $1) } ; return (Tuple (cos ++ $2)) } } | texp bars { unECP $1 >>= \ $1 -> return $ @@ -3135,7 +3132,7 @@ tup_exprs :: { forall b. DisambECP b => PV (SumOrTuple b) } commas_tup_tail :: { forall b. DisambECP b => PV (SrcSpan,[Either (EpAnn Bool) (LocatedA b)]) } commas_tup_tail : commas tup_tail { $2 >>= \ $2 -> - do { let {cos = map (\l -> (Left (EpAnn (anc $ rs l) True emptyComments))) (tail $ fst $1) } + do { let {cos = map (\l -> (Left (EpAnn (spanAsAnchor l) True emptyComments))) (tail $ fst $1) } ; return ((head $ fst $1, cos ++ $2)) } } -- Always follows a comma @@ -3161,29 +3158,29 @@ list :: { forall b. DisambECP b => SrcSpan -> (AddEpAnn, AddEpAnn) -> PV (Locate | lexps { \loc (ao,ac) -> $1 >>= \ $1 -> mkHsExplicitListPV loc (reverse $1) (AnnList Nothing (Just ao) (Just ac) [] []) } | texp '..' { \loc (ao,ac) -> unECP $1 >>= \ $1 -> - acsA (\cs -> L loc $ ArithSeq (EpAnn (spanAsAnchor loc) [ao,mj AnnDotdot $2,ac] cs) Nothing (From $1)) + amsA' (L loc $ ArithSeq [ao,mj AnnDotdot $2,ac] Nothing (From $1)) >>= ecpFromExp' } | texp ',' exp '..' { \loc (ao,ac) -> unECP $1 >>= \ $1 -> unECP $3 >>= \ $3 -> - acsA (\cs -> L loc $ ArithSeq (EpAnn (spanAsAnchor loc) [ao,mj AnnComma $2,mj AnnDotdot $4,ac] cs) Nothing (FromThen $1 $3)) + amsA' (L loc $ ArithSeq [ao,mj AnnComma $2,mj AnnDotdot $4,ac] Nothing (FromThen $1 $3)) >>= ecpFromExp' } | texp '..' exp { \loc (ao,ac) -> unECP $1 >>= \ $1 -> unECP $3 >>= \ $3 -> - acsA (\cs -> L loc $ ArithSeq (EpAnn (spanAsAnchor loc) [ao,mj AnnDotdot $2,ac] cs) Nothing (FromTo $1 $3)) + amsA' (L loc $ ArithSeq [ao,mj AnnDotdot $2,ac] Nothing (FromTo $1 $3)) >>= ecpFromExp' } | texp ',' exp '..' exp { \loc (ao,ac) -> unECP $1 >>= \ $1 -> unECP $3 >>= \ $3 -> unECP $5 >>= \ $5 -> - acsA (\cs -> L loc $ ArithSeq (EpAnn (spanAsAnchor loc) [ao,mj AnnComma $2,mj AnnDotdot $4,ac] cs) Nothing (FromThenTo $1 $3 $5)) + amsA' (L loc $ ArithSeq [ao,mj AnnComma $2,mj AnnDotdot $4,ac] Nothing (FromThenTo $1 $3 $5)) >>= ecpFromExp' } | texp '|' flattenedpquals { \loc (ao,ac) -> checkMonadComp >>= \ ctxt -> unECP $1 >>= \ $1 -> do { t <- addTrailingVbarA $1 (gl $2) - ; acsA (\cs -> L loc $ mkHsCompAnns ctxt (unLoc $3) t (EpAnn (spanAsAnchor loc) (AnnList Nothing (Just ao) (Just ac) [] []) cs)) + ; amsA' (L loc $ mkHsCompAnns ctxt (unLoc $3) t (AnnList Nothing (Just ao) (Just ac) [] [])) >>= ecpFromExp' } } lexps :: { forall b. DisambECP b => PV [LocatedA b] } @@ -3228,14 +3225,14 @@ squals :: { Located [LStmt GhcPs (LHsExpr GhcPs)] } -- In reverse order, becau {% case unLoc $1 of (h:t) -> do h' <- addTrailingCommaA h (gl $2) - return (sLL $1 $> [sLLa $1 $> ((unLoc $3) (glRR $1) (reverse (h':t)))]) } + return (sLL $1 $> [sLLa $1 $> ((unLoc $3) (reverse (h':t)))]) } | squals ',' qual {% runPV $3 >>= \ $3 -> case unLoc $1 of (h:t) -> do h' <- addTrailingCommaA h (gl $2) return (sLL $1 $> ($3 : (h':t))) } - | transformqual {% return (sLL $1 $> [L (getLocAnn $1) ((unLoc $1) (glRR $1) [])]) } + | transformqual { sLL $1 $> [L (getLocAnn $1) ((unLoc $1) [])] } | qual {% runPV $1 >>= \ $1 -> return $ sL1 $1 [$1] } -- | transformquals1 ',' '{|' pquals '|}' { sLL $1 $> ($4 : unLoc $1) } @@ -3246,25 +3243,22 @@ squals :: { Located [LStmt GhcPs (LHsExpr GhcPs)] } -- In reverse order, becau -- consensus on the syntax, this feature is not being used until we -- get user demand. -transformqual :: { Located (RealSrcSpan -> [LStmt GhcPs (LHsExpr GhcPs)] -> Stmt GhcPs (LHsExpr GhcPs)) } +transformqual :: { Located ([LStmt GhcPs (LHsExpr GhcPs)] -> Stmt GhcPs (LHsExpr GhcPs)) } -- Function is applied to a list of stmts *in order* : 'then' exp {% runPV (unECP $2) >>= \ $2 -> - acs (\cs-> - sLL $1 $> (\r ss -> (mkTransformStmt (EpAnn (anc r) [mj AnnThen $1] cs) ss $2))) } + return ( + sLL $1 $> (\ss -> (mkTransformStmt [mj AnnThen $1] ss $2))) } | 'then' exp 'by' exp {% runPV (unECP $2) >>= \ $2 -> runPV (unECP $4) >>= \ $4 -> - acs (\cs -> sLL $1 $> ( - \r ss -> (mkTransformByStmt (EpAnn (anc r) [mj AnnThen $1,mj AnnBy $3] cs) ss $2 $4))) } + return (sLL $1 $> (\ss -> (mkTransformByStmt [mj AnnThen $1,mj AnnBy $3] ss $2 $4))) } | 'then' 'group' 'using' exp {% runPV (unECP $4) >>= \ $4 -> - acs (\cs -> sLL $1 $> ( - \r ss -> (mkGroupUsingStmt (EpAnn (anc r) [mj AnnThen $1,mj AnnGroup $2,mj AnnUsing $3] cs) ss $4))) } + return (sLL $1 $> (\ss -> (mkGroupUsingStmt [mj AnnThen $1,mj AnnGroup $2,mj AnnUsing $3] ss $4))) } | 'then' 'group' 'by' exp 'using' exp {% runPV (unECP $4) >>= \ $4 -> runPV (unECP $6) >>= \ $6 -> - acs (\cs -> sLL $1 $> ( - \r ss -> (mkGroupByUsingStmt (EpAnn (anc r) [mj AnnThen $1,mj AnnGroup $2,mj AnnBy $3,mj AnnUsing $5] cs) ss $4 $6))) } + return (sLL $1 $> (\ss -> (mkGroupByUsingStmt [mj AnnThen $1,mj AnnGroup $2,mj AnnBy $3,mj AnnUsing $5] ss $4 $6))) } -- Note that 'group' is a special_id, which means that you can enable -- TransformListComp while still using Data.List.group. However, this @@ -3290,13 +3284,13 @@ guardquals1 :: { Located [LStmt GhcPs (LHsExpr GhcPs)] } -- Case alternatives altslist(PATS) :: { forall b. DisambECP b => PV (LocatedL [LMatch GhcPs (LocatedA b)]) } - : '{' alts(PATS) '}' { $2 >>= \ $2 -> amsrl + : '{' alts(PATS) '}' { $2 >>= \ $2 -> amsr (sLL $1 $> (reverse (snd $ unLoc $2))) (AnnList (Just $ glR $2) (Just $ moc $1) (Just $ mcc $3) (fst $ unLoc $2) []) } - | vocurly alts(PATS) close { $2 >>= \ $2 -> amsrl + | vocurly alts(PATS) close { $2 >>= \ $2 -> amsr (L (getLoc $2) (reverse (snd $ unLoc $2))) (AnnList (Just $ glR $2) Nothing Nothing (fst $ unLoc $2) []) } - | '{' '}' { amsrl (sLL $1 $> []) (AnnList Nothing (Just $ moc $1) (Just $ mcc $2) [] []) } + | '{' '}' { amsr (sLL $1 $> []) (AnnList Nothing (Just $ moc $1) (Just $ mcc $2) [] []) } | vocurly close { return $ noLocA [] } alts(PATS) :: { forall b. DisambECP b => PV (Located ([AddEpAnn],[LMatch GhcPs (LocatedA b)])) } @@ -3326,8 +3320,8 @@ alts1(PATS) :: { forall b. DisambECP b => PV (Located ([AddEpAnn],[LMatch GhcPs alt(PATS) :: { forall b. DisambECP b => PV (LMatch GhcPs (LocatedA b)) } : PATS alt_rhs { $2 >>= \ $2 -> - acsA (\cs -> sLLAsl $1 $> - (Match { m_ext = EpAnn (listAsAnchor $1 $>) [] cs + acsA (sLLAsl $1 $> ()) (\loc cs -> L (locA loc) + (Match { m_ext = [] , m_ctxt = CaseAlt -- for \case and \cases, this will be changed during post-processing , m_pats = $1 , m_grhss = unLoc $2 }))} @@ -3335,11 +3329,11 @@ alt(PATS) :: { forall b. DisambECP b => PV (LMatch GhcPs (LocatedA b)) } alt_rhs :: { forall b. DisambECP b => PV (Located (GRHSs GhcPs (LocatedA b))) } : ralt wherebinds { $1 >>= \alt -> do { let {L l (bs, csw) = adaptWhereBinds $2} - ; acs (\cs -> sLL alt (L l bs) (GRHSs (cs Semi.<> csw) (unLoc alt) bs)) }} + ; acs (comb2 alt (L l bs)) (\loc cs -> L loc (GRHSs (cs Semi.<> csw) (unLoc alt) bs)) }} ralt :: { forall b. DisambECP b => PV (Located [LGRHS GhcPs (LocatedA b)]) } : '->' exp { unECP $2 >>= \ $2 -> - acs (\cs -> sLL $1 $> (unguardedRHS (EpAnn (spanAsAnchor $ comb2 $1 $2) (GrhsAnn Nothing (mu AnnRarrow $1)) cs) (comb2 $1 $2) $2)) } + acs (comb2 $1 $>) (\loc cs -> L loc (unguardedRHS (EpAnn (spanAsAnchor $ comb2 $1 $2) (GrhsAnn Nothing (mu AnnRarrow $1)) cs) (comb2 $1 $2) $2)) } | gdpats { $1 >>= \gdpats -> return $ sL1 gdpats (reverse (unLoc gdpats)) } @@ -3361,7 +3355,7 @@ ifgdpats :: { Located ([AddEpAnn],[LGRHS GhcPs (LHsExpr GhcPs)]) } gdpat :: { forall b. DisambECP b => PV (LGRHS GhcPs (LocatedA b)) } : '|' guardquals '->' exp { unECP $4 >>= \ $4 -> - acsA (\cs -> sL (comb2 $1 $>) $ GRHS (EpAnn (glEE $1 $>) (GrhsAnn (Just $ glAA $1) (mu AnnRarrow $3)) cs) (unLoc $2) $4) } + acsA (comb2 $1 $>) (\loc cs -> sL loc $ GRHS (EpAnn (glEE $1 $>) (GrhsAnn (Just $ glAA $1) (mu AnnRarrow $3)) cs) (unLoc $2) $4) } -- 'pat' recognises a pattern, including one with a bang at the top -- e.g. "!x" or "!(x,y)" or "C a b" etc @@ -3392,8 +3386,8 @@ apats :: { [LPat GhcPs] } stmtlist :: { forall b. DisambECP b => PV (LocatedL [LocatedA (Stmt GhcPs (LocatedA b))]) } : '{' stmts '}' { $2 >>= \ $2 -> - amsrl (sLL $1 $> (reverse $ snd $ unLoc $2)) (AnnList (stmtsAnchor $2) (Just $ moc $1) (Just $ mcc $3) (fromOL $ fst $ unLoc $2) []) } - | vocurly stmts close { $2 >>= \ $2 -> amsrl + amsr (sLL $1 $> (reverse $ snd $ unLoc $2)) (AnnList (stmtsAnchor $2) (Just $ moc $1) (Just $ mcc $3) (fromOL $ fst $ unLoc $2) []) } + | vocurly stmts close { $2 >>= \ $2 -> amsr (L (stmtsLoc $2) (reverse $ snd $ unLoc $2)) (AnnList (stmtsAnchor $2) Nothing Nothing (fromOL $ fst $ unLoc $2) []) } -- do { ;; s ; s ; ; s ;; } @@ -3436,18 +3430,14 @@ e_stmt :: { LStmt GhcPs (LHsExpr GhcPs) } stmt :: { forall b. DisambECP b => PV (LStmt GhcPs (LocatedA b)) } : qual { $1 } | 'rec' stmtlist { $2 >>= \ $2 -> - acsA (\cs -> (sLL $1 $> $ mkRecStmt - (EpAnn (glEE $1 $>) (hsDoAnn $1 $2 AnnRec) cs) - $2)) } + amsA' (sLL $1 $> $ mkRecStmt (hsDoAnn $1 $2 AnnRec) $2) } qual :: { forall b. DisambECP b => PV (LStmt GhcPs (LocatedA b)) } : bindpat '<-' exp { unECP $3 >>= \ $3 -> - acsA (\cs -> sLL $1 $> - $ mkPsBindStmt (EpAnn (glEE $1 $>) [mu AnnLarrow $2] cs) $1 $3) } + amsA' (sLL $1 $> $ mkPsBindStmt [mu AnnLarrow $2] $1 $3) } | exp { unECP $1 >>= \ $1 -> return $ sL1a $1 $ mkBodyStmt $1 } - | 'let' binds { acsA (\cs -> (sLL $1 $> - $ mkLetStmt (EpAnn (glEE $1 $>) [mj AnnLet $1] cs) (unLoc $2))) } + | 'let' binds { amsA' (sLL $1 $> $ mkLetStmt [mj AnnLet $1] (unLoc $2)) } ----------------------------------------------------------------------------- -- Record Field Update/Construction @@ -3468,13 +3458,13 @@ fbinds1 :: { forall b. DisambECP b => PV ([Fbind b], Maybe SrcSpan) } fbind :: { forall b. DisambECP b => PV (Fbind b) } : qvar '=' texp { unECP $3 >>= \ $3 -> - fmap Left $ acsA (\cs -> sLL $1 $> $ HsFieldBind (EpAnn (glR $1) [mj AnnEqual $2] cs) (sL1a $1 $ mkFieldOcc $1) $3 False) } + fmap Left $ amsA' (sLL $1 $> $ HsFieldBind [mj AnnEqual $2] (sL1a $1 $ mkFieldOcc $1) $3 False) } -- RHS is a 'texp', allowing view patterns (#6038) -- and, incidentally, sections. Eg -- f (R { x = show -> s }) = ... | qvar { placeHolderPunRhs >>= \rhs -> - fmap Left $ acsA (\cs -> sL1 $1 $ HsFieldBind (EpAnn (glR $1) [] cs) (sL1a $1 $ mkFieldOcc $1) rhs True) } + fmap Left $ amsA' (sL1 $1 $ HsFieldBind [] (sL1a $1 $ mkFieldOcc $1) rhs True) } -- In the punning case, use a place-holder -- The renamer fills in the final value @@ -3485,7 +3475,7 @@ fbind :: { forall b. DisambECP b => PV (Fbind b) } let top = sL1a $1 $ DotFieldOcc noAnn $1 ((L lf (DotFieldOcc _ f)):t) = reverse (unLoc $3) lf' = comb2 $2 (L lf ()) - fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t + fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (AnnFieldLabel (Just $ glAA $2)) f) : t final = last fields l = comb2 $1 $3 isPun = False @@ -3501,7 +3491,7 @@ fbind :: { forall b. DisambECP b => PV (Fbind b) } let top = sL1a $1 $ DotFieldOcc noAnn $1 ((L lf (DotFieldOcc _ f)):t) = reverse (unLoc $3) lf' = comb2 $2 (L lf ()) - fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t + fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (AnnFieldLabel (Just $ glAA $2)) f) : t final = last fields l = comb2 $1 $3 isPun = True @@ -3512,10 +3502,8 @@ fbind :: { forall b. DisambECP b => PV (Fbind b) } fieldToUpdate :: { Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] } fieldToUpdate -- See Note [Whitespace-sensitive operator parsing] in Lexer.x - : fieldToUpdate TIGHT_INFIX_PROJ field {% getCommentsFor (getLocA $3) >>= \cs -> - return (sLL $1 $> ((sLLa $2 $> (DotFieldOcc (EpAnn (glR $2) (AnnFieldLabel $ Just $ glAA $2) cs) $3)) : unLoc $1)) } - | field {% getCommentsFor (getLocA $1) >>= \cs -> - return (sL1 $1 [sL1a $1 (DotFieldOcc (EpAnn (glR $1) (AnnFieldLabel Nothing) cs) $1)]) } + : fieldToUpdate TIGHT_INFIX_PROJ field { sLL $1 $> ((sLLa $2 $> (DotFieldOcc (AnnFieldLabel $ Just $ glAA $2) $3)) : unLoc $1) } + | field { sL1 $1 [sL1a $1 (DotFieldOcc (AnnFieldLabel Nothing) $1)] } ----------------------------------------------------------------------------- -- Implicit Parameter Bindings @@ -3536,7 +3524,7 @@ dbinds :: { Located [LIPBind GhcPs] } -- reversed dbind :: { LIPBind GhcPs } dbind : ipvar '=' exp {% runPV (unECP $3) >>= \ $3 -> - acsA (\cs -> sLL $1 $> (IPBind (EpAnn (glEE $1 $>) [mj AnnEqual $2] cs) (reLoc $1) $3)) } + amsA' (sLL $1 $> (IPBind [mj AnnEqual $2] (reLoc $1) $3)) } ipvar :: { Located HsIPName } : IPDUPVARID { sL1 $1 (HsIPName (getIPDUPVARID $1)) } @@ -3571,7 +3559,7 @@ name_boolformula_and_list :: { [LBooleanFormula (LocatedN RdrName)] } ; return (h : $3) } } name_boolformula_atom :: { LBooleanFormula (LocatedN RdrName) } - : '(' name_boolformula ')' {% amsrl (sLL $1 $> (Parens $2)) + : '(' name_boolformula ')' {% amsr (sLL $1 $> (Parens $2)) (AnnList Nothing (Just (mop $1)) (Just (mcp $3)) [] []) } | name_var { sL1a $1 (Var $1) } @@ -3599,13 +3587,13 @@ qcon :: { LocatedN RdrName } gen_qcon :: { LocatedN RdrName } : qconid { $1 } - | '(' qconsym ')' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + | '(' qconsym ')' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } con :: { LocatedN RdrName } : conid { $1 } - | '(' consym ')' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + | '(' consym ')' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } | sysdcon { L (getLoc $1) $ nameRdrName (dataConName (unLoc $1)) } con_list :: { Located (NonEmpty (LocatedN RdrName)) } @@ -3619,27 +3607,27 @@ qcon_list : qcon { sL1 $1 [$1] } -- See Note [ExplicitTuple] in GHC.Hs.Expr sysdcon_nolist :: { LocatedN DataCon } -- Wired in data constructors - : '(' ')' {% amsrn (sLL $1 $> unitDataCon) (NameAnnOnly NameParens (glAA $1) (glAA $2) []) } - | '(' commas ')' {% amsrn (sLL $1 $> $ tupleDataCon Boxed (snd $2 + 1)) + : '(' ')' {% amsr (sLL $1 $> unitDataCon) (NameAnnOnly NameParens (glAA $1) (glAA $2) []) } + | '(' commas ')' {% amsr (sLL $1 $> $ tupleDataCon Boxed (snd $2 + 1)) (NameAnnCommas NameParens (glAA $1) (map srcSpan2e (fst $2)) (glAA $3) []) } - | '(#' '#)' {% amsrn (sLL $1 $> $ unboxedUnitDataCon) (NameAnnOnly NameParensHash (glAA $1) (glAA $2) []) } - | '(#' commas '#)' {% amsrn (sLL $1 $> $ tupleDataCon Unboxed (snd $2 + 1)) + | '(#' '#)' {% amsr (sLL $1 $> $ unboxedUnitDataCon) (NameAnnOnly NameParensHash (glAA $1) (glAA $2) []) } + | '(#' commas '#)' {% amsr (sLL $1 $> $ tupleDataCon Unboxed (snd $2 + 1)) (NameAnnCommas NameParensHash (glAA $1) (map srcSpan2e (fst $2)) (glAA $3) []) } -- See Note [Empty lists] in GHC.Hs.Expr sysdcon :: { LocatedN DataCon } : sysdcon_nolist { $1 } - | '[' ']' {% amsrn (sLL $1 $> nilDataCon) (NameAnnOnly NameSquare (glAA $1) (glAA $2) []) } + | '[' ']' {% amsr (sLL $1 $> nilDataCon) (NameAnnOnly NameSquare (glAA $1) (glAA $2) []) } conop :: { LocatedN RdrName } : consym { $1 } - | '`' conid '`' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } + | '`' conid '`' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } qconop :: { LocatedN RdrName } : qconsym { $1 } - | '`' qconid '`' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } + | '`' qconid '`' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } ---------------------------------------------------------------------------- -- Type constructors @@ -3649,30 +3637,30 @@ qconop :: { LocatedN RdrName } -- between gtycon and ntgtycon gtycon :: { LocatedN RdrName } -- A "general" qualified tycon, including unit tuples : ntgtycon { $1 } - | '(' ')' {% amsrn (sLL $1 $> $ getRdrName unitTyCon) - (NameAnnOnly NameParens (glAA $1) (glAA $2) []) } - | '(#' '#)' {% amsrn (sLL $1 $> $ getRdrName unboxedUnitTyCon) - (NameAnnOnly NameParensHash (glAA $1) (glAA $2) []) } + | '(' ')' {% amsr (sLL $1 $> $ getRdrName unitTyCon) + (NameAnnOnly NameParens (glAA $1) (glAA $2) []) } + | '(#' '#)' {% amsr (sLL $1 $> $ getRdrName unboxedUnitTyCon) + (NameAnnOnly NameParensHash (glAA $1) (glAA $2) []) } ntgtycon :: { LocatedN RdrName } -- A "general" qualified tycon, excluding unit tuples : oqtycon { $1 } - | '(' commas ')' {% amsrn (sLL $1 $> $ getRdrName (tupleTyCon Boxed - (snd $2 + 1))) + | '(' commas ')' {% amsr (sLL $1 $> $ getRdrName (tupleTyCon Boxed + (snd $2 + 1))) (NameAnnCommas NameParens (glAA $1) (map srcSpan2e (fst $2)) (glAA $3) []) } - | '(#' commas '#)' {% amsrn (sLL $1 $> $ getRdrName (tupleTyCon Unboxed - (snd $2 + 1))) + | '(#' commas '#)' {% amsr (sLL $1 $> $ getRdrName (tupleTyCon Unboxed + (snd $2 + 1))) (NameAnnCommas NameParensHash (glAA $1) (map srcSpan2e (fst $2)) (glAA $3) []) } - | '(#' bars '#)' {% amsrn (sLL $1 $> $ getRdrName (sumTyCon (snd $2 + 1))) + | '(#' bars '#)' {% amsr (sLL $1 $> $ getRdrName (sumTyCon (snd $2 + 1))) (NameAnnBars NameParensHash (glAA $1) (map srcSpan2e (fst $2)) (glAA $3) []) } - | '(' '->' ')' {% amsrn (sLL $1 $> $ getRdrName unrestrictedFunTyCon) + | '(' '->' ')' {% amsr (sLL $1 $> $ getRdrName unrestrictedFunTyCon) (NameAnnRArrow (isUnicode $2) (Just $ glAA $1) (glAA $2) (Just $ glAA $3) []) } - | '[' ']' {% amsrn (sLL $1 $> $ listTyCon_RDR) + | '[' ']' {% amsr (sLL $1 $> $ listTyCon_RDR) (NameAnnOnly NameSquare (glAA $1) (glAA $2) []) } oqtycon :: { LocatedN RdrName } -- An "ordinary" qualified tycon; -- These can appear in export lists : qtycon { $1 } - | '(' qtyconsym ')' {% amsrn (sLL $1 $> (unLoc $2)) + | '(' qtyconsym ')' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } oqtycon_no_varcon :: { LocatedN RdrName } -- Type constructor which cannot be mistaken @@ -3681,13 +3669,13 @@ oqtycon_no_varcon :: { LocatedN RdrName } -- Type constructor which cannot be m : qtycon { $1 } | '(' QCONSYM ')' {% let { name :: Located RdrName ; name = sL1 $2 $! mkQual tcClsName (getQCONSYM $2) } - in amsrn (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + in amsr (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } | '(' CONSYM ')' {% let { name :: Located RdrName ; name = sL1 $2 $! mkUnqual tcClsName (getCONSYM $2) } - in amsrn (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + in amsr (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } | '(' ':' ')' {% let { name :: Located RdrName ; name = sL1 $2 $! consDataCon_RDR } - in amsrn (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + in amsr (sLL $1 $> (unLoc name)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } {- Note [Type constructors in export list] ~~~~~~~~~~~~~~~~~~~~~ @@ -3712,8 +3700,8 @@ child. qtyconop :: { LocatedN RdrName } -- Qualified or unqualified -- See Note [%shift: qtyconop -> qtyconsym] : qtyconsym %shift { $1 } - | '`' qtycon '`' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } + | '`' qtycon '`' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } qtycon :: { LocatedN RdrName } -- Qualified or unqualified : QCONID { sL1n $1 $! mkQual tcClsName (getQCONID $1) } @@ -3738,8 +3726,8 @@ tyconsym :: { LocatedN RdrName } -- These can appear in `ANN type` declarations (#19374). otycon :: { LocatedN RdrName } : tycon { $1 } - | '(' tyconsym ')' {% amsrn (sLL $1 $> (unLoc $2)) - (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } + | '(' tyconsym ')' {% amsr (sLL $1 $> (unLoc $2)) + (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } ----------------------------------------------------------------------------- -- Operators @@ -3747,36 +3735,35 @@ otycon :: { LocatedN RdrName } op :: { LocatedN RdrName } -- used in infix decls : varop { $1 } | conop { $1 } - | '->' {% amsrn (sLL $1 $> $ getRdrName unrestrictedFunTyCon) + | '->' {% amsr (sLL $1 $> $ getRdrName unrestrictedFunTyCon) (NameAnnRArrow (isUnicode $1) Nothing (glAA $1) Nothing []) } varop :: { LocatedN RdrName } : varsym { $1 } - | '`' varid '`' {% amsrn (sLL $1 $> (unLoc $2)) + | '`' varid '`' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } qop :: { forall b. DisambInfixOp b => PV (LocatedN b) } -- used in sections : qvarop { mkHsVarOpPV $1 } | qconop { mkHsConOpPV $1 } - | hole_op { pvN $1 } + | hole_op { mkHsInfixHolePV $1 } qopm :: { forall b. DisambInfixOp b => PV (LocatedN b) } -- used in sections : qvaropm { mkHsVarOpPV $1 } | qconop { mkHsConOpPV $1 } - | hole_op { pvN $1 } + | hole_op { mkHsInfixHolePV $1 } -hole_op :: { forall b. DisambInfixOp b => PV (Located b) } -- used in sections -hole_op : '`' '_' '`' { mkHsInfixHolePV (comb2 $1 $>) - (\cs -> EpAnn (glEE $1 $>) (Just $ EpAnnUnboundVar (glAA $1, glAA $3) (glAA $2)) cs) } +hole_op :: { LocatedN (HsExpr GhcPs) } -- used in sections +hole_op : '`' '_' '`' { sLLa $1 $> (hsHoleExpr (Just $ EpAnnUnboundVar (glAA $1, glAA $3) (glAA $2))) } qvarop :: { LocatedN RdrName } : qvarsym { $1 } - | '`' qvarid '`' {% amsrn (sLL $1 $> (unLoc $2)) + | '`' qvarid '`' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } qvaropm :: { LocatedN RdrName } : qvarsym_no_minus { $1 } - | '`' qvarid '`' {% amsrn (sLL $1 $> (unLoc $2)) + | '`' qvarid '`' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } ----------------------------------------------------------------------------- @@ -3786,7 +3773,7 @@ tyvar :: { LocatedN RdrName } tyvar : tyvarid { $1 } tyvarop :: { LocatedN RdrName } -tyvarop : '`' tyvarid '`' {% amsrn (sLL $1 $> (unLoc $2)) +tyvarop : '`' tyvarid '`' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameBackquotes (glAA $1) (glAA $2) (glAA $3) []) } tyvarid :: { LocatedN RdrName } @@ -3804,14 +3791,14 @@ tyvarid :: { LocatedN RdrName } var :: { LocatedN RdrName } : varid { $1 } - | '(' varsym ')' {% amsrn (sLL $1 $> (unLoc $2)) + | '(' varsym ')' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } qvar :: { LocatedN RdrName } : qvarid { $1 } - | '(' varsym ')' {% amsrn (sLL $1 $> (unLoc $2)) + | '(' varsym ')' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } - | '(' qvarsym1 ')' {% amsrn (sLL $1 $> (unLoc $2)) + | '(' qvarsym1 ')' {% amsr (sLL $1 $> (unLoc $2)) (NameAnn NameParens (glAA $1) (glAA $2) (glAA $3) []) } -- We've inlined qvarsym here so that the decision about -- whether it's a qvar or a var can be postponed until @@ -4120,26 +4107,28 @@ stringLiteralToHsDocWst = lexStringLiteral parseIdentifier -- Utilities for combining source spans comb2 :: (HasLoc a, HasLoc b) => a -> b -> SrcSpan -comb2 a b = a `seq` b `seq` combineHasLocs a b +comb2 !a !b = combineHasLocs a b comb3 :: (HasLoc a, HasLoc b, HasLoc c) => a -> b -> c -> SrcSpan -comb3 a b c = a `seq` b `seq` c `seq` - combineSrcSpans (getHasLoc a) (combineHasLocs b c) +comb3 !a !b !c = combineSrcSpans (getHasLoc a) (combineHasLocs b c) comb4 :: (HasLoc a, HasLoc b, HasLoc c, HasLoc d) => a -> b -> c -> d -> SrcSpan -comb4 a b c d = a `seq` b `seq` c `seq` d `seq` - (combineSrcSpans (getHasLoc a) $ combineSrcSpans (getHasLoc b) $ - combineSrcSpans (getHasLoc c) (getHasLoc d)) +comb4 !a !b !c !d = + combineSrcSpans (getHasLoc a) $ + combineSrcSpans (getHasLoc b) $ + combineSrcSpans (getHasLoc c) (getHasLoc d) comb5 :: (HasLoc a, HasLoc b, HasLoc c, HasLoc d, HasLoc e) => a -> b -> c -> d -> e -> SrcSpan -comb5 a b c d e = a `seq` b `seq` c `seq` d `seq` e `seq` - (combineSrcSpans (getHasLoc a) $ combineSrcSpans (getHasLoc b) $ - combineSrcSpans (getHasLoc c) $ combineSrcSpans (getHasLoc d) (getHasLoc e)) +comb5 !a !b !c !d !e = + combineSrcSpans (getHasLoc a) $ + combineSrcSpans (getHasLoc b) $ + combineSrcSpans (getHasLoc c) $ + combineSrcSpans (getHasLoc d) (getHasLoc e) -- strict constructor version: {-# INLINE sL #-} sL :: l -> a -> GenLocated l a -sL loc a = loc `seq` a `seq` L loc a +sL !loc !a = L loc a -- See Note [Adding location info] for how these utility functions are used @@ -4150,32 +4139,32 @@ sL0 = L noSrcSpan -- #define L0 L noSrcSpan {-# INLINE sL1 #-} sL1 :: HasLoc a => a -> b -> Located b -sL1 x = sL (getHasLoc x) -- #define sL1 sL (getLoc $1) +sL1 !x = sL (getHasLoc x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1a #-} sL1a :: (HasLoc a, HasAnnotation t) => a -> b -> GenLocated t b -sL1a x = sL (noAnnSrcSpan $ getHasLoc x) -- #define sL1 sL (getLoc $1) +sL1a !x = sL (noAnnSrcSpan $ getHasLoc x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1n #-} sL1n :: HasLoc a => a -> b -> LocatedN b -sL1n x = L (noAnnSrcSpan $ getHasLoc x) -- #define sL1 sL (getLoc $1) +sL1n !x = L (noAnnSrcSpan $ getHasLoc x) -- #define sL1 sL (getLoc $1) {-# INLINE sLL #-} sLL :: (HasLoc a, HasLoc b) => a -> b -> c -> Located c -sLL x y = sL (comb2 x y) -- #define LL sL (comb2 $1 $>) +sLL !x !y = sL (comb2 x y) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLa #-} sLLa :: (HasLoc a, HasLoc b, NoAnn t) => a -> b -> c -> LocatedAn t c -sLLa x y = sL (noAnnSrcSpan $ comb2 x y) -- #define LL sL (comb2 $1 $>) +sLLa !x !y = sL (noAnnSrcSpan $ comb2 x y) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLl #-} sLLl :: (HasLoc a, HasLoc b) => a -> b -> c -> LocatedL c -sLLl x y = sL (noAnnSrcSpan $ comb2 x y) -- #define LL sL (comb2 $1 $>) +sLLl !x !y = sL (noAnnSrcSpan $ comb2 x y) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLAsl #-} sLLAsl :: (HasLoc a) => [a] -> Located b -> c -> Located c sLLAsl [] = sL1 -sLLAsl (x:_) = sLL x +sLLAsl (!x:_) = sLL x {- Note [Adding location info] ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -4294,35 +4283,35 @@ in GHC.Parser.Annotation -- |Construct an AddEpAnn from the annotation keyword and the location -- of the keyword itself mj :: AnnKeywordId -> Located e -> AddEpAnn -mj a l = AddEpAnn a (srcSpan2e $ gl l) +mj !a !l = AddEpAnn a (srcSpan2e $ gl l) mjN :: AnnKeywordId -> LocatedN e -> AddEpAnn -mjN a l = AddEpAnn a (srcSpan2e $ glA l) +mjN !a !l = AddEpAnn a (srcSpan2e $ glA l) -- |Construct an AddEpAnn from the annotation keyword and the location -- of the keyword itself, provided the span is not zero width mz :: AnnKeywordId -> Located e -> [AddEpAnn] -mz a l = if isZeroWidthSpan (gl l) then [] else [AddEpAnn a (srcSpan2e $ gl l)] +mz !a !l = if isZeroWidthSpan (gl l) then [] else [AddEpAnn a (srcSpan2e $ gl l)] msemi :: Located e -> [TrailingAnn] -msemi l = if isZeroWidthSpan (gl l) then [] else [AddSemiAnn (srcSpan2e $ gl l)] +msemi !l = if isZeroWidthSpan (gl l) then [] else [AddSemiAnn (srcSpan2e $ gl l)] msemiA :: Located e -> [AddEpAnn] -msemiA l = if isZeroWidthSpan (gl l) then [] else [AddEpAnn AnnSemi (srcSpan2e $ gl l)] +msemiA !l = if isZeroWidthSpan (gl l) then [] else [AddEpAnn AnnSemi (srcSpan2e $ gl l)] msemim :: Located e -> Maybe EpaLocation -msemim l = if isZeroWidthSpan (gl l) then Nothing else Just (srcSpan2e $ gl l) +msemim !l = if isZeroWidthSpan (gl l) then Nothing else Just (srcSpan2e $ gl l) -- |Construct an AddEpAnn from the annotation keyword and the Located Token. If -- the token has a unicode equivalent and this has been used, provide the -- unicode variant of the annotation. mu :: AnnKeywordId -> Located Token -> AddEpAnn -mu a lt@(L l t) = AddEpAnn (toUnicodeAnn a lt) (srcSpan2e l) +mu !a lt@(L l t) = AddEpAnn (toUnicodeAnn a lt) (srcSpan2e l) -- | If the 'Token' is using its unicode variant return the unicode variant of -- the annotation toUnicodeAnn :: AnnKeywordId -> Located Token -> AnnKeywordId -toUnicodeAnn a t = if isUnicode t then unicodeAnn a else a +toUnicodeAnn !a !t = if isUnicode t then unicodeAnn a else a toUnicode :: Located Token -> IsUnicodeSyntax toUnicode t = if isUnicode t then UnicodeSyntax else NormalSyntax @@ -4335,36 +4324,26 @@ gl = getLoc glA :: HasLoc a => a -> SrcSpan glA = getHasLoc -glRR :: Located a -> RealSrcSpan -glRR = realSrcSpan . getLoc - glR :: HasLoc a => a -> Anchor -glR la = EpaSpan (getHasLoc la) - -glMR :: Maybe (Located a) -> Located b -> Anchor -glMR (Just la) _ = glR la -glMR _ la = glR la +glR !la = EpaSpan (getHasLoc la) glEE :: (HasLoc a, HasLoc b) => a -> b -> Anchor -glEE x y = spanAsAnchor $ comb2 x y - -anc :: RealSrcSpan -> Anchor -anc r = EpaSpan (RealSrcSpan r Strict.Nothing) +glEE !x !y = spanAsAnchor $ comb2 x y glRM :: Located a -> Maybe Anchor -glRM (L l _) = Just $ spanAsAnchor l +glRM (L !l _) = Just $ spanAsAnchor l glAA :: HasLoc a => a -> EpaLocation glAA = srcSpan2e . getHasLoc n2l :: LocatedN a -> LocatedA a -n2l (L la a) = L (l2l la) a +n2l (L !la !a) = L (l2l la) a -- Called at the very end to pick up the EOF position, as well as any comments not allocated yet. acsFinal :: (EpAnnComments -> Maybe (RealSrcSpan, RealSrcSpan) -> Located a) -> P (Located a) acsFinal a = do let (L l _) = a emptyComments Nothing - cs <- getCommentsFor l + !cs <- getCommentsFor l csf <- getFinalCommentsFor l meof <- getEofPos let ce = case meof of @@ -4372,81 +4351,61 @@ acsFinal a = do Strict.Just (pos `Strict.And` gap) -> Just (pos,gap) return (a (cs Semi.<> csf) ce) -acs :: (HasLoc t, MonadP m) => (EpAnnComments -> GenLocated t a) -> m (GenLocated t a) -acs a = do - let (L l _) = a emptyComments - cs <- getCommentsFor (locA l) - return (a cs) +acs :: (HasLoc l, MonadP m) => l -> (l -> EpAnnComments -> GenLocated l a) -> m (GenLocated l a) +acs !l a = do + !cs <- getCommentsFor (locA l) + return (a l cs) -acsA :: (HasLoc t, HasAnnotation t, MonadP m) => (EpAnnComments -> Located a) -> m (GenLocated t a) -acsA a = reLoc <$> acs a +acsA :: (HasLoc l, HasAnnotation t, MonadP m) => l -> (l -> EpAnnComments -> Located a) -> m (GenLocated t a) +acsA !l a = do + !cs <- getCommentsFor (locA l) + return $ reLoc (a l cs) -acsExpr :: (EpAnnComments -> LHsExpr GhcPs) -> P ECP -acsExpr a = do { expr :: (LHsExpr GhcPs) <- runPV $ acs a - ; return (ecpFromExp $ expr) } +ams1 :: MonadP m => Located a -> b -> m (LocatedA b) +ams1 (L l a) b = do + !cs <- getCommentsFor l + return (L (EpAnn (spanAsAnchor l) noAnn cs) b) + +amsA' :: (NoAnn t, MonadP m) => Located a -> m (GenLocated (EpAnn t) a) +amsA' (L l a) = do + !cs <- getCommentsFor l + return (L (EpAnn (spanAsAnchor l) noAnn cs) a) amsA :: MonadP m => LocatedA a -> [TrailingAnn] -> m (LocatedA a) -amsA (L l a) bs = do - cs <- getCommentsFor (locA l) +amsA (L !l a) bs = do + !cs <- getCommentsFor (locA l) return (L (addAnnsA l bs cs) a) amsAl :: MonadP m => LocatedA a -> SrcSpan -> [TrailingAnn] -> m (LocatedA a) amsAl (L l a) loc bs = do - cs <- getCommentsFor loc + !cs <- getCommentsFor loc return (L (addAnnsA l bs cs) a) -amsrc :: MonadP m => Located a -> AnnContext -> m (LocatedC a) -amsrc a@(L l _) bs = do - cs <- getCommentsFor l - return (reAnnC bs cs a) - -amsrl :: MonadP m => Located a -> AnnList -> m (LocatedL a) -amsrl a@(L l _) bs = do - cs <- getCommentsFor l - return (reAnnL bs cs a) - -amsrp :: MonadP m => Located a -> AnnPragma -> m (LocatedP a) -amsrp a@(L l _) bs = do - cs <- getCommentsFor l - return (reAnnL bs cs a) - -amsrn :: MonadP m => Located a -> NameAnn -> m (LocatedN a) -amsrn (L l a) an = do - cs <- getCommentsFor l +amsr :: MonadP m => Located a -> an -> m (LocatedAn an a) +amsr (L l a) an = do + !cs <- getCommentsFor l return (L (EpAnn (spanAsAnchor l) an cs) a) -- |Synonyms for AddEpAnn versions of AnnOpen and AnnClose mo,mc :: Located Token -> AddEpAnn -mo ll = mj AnnOpen ll -mc ll = mj AnnClose ll +mo !ll = mj AnnOpen ll +mc !ll = mj AnnClose ll moc,mcc :: Located Token -> AddEpAnn -moc ll = mj AnnOpenC ll -mcc ll = mj AnnCloseC ll +moc !ll = mj AnnOpenC ll +mcc !ll = mj AnnCloseC ll mop,mcp :: Located Token -> AddEpAnn -mop ll = mj AnnOpenP ll -mcp ll = mj AnnCloseP ll +mop !ll = mj AnnOpenP ll +mcp !ll = mj AnnCloseP ll moh,mch :: Located Token -> AddEpAnn -moh ll = mj AnnOpenPH ll -mch ll = mj AnnClosePH ll +moh !ll = mj AnnOpenPH ll +mch !ll = mj AnnClosePH ll mos,mcs :: Located Token -> AddEpAnn -mos ll = mj AnnOpenS ll -mcs ll = mj AnnCloseS ll - -pvA :: (MonadP m, NoAnn t) => m (Located a) -> m (LocatedAn t a) -pvA a = do { av <- a - ; return (reLoc av) } - -pvN :: MonadP m => m (Located a) -> m (LocatedN a) -pvN a = do { (L l av) <- a - ; return (L (noAnnSrcSpan l) av) } - -pvL :: MonadP m => m (LocatedAn t a) -> m (Located a) -pvL a = do { av <- a - ; return (reLoc av) } +mos !ll = mj AnnOpenS ll +mcs !ll = mj AnnCloseS ll -- | Parse a Haskell module with Haddock comments. This is done in two steps: -- @@ -4474,18 +4433,19 @@ parseSignature = parseSignatureNoHaddock >>= addHaddockToModule commentsA :: (NoAnn ann) => SrcSpan -> EpAnnComments -> EpAnn ann commentsA loc cs = EpAnn (EpaSpan loc) noAnn cs +spanWithComments :: (NoAnn ann, MonadP m) => SrcSpan -> m (EpAnn ann) +spanWithComments l = do + !cs <- getCommentsFor l + return (commentsA l cs) + -- | Instead of getting the *enclosed* comments, this includes the -- *preceding* ones. It is used at the top level to get comments -- between top level declarations. commentsPA :: (NoAnn ann) => LocatedAn ann a -> P (LocatedAn ann a) commentsPA la@(L l a) = do - cs <- getPriorCommentsFor (getLocA la) + !cs <- getPriorCommentsFor (getLocA la) return (L (addCommentsToEpAnn l cs) a) -rs :: SrcSpan -> RealSrcSpan -rs (RealSrcSpan l _) = l -rs _ = panic "Parser should only have RealSrcSpan" - hsDoAnn :: Located a -> LocatedAn t b -> AnnKeywordId -> AnnList hsDoAnn (L l _) (L ll _) kw = AnnList (Just $ spanAsAnchor (locA ll)) Nothing Nothing [AddEpAnn kw (srcSpan2e l)] [] @@ -4502,15 +4462,15 @@ listAsAnchorM (L l _:_) = _ -> Nothing epTok :: Located Token -> EpToken tok -epTok (L l _) = EpTok (EpaSpan l) +epTok (L !l _) = EpTok (EpaSpan l) epUniTok :: Located Token -> EpUniToken tok utok -epUniTok t@(L l _) = EpUniTok (EpaSpan l) u +epUniTok t@(L !l _) = EpUniTok (EpaSpan l) u where u = if isUnicode t then UnicodeSyntax else NormalSyntax epExplicitBraces :: Located Token -> Located Token -> EpLayout -epExplicitBraces t1 t2 = EpExplicitBraces (epTok t1) (epTok t2) +epExplicitBraces !t1 !t2 = EpExplicitBraces (epTok t1) (epTok t2) -- ------------------------------------- @@ -4547,7 +4507,7 @@ addTrailingCommaL la span = addTrailingAnnL la (AddCommaAnn (srcSpan2e span)) addTrailingAnnL :: MonadP m => LocatedL a -> TrailingAnn -> m (LocatedL a) addTrailingAnnL (L anns a) ta = do - cs <- getCommentsFor (locA anns) + !cs <- getCommentsFor (locA anns) let anns' = addTrailingAnnToL ta cs anns return (L anns' a) diff --git a/compiler/GHC/Parser/Annotation.hs b/compiler/GHC/Parser/Annotation.hs index 3a8a1b364af2..c28f86999136 100644 --- a/compiler/GHC/Parser/Annotation.hs +++ b/compiler/GHC/Parser/Annotation.hs @@ -1087,8 +1087,11 @@ instance (HasLoc a) => (HasLoc (Maybe a)) where getHasLoc Nothing = noSrcSpan instance HasLoc (EpAnn a) where - getHasLoc (EpAnn (EpaSpan l) _ _) = l - getHasLoc (EpAnn (EpaDelta _ _) _ _) = noSrcSpan + getHasLoc (EpAnn l _ _) = getHasLoc l + +instance HasLoc EpaLocation where + getHasLoc (EpaSpan l) = l + getHasLoc (EpaDelta _ _) = noSrcSpan getHasLocList :: HasLoc a => [a] -> SrcSpan getHasLocList [] = noSrcSpan @@ -1187,8 +1190,8 @@ widenLocatedAn (EpAnn anc a cs) _as = EpAnn anc a cs epAnnAnns :: EpAnn [AddEpAnn] -> [AddEpAnn] epAnnAnns (EpAnn _ anns _) = anns -annParen2AddEpAnn :: EpAnn AnnParen -> [AddEpAnn] -annParen2AddEpAnn (EpAnn _ (AnnParen pt o c) _) +annParen2AddEpAnn :: AnnParen -> [AddEpAnn] +annParen2AddEpAnn (AnnParen pt o c) = [AddEpAnn ai o, AddEpAnn ac c] where (ai,ac) = parenTypeKws pt diff --git a/compiler/GHC/Parser/PostProcess.hs b/compiler/GHC/Parser/PostProcess.hs index 7cab30d90591..5725fd13bcca 100644 --- a/compiler/GHC/Parser/PostProcess.hs +++ b/compiler/GHC/Parser/PostProcess.hs @@ -105,6 +105,7 @@ module GHC.Parser.PostProcess ( ecpFromExp, ecpFromCmd, PatBuilder, + hsHoleExpr, -- Type/datacon ambiguity resolution DisambTD(..), @@ -197,8 +198,7 @@ mkClassDecl loc' (L _ (mcxt, tycl_hdr)) fds where_cls layout annsIn ; (binds, sigs, ats, at_defs, _, docs) <- cvBindsAndSigs where_cls ; (cls, tparams, fixity, ann) <- checkTyClHdr True tycl_hdr ; tyvars <- checkTyVars (text "class") whereDots cls tparams - ; cs <- getCommentsFor (locA loc) -- Get any remaining comments - ; let anns' = addAnns (EpAnn (spanAsAnchor $ locA loc) annsIn emptyComments) ann cs + ; let anns' = annsIn Semi.<> ann ; return (L loc (ClassDecl { tcdCExt = (anns', layout, NoAnnSortKey) , tcdCtxt = mcxt , tcdLName = cls, tcdTyVars = tyvars @@ -224,8 +224,7 @@ mkTyData loc' is_type_data new_or_data cType (L _ (mcxt, tycl_hdr)) = do { let loc = noAnnSrcSpan loc' ; (tc, tparams, fixity, ann) <- checkTyClHdr False tycl_hdr ; tyvars <- checkTyVars (ppr new_or_data) equalsDots tc tparams - ; cs <- getCommentsFor (locA loc) -- Get any remaining comments - ; let anns' = addAnns (EpAnn (spanAsAnchor $ locA loc) annsIn emptyComments) ann cs + ; let anns' = annsIn Semi.<> ann ; data_cons <- checkNewOrData (locA loc) (unLoc tc) is_type_data new_or_data data_cons ; defn <- mkDataDefn cType mcxt ksig data_cons maybe_deriv ; return (L loc (DataDecl { tcdDExt = anns', @@ -255,10 +254,8 @@ mkTySynonym :: SrcSpan -> P (LTyClDecl GhcPs) mkTySynonym loc lhs rhs annsIn = do { (tc, tparams, fixity, ann) <- checkTyClHdr False lhs - ; cs1 <- getCommentsFor loc -- Add any API Annotations to the top SrcSpan [temp] ; tyvars <- checkTyVars (text "type") equalsDots tc tparams - ; cs2 <- getCommentsFor loc -- Add any API Annotations to the top SrcSpan [temp] - ; let anns' = addAnns (EpAnn (spanAsAnchor loc) annsIn emptyComments) ann (cs1 Semi.<> cs2) + ; let anns' = annsIn Semi.<> ann ; return (L (noAnnSrcSpan loc) (SynDecl { tcdSExt = anns' , tcdLName = tc, tcdTyVars = tyvars @@ -274,9 +271,8 @@ mkStandaloneKindSig mkStandaloneKindSig loc lhs rhs anns = do { vs <- mapM check_lhs_name (unLoc lhs) ; v <- check_singular_lhs (reverse vs) - ; cs <- getCommentsFor loc ; return $ L (noAnnSrcSpan loc) - $ StandaloneKindSig (EpAnn (spanAsAnchor loc) anns cs) v rhs } + $ StandaloneKindSig anns v rhs } where check_lhs_name v@(unLoc->name) = if isUnqual name && isTcOcc (rdrNameOcc name) @@ -298,9 +294,8 @@ mkTyFamInstEqn :: SrcSpan -> P (LTyFamInstEqn GhcPs) mkTyFamInstEqn loc bndrs lhs rhs anns = do { (tc, tparams, fixity, ann) <- checkTyClHdr False lhs - ; cs <- getCommentsFor loc ; return (L (noAnnSrcSpan loc) $ FamEqn - { feqn_ext = EpAnn (spanAsAnchor loc) (anns `mappend` ann) cs + { feqn_ext = anns `mappend` ann , feqn_tycon = tc , feqn_bndrs = bndrs , feqn_pats = tparams @@ -320,12 +315,10 @@ mkDataFamInst :: SrcSpan mkDataFamInst loc new_or_data cType (mcxt, bndrs, tycl_hdr) ksig data_cons (L _ maybe_deriv) anns = do { (tc, tparams, fixity, ann) <- checkTyClHdr False tycl_hdr - ; cs <- getCommentsFor loc -- Add any API Annotations to the top SrcSpan - ; let fam_eqn_ans = addAnns (EpAnn (spanAsAnchor loc) ann cs) anns emptyComments ; data_cons <- checkNewOrData loc (unLoc tc) False new_or_data data_cons ; defn <- mkDataDefn cType mcxt ksig data_cons maybe_deriv ; return (L (noAnnSrcSpan loc) (DataFamInstD noExtField (DataFamInstDecl - (FamEqn { feqn_ext = fam_eqn_ans + (FamEqn { feqn_ext = ann Semi.<> anns , feqn_tycon = tc , feqn_bndrs = bndrs , feqn_pats = tparams @@ -353,9 +346,8 @@ mkTyFamInst :: SrcSpan -> [AddEpAnn] -> P (LInstDecl GhcPs) mkTyFamInst loc eqn anns = do - cs <- getCommentsFor loc return (L (noAnnSrcSpan loc) (TyFamInstD noExtField - (TyFamInstDecl (EpAnn (spanAsAnchor loc) anns cs) eqn))) + (TyFamInstDecl anns eqn))) mkFamDecl :: SrcSpan -> FamilyInfo GhcPs @@ -367,13 +359,10 @@ mkFamDecl :: SrcSpan -> P (LTyClDecl GhcPs) mkFamDecl loc info topLevel lhs ksig injAnn annsIn = do { (tc, tparams, fixity, ann) <- checkTyClHdr False lhs - ; cs1 <- getCommentsFor loc -- Add any API Annotations to the top SrcSpan [temp] ; tyvars <- checkTyVars (ppr info) equals_or_where tc tparams - ; cs2 <- getCommentsFor loc -- Add any API Annotations to the top SrcSpan [temp] - ; let anns' = addAnns (EpAnn (spanAsAnchor loc) annsIn emptyComments) ann (cs1 Semi.<> cs2) ; return (L (noAnnSrcSpan loc) (FamDecl noExtField (FamilyDecl - { fdExt = anns' + { fdExt = annsIn Semi.<> ann , fdTopLevel = topLevel , fdInfo = info, fdLName = tc , fdTyVars = tyvars @@ -398,7 +387,7 @@ mkSpliceDecl :: LHsExpr GhcPs -> P (LHsDecl GhcPs) -- as spliced declaration. See #10945 mkSpliceDecl lexpr@(L loc expr) | HsUntypedSplice _ splice@(HsUntypedSpliceExpr {}) <- expr = do - cs <- getCommentsFor (locA loc) + !cs <- getCommentsFor (locA loc) return $ L (addCommentsToEpAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) | HsUntypedSplice _ splice@(HsQuasiQuote {}) <- expr = do @@ -406,7 +395,7 @@ mkSpliceDecl lexpr@(L loc expr) return $ L (addCommentsToEpAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) | otherwise = do - cs <- getCommentsFor (locA loc) + !cs <- getCommentsFor (locA loc) return $ L (addCommentsToEpAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc (HsUntypedSpliceExpr noAnn lexpr)) BareSplice) @@ -418,9 +407,9 @@ mkRoleAnnotDecl :: SrcSpan -> P (LRoleAnnotDecl GhcPs) mkRoleAnnotDecl loc tycon roles anns = do { roles' <- mapM parse_role roles - ; cs <- getCommentsFor loc - ; return $ L (noAnnSrcSpan loc) - $ RoleAnnotDecl (EpAnn (spanAsAnchor loc) anns cs) tycon roles' } + ; !cs <- getCommentsFor loc + ; return $ L (EpAnn (spanAsAnchor loc) noAnn cs) + $ RoleAnnotDecl anns tycon roles' } where role_data_type = dataTypeOf (undefined :: Role) all_roles = map fromConstr $ dataTypeConstrs role_data_type @@ -778,7 +767,7 @@ recordPatSynErr loc pat = addFatalError $ mkPlainErrorMsgEnvelope loc $ (PsErrRecordSyntaxInPatSynDecl pat) -mkConDeclH98 :: EpAnn [AddEpAnn] -> LocatedN RdrName -> Maybe [LHsTyVarBndr Specificity GhcPs] +mkConDeclH98 :: [AddEpAnn] -> LocatedN RdrName -> Maybe [LHsTyVarBndr Specificity GhcPs] -> Maybe (LHsContext GhcPs) -> HsConDeclH98Details GhcPs -> ConDecl GhcPs @@ -804,33 +793,30 @@ mkGadtDecl :: SrcSpan -> LHsSigType GhcPs -> P (LConDecl GhcPs) mkGadtDecl loc names dcol ty = do - cs <- getCommentsFor loc - let l = noAnnSrcSpan loc (args, res_ty, annsa, csa) <- case body_ty of - L ll (HsFunTy af hsArr (L _loc' (HsRecTy an rf)) res_ty) -> do - let an' = addCommentsToEpAnn an (comments af) + L ll (HsFunTy _ hsArr (L (EpAnn anc _ cs) (HsRecTy an rf)) res_ty) -> do arr <- case hsArr of HsUnrestrictedArrow arr -> return arr _ -> do addError $ mkPlainErrorMsgEnvelope (getLocA body_ty) $ (PsErrIllegalGadtRecordMultiplicity hsArr) return noAnn - return ( RecConGADT arr (L an' rf), res_ty + return ( RecConGADT arr (L (EpAnn anc an cs) rf), res_ty , [], epAnnComments ll) _ -> do let (anns, cs, arg_types, res_type) = splitHsFunType body_ty return (PrefixConGADT noExtField arg_types, res_type, anns, cs) - let an = EpAnn (spanAsAnchor loc) annsa (cs Semi.<> csa) - let bndrs_loc = case outer_bndrs of HsOuterImplicit{} -> getLoc ty HsOuterExplicit an _ -> EpAnn (entry an) noAnn emptyComments + let l = EpAnn (spanAsAnchor loc) noAnn csa + pure $ L l ConDeclGADT - { con_g_ext = (dcol, an) + { con_g_ext = (dcol, annsa) , con_names = names , con_bndrs = L bndrs_loc outer_bndrs , con_mb_cxt = mcxt @@ -939,39 +925,37 @@ checkTyVars pp_what equals_or_where tc tparms = do { tvs <- mapM check tparms ; return (mkHsQTvs tvs) } where - check (HsTypeArg at ki) = chkParens [] [] emptyComments (HsBndrInvisible at) ki - check (HsValArg _ ty) = chkParens [] [] emptyComments (HsBndrRequired noExtField) ty + check (HsTypeArg at ki) = chkParens [] [] (HsBndrInvisible at) ki + check (HsValArg _ ty) = chkParens [] [] (HsBndrRequired noExtField) ty check (HsArgPar sp) = addFatalError $ mkPlainErrorMsgEnvelope sp $ (PsErrMalformedDecl pp_what (unLoc tc)) -- Keep around an action for adjusting the annotations of extra parens - chkParens :: [AddEpAnn] -> [AddEpAnn] -> EpAnnComments -> HsBndrVis GhcPs -> LHsType GhcPs + chkParens :: [AddEpAnn] -> [AddEpAnn] -> HsBndrVis GhcPs -> LHsType GhcPs -> P (LHsTyVarBndr (HsBndrVis GhcPs) GhcPs) - chkParens ops cps cs bvis (L l (HsParTy an ty)) + chkParens ops cps bvis (L l (HsParTy _ ty)) = let (o,c) = mkParensEpAnn (realSrcSpan $ locA l) in - chkParens (o:ops) (c:cps) (cs Semi.<> epAnnComments an) bvis ty - chkParens ops cps cs bvis ty = chk ops cps cs bvis ty + chkParens (o:ops) (c:cps) bvis ty + chkParens ops cps bvis ty = chk ops cps bvis ty -- Check that the name space is correct! - chk :: [AddEpAnn] -> [AddEpAnn] -> EpAnnComments -> HsBndrVis GhcPs -> LHsType GhcPs -> P (LHsTyVarBndr (HsBndrVis GhcPs) GhcPs) - chk ops cps cs bvis (L l (HsKindSig annk (L annt (HsTyVar ann _ (L lv tv))) k)) + chk :: [AddEpAnn] -> [AddEpAnn] -> HsBndrVis GhcPs -> LHsType GhcPs -> P (LHsTyVarBndr (HsBndrVis GhcPs) GhcPs) + chk ops cps bvis (L l (HsKindSig annk (L annt (HsTyVar ann _ (L lv tv))) k)) | isRdrTyVar tv = let an = (reverse ops) ++ cps in return (L (widenLocatedAn (l Semi.<> annt) (for_widening bvis:an)) - (KindedTyVar (addAnns (annk Semi.<> ann Semi.<> for_widening_ann bvis) an cs) - bvis (L lv tv) k)) - chk ops cps cs bvis (L l (HsTyVar ann _ (L ltv tv))) + (KindedTyVar (an ++ annk ++ ann) bvis (L lv tv) k)) + chk ops cps bvis (L l (HsTyVar ann _ (L ltv tv))) | isRdrTyVar tv = let an = (reverse ops) ++ cps in return (L (widenLocatedAn l (for_widening bvis:an)) - (UserTyVar (addAnns (ann Semi.<> for_widening_ann bvis) an cs) - bvis (L ltv tv))) - chk _ _ _ _ t@(L loc _) + (UserTyVar (an ++ ann) bvis (L ltv tv))) + chk _ _ _ t@(L loc _) = addFatalError $ mkPlainErrorMsgEnvelope (locA loc) $ (PsErrUnexpectedTypeInDecl t pp_what (unLoc tc) tparms equals_or_where) @@ -980,11 +964,6 @@ checkTyVars pp_what equals_or_where tc tparms for_widening (HsBndrInvisible (EpTok loc)) = AddEpAnn AnnAnyclass loc for_widening _ = AddEpAnn AnnAnyclass (EpaDelta (SameLine 0) []) - for_widening_ann :: HsBndrVis GhcPs -> EpAnn [AddEpAnn] - for_widening_ann (HsBndrInvisible (EpTok (EpaSpan (RealSrcSpan r _mb)))) - = EpAnn (realSpanAsAnchor r) [] emptyComments - for_widening_ann _ = noAnn - whereDots, equalsDots :: SDoc -- Second argument to checkTyVars @@ -999,7 +978,7 @@ checkDatatypeContext (Just c) (PsErrIllegalDataTypeContext c) type LRuleTyTmVar = LocatedAn NoEpAnns RuleTyTmVar -data RuleTyTmVar = RuleTyTmVar (EpAnn [AddEpAnn]) (LocatedN RdrName) (Maybe (LHsType GhcPs)) +data RuleTyTmVar = RuleTyTmVar [AddEpAnn] (LocatedN RdrName) (Maybe (LHsType GhcPs)) -- ^ Essentially a wrapper for a @RuleBndr GhcPs@ -- turns RuleTyTmVars into RuleBnrs - this is straightforward @@ -1065,10 +1044,10 @@ checkTyClHdr is_cls ty goL (L l ty) acc ops cps fix = go (locA l) ty acc ops cps fix -- workaround to define '*' despite StarIsType - go _ (HsParTy an (L l (HsStarTy _ isUni))) acc ops' cps' fix + go ll (HsParTy an (L l (HsStarTy _ isUni))) acc ops' cps' fix = do { addPsMessage (locA l) PsWarnStarBinder ; let name = mkOccNameFS tcClsName (starSym isUni) - ; let a' = newAnns l an + ; let a' = newAnns ll l an ; return (L a' (Unqual name), acc, fix , (reverse ops') ++ cps') } @@ -1097,12 +1076,12 @@ checkTyClHdr is_cls ty -- Combine the annotations from the HsParTy and HsStarTy into a -- new one for the LocatedN RdrName - newAnns :: SrcSpanAnnA -> EpAnn AnnParen -> SrcSpanAnnN - newAnns (EpAnn ap (AnnListItem ta) csp) (EpAnn as (AnnParen _ o c) cs) = + newAnns :: SrcSpan -> SrcSpanAnnA -> AnnParen -> SrcSpanAnnN + newAnns l (EpAnn ap (AnnListItem ta) csp) (AnnParen _ o c) = let - lr = RealSrcSpan (combineRealSrcSpans (anchor ap) (anchor as)) Strict.Nothing + lr = combineSrcSpans (RealSrcSpan (anchor ap) Strict.Nothing) l in - EpAnn (EpaSpan lr) (NameAnn NameParens o ap c ta) (csp Semi.<> cs) + EpAnn (EpaSpan lr) (NameAnn NameParens o ap c ta) csp -- | Yield a parse error if we have a function applied directly to a do block -- etc. and BlockArguments is not enabled. @@ -1154,19 +1133,13 @@ checkContext orig_t@(L (EpAnn l _ _) _orig_t) = -- (Eq a, Ord b) shows up as a tuple type. Only boxed tuples can -- be used as context constraints. -- Ditto () - = do - let (op,cp,cs') = case ann' of - EpAnn _ (AnnParen _ o c) cs -> ([o],[c],cs) - return (L (EpAnn l - -- Append parens so that the original order in the source is maintained - (AnnContext Nothing (oparens ++ op) (cp ++ cparens)) (cs Semi.<> cs')) ts) + = return (L (EpAnn l + -- Append parens so that the original order in the source is maintained + (AnnContext Nothing (oparens ++ [ap_open ann']) (ap_close ann':cparens)) cs) ts) check (opi,cpi,csi) (L _lp1 (HsParTy ann' ty)) -- to be sure HsParTy doesn't get into the way - = do - let (op,cp,cs') = case ann' of - EpAnn _ (AnnParen _ open close ) cs -> ([open],[close],cs) - check (op++opi,cp++cpi,cs' Semi.<> csi) ty + = check (ap_open ann':opi, ap_close ann':cpi, csi) ty -- No need for anns, returning original check (_opi,_cpi,_csi) _t = @@ -1254,10 +1227,10 @@ checkAPat loc e0 = do (L _ (PatBuilderVar (L nloc n))) (L l plus) (L lloc (PatBuilderOverLit lit@(OverLit {ol_val = HsIntegral {}}))) - (EpAnn anc _ cs) + _ | nPlusKPatterns && (plus == plus_RDR) -> return (mkNPlusKPat (L nloc n) (L (l2l lloc) lit) - (EpAnn anc (entry l) cs)) + (entry l)) -- Improve error messages for the @-operator when the user meant an @-pattern PatBuilderOpApp _ op _ _ | opIsAt (unLoc op) -> do @@ -1345,9 +1318,8 @@ checkFunBind :: SrcStrictness checkFunBind strictness locF ann fun is_infix pats (L _ grhss) = do ps <- runPV_details extraDetails (mapM checkLPat pats) let match_span = noAnnSrcSpan $ locF - cs <- getCommentsFor locF return (makeFunBind fun (L (noAnnSrcSpan $ locA match_span) - [L match_span (Match { m_ext = EpAnn (spanAsAnchor locF) ann cs + [L match_span (Match { m_ext = ann , m_ctxt = FunRhs { mc_fun = fun , mc_fixity = is_infix @@ -1376,10 +1348,10 @@ checkPatBind :: SrcSpan -> Located (GRHSs GhcPs (LHsExpr GhcPs)) -> HsMultAnn GhcPs -> P (HsBind GhcPs) -checkPatBind loc annsIn (L _ (BangPat (EpAnn _ ans cs) (L _ (VarPat _ v)))) +checkPatBind loc annsIn (L _ (BangPat ans (L _ (VarPat _ v)))) (L _match_span grhss) (HsNoMultAnn _) = return (makeFunBind v (L (noAnnSrcSpan loc) - [L (noAnnSrcSpan loc) (m (EpAnn (spanAsAnchor loc) (ans++annsIn) cs) v)])) + [L (noAnnSrcSpan loc) (m (ans++annsIn) v)])) where m a v = Match { m_ext = a , m_ctxt = FunRhs { mc_fun = v @@ -1388,9 +1360,8 @@ checkPatBind loc annsIn (L _ (BangPat (EpAnn _ ans cs) (L _ (VarPat _ v)))) , m_pats = [] , m_grhss = grhss } -checkPatBind loc annsIn lhs (L _ grhss) mult = do - cs <- getCommentsFor loc - return (PatBind (EpAnn (spanAsAnchor loc) annsIn cs) lhs mult grhss) +checkPatBind _loc annsIn lhs (L _ grhss) mult = do + return (PatBind annsIn lhs mult grhss) checkValSigLhs :: LHsExpr GhcPs -> P (LocatedN RdrName) @@ -1432,7 +1403,7 @@ isFunLhs e = go e [] [] [] (o,c) = mkParensEpAnn (realSrcSpan $ locA l) in go e es (o:ops) (c:cps) - go (L loc (PatBuilderOpApp l (L loc' op) r (EpAnn loca anns cs))) es ops cps + go (L loc (PatBuilderOpApp l (L loc' op) r anns)) es ops cps | not (isRdrDataCon op) -- We have found the function! = return (Just (L loc' op, Infix, (l:r:es), (anns ++ reverse ops ++ cps))) | otherwise -- Infix data con; keep going @@ -1442,11 +1413,11 @@ isFunLhs e = go e [] [] [] -> return (Just (op', Infix, j : op_app : es', anns')) where op_app = L loc (PatBuilderOpApp k - (L loc' op) r (EpAnn loca (reverse ops++cps) cs)) + (L loc' op) r (reverse ops++cps)) _ -> return Nothing } go _ _ _ _ = return Nothing -mkBangTy :: EpAnn [AddEpAnn] -> SrcStrictness -> LHsType GhcPs -> HsType GhcPs +mkBangTy :: [AddEpAnn] -> SrcStrictness -> LHsType GhcPs -> HsType GhcPs mkBangTy anns strictness = HsBangTy anns (HsSrcBang NoSourceText NoSrcUnpack strictness) @@ -1458,9 +1429,7 @@ data UnpackednessPragma = addUnpackednessP :: MonadP m => Located UnpackednessPragma -> LHsType GhcPs -> m (LHsType GhcPs) addUnpackednessP (L lprag (UnpackednessPragma anns prag unpk)) ty = do let l' = combineSrcSpans lprag (getLocA ty) - cs <- getCommentsFor l' - let an = EpAnn (spanAsAnchor l') anns cs - t' = addUnpackedness an ty + let t' = addUnpackedness anns ty return (L (noAnnSrcSpan l') t') where -- If we have a HsBangTy that only has a strictness annotation, @@ -1469,7 +1438,7 @@ addUnpackednessP (L lprag (UnpackednessPragma anns prag unpk)) ty = do -- Otherwise, wrap the type in a new HsBangTy constructor. addUnpackedness an (L _ (HsBangTy x bang t)) | HsSrcBang NoSourceText NoSrcUnpack strictness <- bang - = HsBangTy (addAnns an (epAnnAnns x) (epAnnComments x)) (HsSrcBang prag unpk strictness) t + = HsBangTy (an Semi.<> x) (HsSrcBang prag unpk strictness) t addUnpackedness an t = HsBangTy an (HsSrcBang prag unpk NoSrcStrict) t @@ -1521,22 +1490,20 @@ type Fbind b = Either (LHsRecField GhcPs (LocatedA b)) (LHsRecProj GhcPs (Locate class DisambInfixOp b where mkHsVarOpPV :: LocatedN RdrName -> PV (LocatedN b) mkHsConOpPV :: LocatedN RdrName -> PV (LocatedN b) - mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn (Maybe EpAnnUnboundVar)) -> PV (Located b) + mkHsInfixHolePV :: LocatedN (HsExpr GhcPs) -> PV (LocatedN b) instance DisambInfixOp (HsExpr GhcPs) where mkHsVarOpPV v = return $ L (getLoc v) (HsVar noExtField v) mkHsConOpPV v = return $ L (getLoc v) (HsVar noExtField v) - mkHsInfixHolePV l ann = do - cs <- getCommentsFor l - return $ L l (hsHoleExpr (ann cs)) + mkHsInfixHolePV h = return h instance DisambInfixOp RdrName where mkHsConOpPV (L l v) = return $ L l v mkHsVarOpPV (L l v) = return $ L l v - mkHsInfixHolePV l _ = addFatalError $ mkPlainErrorMsgEnvelope l $ PsErrInvalidInfixHole + mkHsInfixHolePV (L l _) = addFatalError $ mkPlainErrorMsgEnvelope (getHasLoc l) $ PsErrInvalidInfixHole type AnnoBody b - = ( Anno (GRHS GhcPs (LocatedA (Body b GhcPs))) ~ EpAnn NoEpAnns + = ( Anno (GRHS GhcPs (LocatedA (Body b GhcPs))) ~ EpAnnCO , Anno [LocatedA (Match GhcPs (LocatedA (Body b GhcPs)))] ~ SrcSpanAnnL , Anno (Match GhcPs (LocatedA (Body b GhcPs))) ~ SrcSpanAnnA , Anno (StmtLR GhcPs GhcPs (LocatedA (Body (Body b GhcPs) GhcPs))) ~ SrcSpanAnnA @@ -1610,18 +1577,18 @@ class (b ~ (Body b) GhcPs, AnnoBody b) => DisambECP b where -- | Disambiguate a variable "f" or a data constructor "MkF". mkHsVarPV :: LocatedN RdrName -> PV (LocatedA b) -- | Disambiguate a monomorphic literal - mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located b) + mkHsLitPV :: Located (HsLit GhcPs) -> PV (LocatedA b) -- | Disambiguate an overloaded literal mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a b) -- | Disambiguate a wildcard - mkHsWildCardPV :: SrcSpan -> PV (Located b) + mkHsWildCardPV :: (NoAnn a) => SrcSpan -> PV (LocatedAn a b) -- | Disambiguate "a :: t" (type annotation) mkHsTySigPV :: SrcSpanAnnA -> LocatedA b -> LHsType GhcPs -> [AddEpAnn] -> PV (LocatedA b) -- | Disambiguate "[a,b,c]" (list syntax) mkHsExplicitListPV :: SrcSpan -> [LocatedA b] -> AnnList -> PV (LocatedA b) -- | Disambiguate "$(...)" and "[quasi|...|]" (TH splices) - mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (Located b) + mkHsSplicePV :: Located (HsUntypedSplice GhcPs) -> PV (LocatedA b) -- | Disambiguate "f { a = b, ... }" syntax (record construction and record updates) mkHsRecordPV :: Bool -> -- Is OverloadedRecordUpdate in effect? @@ -1635,7 +1602,7 @@ class (b ~ (Body b) GhcPs, AnnoBody b) => DisambECP b where mkHsNegAppPV :: SrcSpan -> LocatedA b -> [AddEpAnn] -> PV (LocatedA b) -- | Disambiguate "(# a)" (right operator section) mkHsSectionR_PV - :: SrcSpan -> LocatedA (InfixOp b) -> LocatedA b -> PV (Located b) + :: SrcSpan -> LocatedA (InfixOp b) -> LocatedA b -> PV (LocatedA b) -- | Disambiguate "(a -> b)" (view pattern) mkHsViewPatPV :: SrcSpan -> LHsExpr GhcPs -> LocatedA b -> [AddEpAnn] -> PV (LocatedA b) @@ -1705,12 +1672,12 @@ instance DisambECP (HsCmd GhcPs) where mkHsProjUpdatePV l _ _ _ _ = addFatalError $ mkPlainErrorMsgEnvelope l $ PsErrOverloadedRecordDotInvalid mkHsLamPV l lam_variant (L lm m) anns = do - cs <- getCommentsFor l + !cs <- getCommentsFor l let mg = mkLamCaseMatchGroup FromSource lam_variant (L lm m) - return $ L (noAnnSrcSpan l) (HsCmdLam (EpAnn (spanAsAnchor l) anns cs) lam_variant mg) + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCmdLam anns lam_variant mg) mkHsLetPV l tkLet bs tkIn e = do - cs <- getCommentsFor l + !cs <- getCommentsFor l return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCmdLet (tkLet, tkIn) bs e) type InfixOp (HsCmd GhcPs) = HsExpr GhcPs @@ -1719,32 +1686,31 @@ instance DisambECP (HsCmd GhcPs) where mkHsOpAppPV l c1 op c2 = do let cmdArg c = L (l2l $ getLoc c) $ HsCmdTop noExtField c - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) $ HsCmdArrForm (EpAnn (spanAsAnchor l) (AnnList Nothing Nothing Nothing [] []) cs) (reLoc op) Infix Nothing [cmdArg c1, cmdArg c2] + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) $ HsCmdArrForm (AnnList Nothing Nothing Nothing [] []) (reLoc op) Infix Nothing [cmdArg c1, cmdArg c2] mkHsCasePV l c (L lm m) anns = do - cs <- getCommentsFor l + !cs <- getCommentsFor l let mg = mkMatchGroup FromSource (L lm m) - return $ L (noAnnSrcSpan l) (HsCmdCase (EpAnn (spanAsAnchor l) anns cs) c mg) + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCmdCase anns c mg) type FunArg (HsCmd GhcPs) = HsExpr GhcPs superFunArg m = m mkHsAppPV l c e = do - cs <- getCommentsFor (locA l) checkCmdBlockArguments c checkExpBlockArguments e - return $ L l (HsCmdApp (comment (realSrcSpan $ locA l) cs) c e) + return $ L l (HsCmdApp noExtField c e) mkHsAppTypePV l c _ t = cmdFail (locA l) (ppr c <+> text "@" <> ppr t) mkHsIfPV l c semi1 a semi2 b anns = do checkDoAndIfThenElse PsErrSemiColonsInCondCmd c semi1 a semi2 b - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (mkHsCmdIf c a b (EpAnn (spanAsAnchor l) anns cs)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (mkHsCmdIf c a b anns) mkHsDoPV l Nothing stmts anns = do - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (HsCmdDo (EpAnn (spanAsAnchor l) anns cs) stmts) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCmdDo anns stmts) mkHsDoPV l (Just m) _ _ = addFatalError $ mkPlainErrorMsgEnvelope l $ PsErrQualifiedDoInCmd m mkHsParPV l lpar c rpar = do - cs <- getCommentsFor l + !cs <- getCommentsFor l return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCmdPar (lpar, rpar) c) mkHsVarPV (L l v) = cmdFail (locA l) (ppr v) mkHsLitPV (L l a) = cmdFail l (ppr a) @@ -1791,72 +1757,73 @@ instance DisambECP (HsExpr GhcPs) where return (L l (hsHoleExpr noAnn)) ecpFromExp' = return mkHsProjUpdatePV l fields arg isPun anns = do - cs <- getCommentsFor l - return $ mkRdrProjUpdate (noAnnSrcSpan l) fields arg isPun (EpAnn (spanAsAnchor l) anns cs) + !cs <- getCommentsFor l + return $ mkRdrProjUpdate (EpAnn (spanAsAnchor l) noAnn cs) fields arg isPun anns mkHsLetPV l tkLet bs tkIn c = do - cs <- getCommentsFor l + !cs <- getCommentsFor l return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsLet (tkLet, tkIn) bs c) type InfixOp (HsExpr GhcPs) = HsExpr GhcPs superInfixOp m = m mkHsOpAppPV l e1 op e2 = do - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) $ OpApp (EpAnn (spanAsAnchor l) [] cs) e1 (reLoc op) e2 + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) $ OpApp [] e1 (reLoc op) e2 mkHsCasePV l e (L lm m) anns = do - cs <- getCommentsFor l + !cs <- getCommentsFor l let mg = mkMatchGroup FromSource (L lm m) - return $ L (noAnnSrcSpan l) (HsCase (EpAnn (spanAsAnchor l) anns cs) e mg) + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsCase anns e mg) mkHsLamPV l lam_variant (L lm m) anns = do - cs <- getCommentsFor l + !cs <- getCommentsFor l let mg = mkLamCaseMatchGroup FromSource lam_variant (L lm m) checkLamMatchGroup l lam_variant mg - return $ L (noAnnSrcSpan l) (HsLam (EpAnn (spanAsAnchor l) anns cs) lam_variant mg) + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsLam anns lam_variant mg) type FunArg (HsExpr GhcPs) = HsExpr GhcPs superFunArg m = m mkHsAppPV l e1 e2 = do - cs <- getCommentsFor (locA l) checkExpBlockArguments e1 checkExpBlockArguments e2 - return $ L l (HsApp (comment (realSrcSpan $ locA l) cs) e1 e2) + return $ L l (HsApp noExtField e1 e2) mkHsAppTypePV l e at t = do checkExpBlockArguments e return $ L l (HsAppType at e (mkHsWildCardBndrs t)) mkHsIfPV l c semi1 a semi2 b anns = do checkDoAndIfThenElse PsErrSemiColonsInCondExpr c semi1 a semi2 b - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (mkHsIf c a b (EpAnn (spanAsAnchor l) anns cs)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (mkHsIf c a b anns) mkHsDoPV l mod stmts anns = do - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (HsDo (EpAnn (spanAsAnchor l) anns cs) (DoExpr mod) stmts) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsDo anns (DoExpr mod) stmts) mkHsParPV l lpar e rpar = do - cs <- getCommentsFor l + !cs <- getCommentsFor l return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsPar (lpar, rpar) e) - mkHsVarPV v@(L l _) = return $ L (l2l l) (HsVar noExtField v) + mkHsVarPV v@(L l@(EpAnn anc _ _) _) = do + !cs <- getCommentsFor (getHasLoc l) + return $ L (EpAnn anc noAnn cs) (HsVar noExtField v) mkHsLitPV (L l a) = do - cs <- getCommentsFor l - return $ L l (HsLit (comment (realSrcSpan l) cs) a) - mkHsOverLitPV (L l a) = do - cs <- getCommentsFor (locA l) - return $ L l (HsOverLit (comment (realSrcSpan (locA l)) cs) a) - mkHsWildCardPV l = return $ L l (hsHoleExpr noAnn) - mkHsTySigPV l a sig anns = do - cs <- getCommentsFor (locA l) - return $ L l (ExprWithTySig (EpAnn (spanAsAnchor $ locA l) anns cs) a (hsTypeToHsSigWcType sig)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (HsLit noExtField a) + mkHsOverLitPV (L (EpAnn l an csIn) a) = do + !cs <- getCommentsFor (locA l) + return $ L (EpAnn l an (cs Semi.<> csIn)) (HsOverLit NoExtField a) + mkHsWildCardPV l = return $ L (noAnnSrcSpan l) (hsHoleExpr noAnn) + mkHsTySigPV l@(EpAnn anc an csIn) a sig anns = do + !cs <- getCommentsFor (locA l) + return $ L (EpAnn anc an (csIn Semi.<> cs)) (ExprWithTySig anns a (hsTypeToHsSigWcType sig)) mkHsExplicitListPV l xs anns = do - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (ExplicitList (EpAnn (spanAsAnchor l) anns cs) xs) - mkHsSplicePV sp@(L l _) = do - cs <- getCommentsFor l - return $ fmap (HsUntypedSplice (EpAnn (spanAsAnchor l) NoEpAnns cs)) sp + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (ExplicitList anns xs) + mkHsSplicePV (L l a) = do + !cs <- getCommentsFor l + return $ fmap (HsUntypedSplice NoExtField) (L (EpAnn (spanAsAnchor l) noAnn cs) a) mkHsRecordPV opts l lrec a (fbinds, ddLoc) anns = do - cs <- getCommentsFor l - r <- mkRecConstrOrUpdate opts a lrec (fbinds, ddLoc) (EpAnn (spanAsAnchor l) anns cs) - checkRecordSyntax (L (noAnnSrcSpan l) r) + !cs <- getCommentsFor l + r <- mkRecConstrOrUpdate opts a lrec (fbinds, ddLoc) anns + checkRecordSyntax (L (EpAnn (spanAsAnchor l) noAnn cs) r) mkHsNegAppPV l a anns = do - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (NegApp (EpAnn (spanAsAnchor l) anns cs) a noSyntaxExpr) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (NegApp anns a noSyntaxExpr) mkHsSectionR_PV l op e = do - cs <- getCommentsFor l - return $ L l (SectionR (comment (realSrcSpan l) cs) op e) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (SectionR noExtField op e) mkHsViewPatPV l a b _ = addError (mkPlainErrorMsgEnvelope l $ PsErrViewPatInExpr a b) >> return (L (noAnnSrcSpan l) (hsHoleExpr noAnn)) mkHsAsPatPV l v _ e = addError (mkPlainErrorMsgEnvelope l $ PsErrTypeAppWithoutSpace (unLoc v) e) @@ -1876,7 +1843,7 @@ instance DisambECP (HsExpr GhcPs) where (PsErrUnallowedPragma prag) rejectPragmaPV _ = return () -hsHoleExpr :: EpAnn (Maybe EpAnnUnboundVar) -> HsExpr GhcPs +hsHoleExpr :: Maybe EpAnnUnboundVar -> HsExpr GhcPs hsHoleExpr anns = HsUnboundVar anns (mkRdrUnqual (mkVarOccFS (fsLit "_"))) instance DisambECP (PatBuilder GhcPs) where @@ -1888,9 +1855,8 @@ instance DisambECP (PatBuilder GhcPs) where type InfixOp (PatBuilder GhcPs) = RdrName superInfixOp m = m mkHsOpAppPV l p1 op p2 = do - cs <- getCommentsFor l - let anns = EpAnn (spanAsAnchor l) [] cs - return $ L (noAnnSrcSpan l) $ PatBuilderOpApp p1 op p2 anns + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) $ PatBuilderOpApp p1 op p2 [] mkHsLamPV l lam_variant _ _ = addFatalError $ mkPlainErrorMsgEnvelope l (PsErrLambdaInPat lam_variant) @@ -1899,7 +1865,7 @@ instance DisambECP (PatBuilder GhcPs) where superFunArg m = m mkHsAppPV l p1 p2 = return $ L l (PatBuilderApp p1 p2) mkHsAppTypePV l p at t = do - cs <- getCommentsFor (locA l) + !cs <- getCommentsFor (locA l) let anns = EpAnn (spanAsAnchor (getLocA t)) NoEpAnns cs return $ L l (PatBuilderAppType p at (mkHsTyPat anns t)) mkHsIfPV l _ _ _ _ _ _ = addFatalError $ mkPlainErrorMsgEnvelope l PsErrIfThenElseInPat @@ -1908,52 +1874,53 @@ instance DisambECP (PatBuilder GhcPs) where mkHsVarPV v@(getLoc -> l) = return $ L (l2l l) (PatBuilderVar v) mkHsLitPV lit@(L l a) = do checkUnboxedLitPat lit - return $ L l (PatBuilderPat (LitPat noExtField a)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (LitPat noExtField a)) mkHsOverLitPV (L l a) = return $ L l (PatBuilderOverLit a) - mkHsWildCardPV l = return $ L l (PatBuilderPat (WildPat noExtField)) + mkHsWildCardPV l = return $ L (noAnnSrcSpan l) (PatBuilderPat (WildPat noExtField)) mkHsTySigPV l b sig anns = do p <- checkLPat b - cs <- getCommentsFor (locA l) - return $ L l (PatBuilderPat (SigPat (EpAnn (spanAsAnchor $ locA l) anns cs) p (mkHsPatSigType noAnn sig))) + return $ L l (PatBuilderPat (SigPat anns p (mkHsPatSigType noAnn sig))) mkHsExplicitListPV l xs anns = do ps <- traverse checkLPat xs - cs <- getCommentsFor l - return (L (noAnnSrcSpan l) (PatBuilderPat (ListPat (EpAnn (spanAsAnchor l) anns cs) ps))) - mkHsSplicePV (L l sp) = return $ L l (PatBuilderPat (SplicePat noExtField sp)) + !cs <- getCommentsFor l + return (L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (ListPat anns ps))) + mkHsSplicePV (L l sp) = do + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (SplicePat noExtField sp)) mkHsRecordPV _ l _ a (fbinds, ddLoc) anns = do let (fs, ps) = partitionEithers fbinds if not (null ps) then addFatalError $ mkPlainErrorMsgEnvelope l PsErrOverloadedRecordDotInvalid else do - cs <- getCommentsFor l - r <- mkPatRec a (mk_rec_fields fs ddLoc) (EpAnn (spanAsAnchor l) anns cs) - checkRecordSyntax (L (noAnnSrcSpan l) r) + !cs <- getCommentsFor l + r <- mkPatRec a (mk_rec_fields fs ddLoc) anns + checkRecordSyntax (L (EpAnn (spanAsAnchor l) noAnn cs) r) mkHsNegAppPV l (L lp p) anns = do lit <- case p of PatBuilderOverLit pos_lit -> return (L (l2l lp) pos_lit) _ -> patFail l $ PsErrInPat p PEIP_NegApp - cs <- getCommentsFor l - let an = EpAnn (spanAsAnchor l) anns cs - return $ L (noAnnSrcSpan l) (PatBuilderPat (mkNPat lit (Just noSyntaxExpr) an)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (mkNPat lit (Just noSyntaxExpr) anns)) mkHsSectionR_PV l op p = patFail l (PsErrParseRightOpSectionInPat (unLoc op) (unLoc p)) mkHsViewPatPV l a b anns = do p <- checkLPat b - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (PatBuilderPat (ViewPat (EpAnn (spanAsAnchor l) anns cs) a p)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (ViewPat anns a p)) mkHsAsPatPV l v at e = do p <- checkLPat e - cs <- getCommentsFor l + !cs <- getCommentsFor l return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (AsPat at v p)) mkHsLazyPatPV l e a = do p <- checkLPat e - cs <- getCommentsFor l - return $ L (noAnnSrcSpan l) (PatBuilderPat (LazyPat (EpAnn (spanAsAnchor l) a cs) p)) + !cs <- getCommentsFor l + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat (LazyPat a p)) mkHsBangPatPV l e an = do p <- checkLPat e - cs <- getCommentsFor l - let pb = BangPat (EpAnn (spanAsAnchor l) an cs) p + !cs <- getCommentsFor l + let pb = BangPat an p hintBangPat l pb - return $ L (noAnnSrcSpan l) (PatBuilderPat pb) + return $ L (EpAnn (spanAsAnchor l) noAnn cs) (PatBuilderPat pb) mkSumOrTuplePV = mkSumOrTuplePat mkHsEmbTyPV l toktype ty = return $ L (noAnnSrcSpan l) $ @@ -1989,7 +1956,7 @@ checkUnboxedLitPat (L loc lit) = mkPatRec :: LocatedA (PatBuilder GhcPs) -> HsRecFields GhcPs (LocatedA (PatBuilder GhcPs)) -> - EpAnn [AddEpAnn] -> + [AddEpAnn] -> PV (PatBuilder GhcPs) mkPatRec (unLoc -> PatBuilderVar c) (HsRecFields fs dd) anns | isRdrDataCon (unLoc c) @@ -2040,8 +2007,8 @@ dataConBuilderDetails :: DataConBuilder -> HsConDeclH98Details GhcPs -- Detect when the record syntax is used: -- data T = MkT { ... } dataConBuilderDetails (PrefixDataConBuilder flds _) - | [L _ (HsRecTy an fields)] <- toList flds - = RecCon (L an fields) + | [L (EpAnn anc _ cs) (HsRecTy an fields)] <- toList flds + = RecCon (L (EpAnn anc an cs) fields) -- Normal prefix constructor, e.g. data T = MkT A B C dataConBuilderDetails (PrefixDataConBuilder flds _) @@ -2567,7 +2534,7 @@ mkRecConstrOrUpdate -> LHsExpr GhcPs -> SrcSpan -> ([Fbind (HsExpr GhcPs)], Maybe SrcSpan) - -> EpAnn [AddEpAnn] + -> [AddEpAnn] -> PV (HsExpr GhcPs) mkRecConstrOrUpdate _ (L _ (HsVar _ (L l c))) _lrec (fbinds,dd) anns | isRdrDataCon c @@ -2582,7 +2549,7 @@ mkRecConstrOrUpdate overloaded_update exp _ (fs,dd) anns PsErrDotsInRecordUpdate | otherwise = mkRdrRecordUpd overloaded_update exp fs anns -mkRdrRecordUpd :: Bool -> LHsExpr GhcPs -> [Fbind (HsExpr GhcPs)] -> EpAnn [AddEpAnn] -> PV (HsExpr GhcPs) +mkRdrRecordUpd :: Bool -> LHsExpr GhcPs -> [Fbind (HsExpr GhcPs)] -> [AddEpAnn] -> PV (HsExpr GhcPs) mkRdrRecordUpd overloaded_on exp@(L loc _) fbinds anns = do -- We do not need to know if OverloadedRecordDot is in effect. We do -- however need to know if OverloadedRecordUpdate (passed in @@ -2643,7 +2610,7 @@ mkRdrRecordUpd overloaded_on exp@(L loc _) fbinds anns = do punnedVar f = if not pun then arg else noLocA . HsVar noExtField . noLocA . mkRdrUnqual . mkVarOccFS $ f mkRdrRecordCon - :: LocatedN RdrName -> HsRecordBinds GhcPs -> EpAnn [AddEpAnn] -> HsExpr GhcPs + :: LocatedN RdrName -> HsRecordBinds GhcPs -> [AddEpAnn] -> HsExpr GhcPs mkRdrRecordCon con flds anns = RecordCon { rcon_ext = anns, rcon_con = con, rcon_flds = flds } @@ -2718,7 +2685,7 @@ checkNewOrData span name is_type_data = curry $ \ case mkImport :: Located CCallConv -> Located Safety -> (Located StringLiteral, LocatedN RdrName, LHsSigType GhcPs) - -> P (EpAnn [AddEpAnn] -> HsDecl GhcPs) + -> P ([AddEpAnn] -> HsDecl GhcPs) mkImport cconv safety (L loc (StringLiteral esrc entity _), v, ty) = case unLoc cconv of CCallConv -> returnSpec =<< mkCImport @@ -2828,7 +2795,7 @@ parseCImport cconv safety nm str sourceText = -- mkExport :: Located CCallConv -> (Located StringLiteral, LocatedN RdrName, LHsSigType GhcPs) - -> P (EpAnn [AddEpAnn] -> HsDecl GhcPs) + -> P ([AddEpAnn] -> HsDecl GhcPs) mkExport (L lc cconv) (L le (StringLiteral esrc entity _), v, ty) = return $ \ann -> ForD noExtField $ ForeignExport { fd_e_ext = ann, fd_name = v, fd_sig_ty = ty @@ -2861,17 +2828,15 @@ data ImpExpQcSpec = ImpExpQcName (LocatedN RdrName) mkModuleImpExp :: Maybe (LWarningTxt GhcPs) -> [AddEpAnn] -> LocatedA ImpExpQcSpec -> ImpExpSubSpec -> P (IE GhcPs) mkModuleImpExp warning anns (L l specname) subs = do - cs <- getCommentsFor (locA l) -- AZ: IEVar can discard comments - let ann = EpAnn (spanAsAnchor $ maybe (locA l) getLocA warning) anns cs case subs of ImpExpAbs | isVarNameSpace (rdrNameSpace name) -> return $ IEVar warning (L l (ieNameFromSpec specname)) - | otherwise -> IEThingAbs (warning, ann) . L l <$> nameT - ImpExpAll -> IEThingAll (warning, ann) . L l <$> nameT + | otherwise -> IEThingAbs (warning, anns) . L l <$> nameT + ImpExpAll -> IEThingAll (warning, anns) . L l <$> nameT ImpExpList xs -> - (\newName -> IEThingWith (warning, ann) (L l newName) + (\newName -> IEThingWith (warning, anns) (L l newName) NoIEWildcard (wrapped xs)) <$> nameT ImpExpAllWith xs -> do allowed <- getBit PatternSynonymsBit @@ -2883,7 +2848,7 @@ mkModuleImpExp warning anns (L l specname) subs = do ies :: [LocatedA (IEWrappedName GhcPs)] ies = wrapped $ filter (not . isImpExpQcWildcard . unLoc) xs in (\newName - -> IEThingWith (warning, ann) (L l newName) pos ies) + -> IEThingWith (warning, anns) (L l newName) pos ies) <$> nameT else addFatalError $ mkPlainErrorMsgEnvelope (locA l) $ PsErrIllegalPatSynExport @@ -3135,9 +3100,9 @@ mkSumOrTupleExpr :: SrcSpanAnnA -> Boxity -> SumOrTuple (HsExpr GhcPs) -> PV (LHsExpr GhcPs) -- Tuple -mkSumOrTupleExpr l boxity (Tuple es) anns = do - cs <- getCommentsFor (locA l) - return $ L l (ExplicitTuple (EpAnn (spanAsAnchor $ locA l) anns cs) (map toTupArg es) boxity) +mkSumOrTupleExpr l@(EpAnn anc an csIn) boxity (Tuple es) anns = do + !cs <- getCommentsFor (locA l) + return $ L (EpAnn anc an (csIn Semi.<> cs)) (ExplicitTuple anns (map toTupArg es) boxity) where toTupArg :: Either (EpAnn Bool) (LHsExpr GhcPs) -> HsTupArg GhcPs toTupArg (Left ann) = missingTupArg ann @@ -3146,13 +3111,13 @@ mkSumOrTupleExpr l boxity (Tuple es) anns = do -- Sum -- mkSumOrTupleExpr l Unboxed (Sum alt arity e) = -- return $ L l (ExplicitSum noExtField alt arity e) -mkSumOrTupleExpr l Unboxed (Sum alt arity e barsp barsa) anns = do +mkSumOrTupleExpr l@(EpAnn anc anIn csIn) Unboxed (Sum alt arity e barsp barsa) anns = do let an = case anns of [AddEpAnn AnnOpenPH o, AddEpAnn AnnClosePH c] -> AnnExplicitSum o barsp barsa c _ -> panic "mkSumOrTupleExpr" - cs <- getCommentsFor (locA l) - return $ L l (ExplicitSum (EpAnn (spanAsAnchor $ locA l) an cs) alt arity e) + !cs <- getCommentsFor (locA l) + return $ L (EpAnn anc anIn (csIn Semi.<> cs)) (ExplicitSum an alt arity e) mkSumOrTupleExpr l Boxed a@Sum{} _ = addFatalError $ mkPlainErrorMsgEnvelope (locA l) $ PsErrUnsupportedBoxedSumExpr a @@ -3163,8 +3128,7 @@ mkSumOrTuplePat -- Tuple mkSumOrTuplePat l boxity (Tuple ps) anns = do ps' <- traverse toTupPat ps - cs <- getCommentsFor (locA l) - return $ L l (PatBuilderPat (TuplePat (EpAnn (spanAsAnchor $ locA l) anns cs) ps' boxity)) + return $ L l (PatBuilderPat (TuplePat anns ps' boxity)) where toTupPat :: Either (EpAnn Bool) (LocatedA (PatBuilder GhcPs)) -> PV (LPat GhcPs) -- Ignore the element location so that the error message refers to the @@ -3177,8 +3141,7 @@ mkSumOrTuplePat l boxity (Tuple ps) anns = do -- Sum mkSumOrTuplePat l Unboxed (Sum alt arity p barsb barsa) anns = do p' <- checkLPat p - cs <- getCommentsFor (locA l) - let an = EpAnn (spanAsAnchor $ locA l) (EpAnnSumPat anns barsb barsa) cs + let an = EpAnnSumPat anns barsb barsa return $ L l (PatBuilderPat (SumPat an p' alt arity)) mkSumOrTuplePat l Boxed a@Sum{} _ = addFatalError $ @@ -3233,15 +3196,15 @@ starSym False = fsLit "*" -- Bits and pieces for RecordDotSyntax. mkRdrGetField :: LHsExpr GhcPs -> LocatedAn NoEpAnns (DotFieldOcc GhcPs) - -> EpAnnCO -> HsExpr GhcPs -mkRdrGetField arg field anns = + -> HsExpr GhcPs +mkRdrGetField arg field = HsGetField { - gf_ext = anns + gf_ext = NoExtField , gf_expr = arg , gf_field = field } -mkRdrProjection :: NonEmpty (LocatedAn NoEpAnns (DotFieldOcc GhcPs)) -> EpAnn AnnProjection -> HsExpr GhcPs +mkRdrProjection :: NonEmpty (LocatedAn NoEpAnns (DotFieldOcc GhcPs)) -> AnnProjection -> HsExpr GhcPs mkRdrProjection flds anns = HsProjection { proj_ext = anns @@ -3249,7 +3212,7 @@ mkRdrProjection flds anns = } mkRdrProjUpdate :: SrcSpanAnnA -> Located [LocatedAn NoEpAnns (DotFieldOcc GhcPs)] - -> LHsExpr GhcPs -> Bool -> EpAnn [AddEpAnn] + -> LHsExpr GhcPs -> Bool -> [AddEpAnn] -> LHsRecProj GhcPs (LHsExpr GhcPs) mkRdrProjUpdate _ (L _ []) _ _ _ = panic "mkRdrProjUpdate: The impossible has happened!" mkRdrProjUpdate loc (L l flds) arg isPun anns = diff --git a/compiler/GHC/Parser/Types.hs b/compiler/GHC/Parser/Types.hs index 110c5e982d6f..b09132a48bf3 100644 --- a/compiler/GHC/Parser/Types.hs +++ b/compiler/GHC/Parser/Types.hs @@ -57,12 +57,12 @@ data PatBuilder p | PatBuilderApp (LocatedA (PatBuilder p)) (LocatedA (PatBuilder p)) | PatBuilderAppType (LocatedA (PatBuilder p)) (EpToken "@") (HsTyPat GhcPs) | PatBuilderOpApp (LocatedA (PatBuilder p)) (LocatedN RdrName) - (LocatedA (PatBuilder p)) (EpAnn [AddEpAnn]) + (LocatedA (PatBuilder p)) [AddEpAnn] | PatBuilderVar (LocatedN RdrName) | PatBuilderOverLit (HsOverLit GhcPs) -- These instances are here so that they are not orphans -type instance Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = EpAnn NoEpAnns +type instance Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = EpAnnCO type instance Anno [LocatedA (Match GhcPs (LocatedA (PatBuilder GhcPs)))] = SrcSpanAnnL type instance Anno (Match GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA type instance Anno (StmtLR GhcPs GhcPs (LocatedA (PatBuilder GhcPs))) = SrcSpanAnnA diff --git a/compiler/GHC/Rename/Bind.hs b/compiler/GHC/Rename/Bind.hs index 51839e3a4395..a47b5a06b330 100644 --- a/compiler/GHC/Rename/Bind.hs +++ b/compiler/GHC/Rename/Bind.hs @@ -1248,8 +1248,8 @@ type AnnoBody body , Anno [LocatedA (Match GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL , Anno (Match GhcRn (LocatedA (body GhcRn))) ~ SrcSpanAnnA , Anno (Match GhcPs (LocatedA (body GhcPs))) ~ SrcSpanAnnA - , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnn NoEpAnns - , Anno (GRHS GhcPs (LocatedA (body GhcPs))) ~ EpAnn NoEpAnns + , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnnCO + , Anno (GRHS GhcPs (LocatedA (body GhcPs))) ~ EpAnnCO , Outputable (body GhcPs) ) diff --git a/compiler/GHC/Rename/Expr.hs b/compiler/GHC/Rename/Expr.hs index 4f95d37354e2..3cb07c394c18 100644 --- a/compiler/GHC/Rename/Expr.hs +++ b/compiler/GHC/Rename/Expr.hs @@ -359,7 +359,7 @@ rnExpr (HsUnboundVar _ v) -- HsOverLabel: see Note [Handling overloaded and rebindable constructs] rnExpr (HsOverLabel _ src v) = do { (from_label, fvs) <- lookupSyntaxName fromLabelClassOpName - ; return ( mkExpandedExpr (HsOverLabel noAnn src v) $ + ; return ( mkExpandedExpr (HsOverLabel noExtField src v) $ HsAppType noExtField (genLHsVar from_label) hs_ty_arg , fvs ) } where @@ -383,7 +383,7 @@ rnExpr (HsOverLit x lit) ; case mb_neg of Nothing -> return (HsOverLit x lit', fvs) Just neg -> - return (HsApp noComments (noLocA neg) (noLocA (HsOverLit x lit')) + return (HsApp noExtField (noLocA neg) (noLocA (HsOverLit x lit')) , fvs ) } rnExpr (HsApp x fun arg) @@ -688,9 +688,9 @@ rnSection section@(SectionL x expr op) -- Note [Left and right sections] ; let rn_section = SectionL x expr' op' ds_section - | postfix_ops = HsApp noAnn op' expr' + | postfix_ops = HsApp noExtField op' expr' | otherwise = genHsApps leftSectionName - [wrapGenSpan $ HsApp noAnn op' expr'] + [wrapGenSpan $ HsApp noExtField op' expr'] ; return ( mkExpandedExpr rn_section ds_section , fvs_op `plusFV` fvs_expr) } @@ -2235,7 +2235,7 @@ stmtTreeToStmts monad_names ctxt (StmtTreeApplicative trees) tail tail_fvs = do -- Need 'pureAName' and not 'returnMName' here, so that it requires -- 'Applicative' and not 'Monad' whenever possible (until #20540 is fixed). (ret, _) <- lookupQualifiedDoExpr (HsDoStmt ctxt) pureAName - let expr = HsApp noComments (noLocA ret) tup + let expr = HsApp noExtField (noLocA ret) tup return (expr, emptyFVs) return ( ApplicativeArgMany { xarg_app_arg_many = noExtField diff --git a/compiler/GHC/Rename/Splice.hs b/compiler/GHC/Rename/Splice.hs index 58160a5543c2..2f36448f226b 100644 --- a/compiler/GHC/Rename/Splice.hs +++ b/compiler/GHC/Rename/Splice.hs @@ -419,15 +419,15 @@ mkQuasiQuoteExpr :: UntypedSpliceFlavour -> Name -- Return the expression (quoter "...quote...") -- which is what we must run in a quasi-quote mkQuasiQuoteExpr flavour quoter (L q_span' quote) - = L q_span $ HsApp noComments (L q_span - $ HsApp noComments (L q_span + = L q_span $ HsApp noExtField (L q_span + $ HsApp noExtField (L q_span (HsVar noExtField (L (l2l q_span) quote_selector))) quoterExpr) quoteExpr where q_span = noAnnSrcSpan (locA q_span') quoterExpr = L q_span $! HsVar noExtField $! (L (l2l q_span) quoter) - quoteExpr = L q_span $! HsLit noComments $! HsString NoSourceText quote + quoteExpr = L q_span $! HsLit noExtField $! HsString NoSourceText quote quote_selector = case flavour of UntypedExpSplice -> quoteExpName UntypedPatSplice -> quotePatName diff --git a/compiler/GHC/Rename/Utils.hs b/compiler/GHC/Rename/Utils.hs index 88807e5821c1..1c827a06d625 100644 --- a/compiler/GHC/Rename/Utils.hs +++ b/compiler/GHC/Rename/Utils.hs @@ -727,7 +727,7 @@ genHsExpApps :: HsExpr GhcRn -> [LHsExpr GhcRn] -> HsExpr GhcRn genHsExpApps fun arg = foldl genHsApp fun arg genHsApp :: HsExpr GhcRn -> LHsExpr GhcRn -> HsExpr GhcRn -genHsApp fun arg = HsApp noAnn (wrapGenSpan fun) arg +genHsApp fun arg = HsApp noExtField (wrapGenSpan fun) arg genLHsApp :: HsExpr GhcRn -> LHsExpr GhcRn -> LHsExpr GhcRn genLHsApp fun arg = wrapGenSpan (genHsApp fun arg) @@ -742,7 +742,7 @@ genAppType :: HsExpr GhcRn -> HsType (NoGhcTc GhcRn) -> HsExpr GhcRn genAppType expr ty = HsAppType noExtField (wrapGenSpan expr) (mkEmptyWildCardBndrs (wrapGenSpan ty)) genLHsLit :: (NoAnn an) => HsLit GhcRn -> LocatedAn an (HsExpr GhcRn) -genLHsLit = wrapGenSpan . HsLit noAnn +genLHsLit = wrapGenSpan . HsLit noExtField genHsIntegralLit :: (NoAnn an) => IntegralLit -> LocatedAn an (HsExpr GhcRn) genHsIntegralLit = genLHsLit . HsInt noExtField diff --git a/compiler/GHC/Tc/Deriv/Generate.hs b/compiler/GHC/Tc/Deriv/Generate.hs index ac40a1d1bcea..0cc3ac1f71f4 100644 --- a/compiler/GHC/Tc/Deriv/Generate.hs +++ b/compiler/GHC/Tc/Deriv/Generate.hs @@ -515,7 +515,7 @@ gen_Ord_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon where tag = get_tag data_con tag_lit - = noLocA (HsLit noComments (HsIntPrim NoSourceText (toInteger tag))) + = noLocA (HsLit noExtField (HsIntPrim NoSourceText (toInteger tag))) mkInnerEqAlt :: OrdOp -> DataCon -> LMatch GhcPs (LHsExpr GhcPs) -- First argument 'a' known to be built with K @@ -1655,8 +1655,8 @@ gen_Lift_binds loc (DerivInstTys{ dit_rep_tc = tycon mk_untyped_bracket = HsUntypedBracket noAnn . ExpBr noExtField mk_typed_bracket = HsTypedBracket noAnn - mk_tsplice = HsTypedSplice (noAnn, noAnn) - mk_usplice = HsUntypedSplice noAnn . HsUntypedSpliceExpr noAnn + mk_tsplice = HsTypedSplice [] + mk_usplice = HsUntypedSplice noExtField . HsUntypedSpliceExpr noAnn data_cons = getPossibleDataCons tycon tycon_args pats_etc mk_bracket mk_splice lift_name data_con diff --git a/compiler/GHC/Tc/Gen/Expr.hs b/compiler/GHC/Tc/Gen/Expr.hs index d944d9e72fbd..971db16e26db 100644 --- a/compiler/GHC/Tc/Gen/Expr.hs +++ b/compiler/GHC/Tc/Gen/Expr.hs @@ -293,7 +293,7 @@ tcExpr e@(HsOverLit _ lit) res_ty = do { mb_res <- tcShortCutLit lit res_ty -- See Note [Short cut for overloaded literals] in GHC.Tc.Zonk.Type ; case mb_res of - Just lit' -> return (HsOverLit noAnn lit') + Just lit' -> return (HsOverLit noExtField lit') Nothing -> tcApp e res_ty } -- Typecheck an occurrence of an unbound Id @@ -536,7 +536,7 @@ tcExpr (HsStatic fvs expr) res_ty ; let wrap = mkWpEvVarApps [typeable_ev] <.> mkWpTyApps [expr_ty] ; loc <- getSrcSpanM ; static_ptr_ty_con <- tcLookupTyCon staticPtrTyConName - ; return $ mkHsWrapCo co $ HsApp noComments + ; return $ mkHsWrapCo co $ HsApp noExtField (L (noAnnSrcSpan loc) $ mkHsWrap wrap fromStaticPtr) (L (noAnnSrcSpan loc) (HsStatic (fvs, mkTyConApp static_ptr_ty_con [expr_ty]) expr')) } diff --git a/compiler/GHC/Tc/Gen/Head.hs b/compiler/GHC/Tc/Gen/Head.hs index 88ec0ae7a75c..9ae7328f54e7 100644 --- a/compiler/GHC/Tc/Gen/Head.hs +++ b/compiler/GHC/Tc/Gen/Head.hs @@ -396,7 +396,7 @@ rebuild_hs_apps fun _ [] = fun rebuild_hs_apps fun ctxt (arg : args) = case arg of EValArg { eva_arg = ValArg arg, eva_ctxt = ctxt' } - -> rebuild_hs_apps (HsApp noAnn lfun arg) ctxt' args + -> rebuild_hs_apps (HsApp noExtField lfun arg) ctxt' args ETypeArg { eva_hs_ty = hs_ty, eva_ty = ty, eva_ctxt = ctxt' } -> rebuild_hs_apps (HsAppType ty lfun hs_ty) ctxt' args EPrag ctxt' p @@ -1096,20 +1096,20 @@ tcInferOverLit lit@(OverLit { ol_val = val ; let thing = NameThing from_name mb_thing = Just thing - herald = ExpectedFunTyArg thing (HsLit noAnn hs_lit) + herald = ExpectedFunTyArg thing (HsLit noExtField hs_lit) ; (wrap2, sarg_ty, res_ty) <- matchActualFunTy herald mb_thing (1, from_ty) from_ty ; co <- unifyType mb_thing (hsLitType hs_lit) (scaledThing sarg_ty) -- See Note [Source locations for implicit function calls] in GHC.Iface.Ext.Ast ; let lit_expr = L (l2l loc) $ mkHsWrapCo co $ - HsLit noAnn hs_lit + HsLit noExtField hs_lit from_expr = mkHsWrap (wrap2 <.> wrap1) $ HsVar noExtField (L loc from_id) - witness = HsApp noAnn (L (l2l loc) from_expr) lit_expr + witness = HsApp noExtField (L (l2l loc) from_expr) lit_expr lit' = lit { ol_ext = OverLitTc { ol_rebindable = rebindable , ol_witness = witness , ol_type = res_ty } } - ; return (HsOverLit noAnn lit', res_ty) } + ; return (HsOverLit noExtField lit', res_ty) } {- ********************************************************************* * * diff --git a/compiler/GHC/Tc/Gen/HsType.hs b/compiler/GHC/Tc/Gen/HsType.hs index d2f4f790ab93..2ec7a76c5d0e 100644 --- a/compiler/GHC/Tc/Gen/HsType.hs +++ b/compiler/GHC/Tc/Gen/HsType.hs @@ -1378,14 +1378,14 @@ tc_fun_type mode mult ty1 ty2 exp_kind = case mode_tyki mode of ; ty1' <- tc_lhs_type mode ty1 arg_k ; ty2' <- tc_lhs_type mode ty2 res_k ; mult' <- tc_mult mode mult - ; checkExpectedKind (HsFunTy noAnn mult ty1 ty2) + ; checkExpectedKind (HsFunTy noExtField mult ty1 ty2) (tcMkVisFunTy mult' ty1' ty2') liftedTypeKind exp_kind } KindLevel -> -- no representation polymorphism in kinds. yet. do { ty1' <- tc_lhs_type mode ty1 liftedTypeKind ; ty2' <- tc_lhs_type mode ty2 liftedTypeKind ; mult' <- tc_mult mode mult - ; checkExpectedKind (HsFunTy noAnn mult ty1 ty2) + ; checkExpectedKind (HsFunTy noExtField mult ty1 ty2) (tcMkVisFunTy mult' ty1' ty2') liftedTypeKind exp_kind } diff --git a/compiler/GHC/Tc/Gen/Match.hs b/compiler/GHC/Tc/Gen/Match.hs index 83ff2e511914..fbc925168991 100644 --- a/compiler/GHC/Tc/Gen/Match.hs +++ b/compiler/GHC/Tc/Gen/Match.hs @@ -215,8 +215,8 @@ type AnnoBody body , Anno (Match GhcTc (LocatedA (body GhcTc))) ~ SrcSpanAnnA , Anno [LocatedA (Match GhcRn (LocatedA (body GhcRn)))] ~ SrcSpanAnnL , Anno [LocatedA (Match GhcTc (LocatedA (body GhcTc)))] ~ SrcSpanAnnL - , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnn NoEpAnns - , Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnn NoEpAnns + , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnnCO + , Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnCO , Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) ~ SrcSpanAnnA , Anno (StmtLR GhcTc GhcTc (LocatedA (body GhcTc))) ~ SrcSpanAnnA ) diff --git a/compiler/GHC/Tc/Gen/Splice.hs b/compiler/GHC/Tc/Gen/Splice.hs index 45640c16c5ae..4450d743baad 100644 --- a/compiler/GHC/Tc/Gen/Splice.hs +++ b/compiler/GHC/Tc/Gen/Splice.hs @@ -971,7 +971,7 @@ stubNestedSplice :: HsExpr GhcTc -- do a debug-print. The warning is because this should never happen -- /except/ when doing debug prints. stubNestedSplice = warnPprTrace True "stubNestedSplice" empty $ - HsLit noComments (mkHsString "stubNestedSplice") + HsLit noExtField (mkHsString "stubNestedSplice") {- @@ -1002,7 +1002,7 @@ runAnnotation target expr = do ; let specialised_to_annotation_wrapper_expr = L loc' (mkHsWrap wrapper (HsVar noExtField (L (noAnnSrcSpan loc) to_annotation_wrapper_id))) - ; return (L loc' (HsApp noComments + ; return (L loc' (HsApp noExtField specialised_to_annotation_wrapper_expr expr')) }) diff --git a/compiler/GHC/Tc/TyCl/Instance.hs b/compiler/GHC/Tc/TyCl/Instance.hs index 0966d5de0c85..f555eda53b22 100644 --- a/compiler/GHC/Tc/TyCl/Instance.hs +++ b/compiler/GHC/Tc/TyCl/Instance.hs @@ -1332,7 +1332,7 @@ tcInstDecl2 (InstInfo { iSpec = ispec, iBinds = ibinds }) con_app_args = foldl' app_to_meth con_app_tys sc_meth_ids app_to_meth :: HsExpr GhcTc -> Id -> HsExpr GhcTc - app_to_meth fun meth_id = HsApp noComments (L loc' fun) + app_to_meth fun meth_id = HsApp noExtField (L loc' fun) (L loc' (wrapId arg_wrapper meth_id)) inst_tv_tys = mkTyVarTys inst_tyvars @@ -1869,13 +1869,13 @@ tcMethods skol_info dfun_id clas tyvars dfun_ev_vars inst_tys where inst_loc' = noAnnSrcSpan inst_loc error_rhs dflags = L inst_loc' - $ HsApp noComments error_fun (error_msg dflags) + $ HsApp noExtField error_fun (error_msg dflags) error_fun = L inst_loc' $ wrapId (mkWpTyApps [ getRuntimeRep meth_tau, meth_tau]) nO_METHOD_BINDING_ERROR_ID error_msg dflags = L inst_loc' - (HsLit noComments (HsStringPrim NoSourceText + (HsLit noExtField (HsStringPrim NoSourceText (unsafeMkByteString (error_string dflags)))) meth_tau = classMethodInstTy sel_id inst_tys error_string dflags = showSDoc dflags diff --git a/compiler/GHC/Tc/TyCl/PatSyn.hs b/compiler/GHC/Tc/TyCl/PatSyn.hs index 69e9faa68ddd..714719deaa5c 100644 --- a/compiler/GHC/Tc/TyCl/PatSyn.hs +++ b/compiler/GHC/Tc/TyCl/PatSyn.hs @@ -1042,12 +1042,12 @@ tcPatToExpr args pat = go pat ; return $ ExplicitSum noExtField alt arity (noLocA expr) } - go1 (LitPat _ lit) = return $ HsLit noComments lit + go1 (LitPat _ lit) = return $ HsLit noExtField lit go1 (NPat _ (L _ n) mb_neg _) | Just (SyntaxExprRn neg) <- mb_neg = return $ unLoc $ foldl' nlHsApp (noLocA neg) - [noLocA (HsOverLit noAnn n)] - | otherwise = return $ HsOverLit noAnn n + [noLocA (HsOverLit noExtField n)] + | otherwise = return $ HsOverLit noExtField n go1 (SplicePat (HsUntypedSpliceTop _ pat) _) = go1 pat go1 (SplicePat (HsUntypedSpliceNested _) _) = panic "tcPatToExpr: invalid nested splice" go1 (EmbTyPat _ tp) = return $ HsEmbTy noExtField (hstp_to_hswc tp) @@ -1061,7 +1061,7 @@ tcPatToExpr args pat = go pat Nothing -> notInvertible p Just inverse -> fmap - (\ expr -> HsApp noAnn (wrapGenSpan inverse) (wrapGenSpan expr)) + (\ expr -> HsApp noExtField (wrapGenSpan inverse) (wrapGenSpan expr)) (go1 (unLoc pat)) -- The following patterns are not invertible. diff --git a/compiler/GHC/Tc/Utils/TcMType.hs b/compiler/GHC/Tc/Utils/TcMType.hs index 8b34b54adb8c..90706a594f7b 100644 --- a/compiler/GHC/Tc/Utils/TcMType.hs +++ b/compiler/GHC/Tc/Utils/TcMType.hs @@ -2371,11 +2371,11 @@ shortCutLit platform val res_ty where go_integral int@(IL src neg i) | isIntTy res_ty && platformInIntRange platform i - = Just (HsLit noAnn (HsInt noExtField int)) + = Just (HsLit noExtField (HsInt noExtField int)) | isWordTy res_ty && platformInWordRange platform i = Just (mkLit wordDataCon (HsWordPrim src i)) | isIntegerTy res_ty - = Just (HsLit noAnn (HsInteger src i res_ty)) + = Just (HsLit noExtField (HsInteger src i res_ty)) | otherwise = go_fractional (integralFractionalLit neg i) -- The 'otherwise' case is important @@ -2396,11 +2396,11 @@ shortCutLit platform val res_ty -- is less than 100, which ensures desugaring isn't slow. go_string src s - | isStringTy res_ty = Just (HsLit noAnn (HsString src s)) + | isStringTy res_ty = Just (HsLit noExtField (HsString src s)) | otherwise = Nothing mkLit :: DataCon -> HsLit GhcTc -> HsExpr GhcTc -mkLit con lit = HsApp noComments (nlHsDataCon con) (nlHsLit lit) +mkLit con lit = HsApp noExtField (nlHsDataCon con) (nlHsLit lit) ------------------------------ hsOverLitName :: OverLitVal -> Name diff --git a/compiler/GHC/Tc/Zonk/Type.hs b/compiler/GHC/Tc/Zonk/Type.hs index 0ac35fce036f..3cee66490243 100644 --- a/compiler/GHC/Tc/Zonk/Type.hs +++ b/compiler/GHC/Tc/Zonk/Type.hs @@ -864,7 +864,7 @@ zonkLTcSpecPrags ps ************************************************************************ -} -zonkMatchGroup :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnn NoEpAnns +zonkMatchGroup :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnCO => (LocatedA (body GhcTc) -> ZonkTcM (LocatedA (body GhcTc))) -> MatchGroup GhcTc (LocatedA (body GhcTc)) -> ZonkTcM (MatchGroup GhcTc (LocatedA (body GhcTc))) @@ -878,7 +878,7 @@ zonkMatchGroup zBody (MG { mg_alts = L l ms , mg_ext = MatchGroupTc arg_tys' res_ty' origin }) } -zonkMatch :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnn NoEpAnns +zonkMatch :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnCO => (LocatedA (body GhcTc) -> ZonkTcM (LocatedA (body GhcTc))) -> LMatch GhcTc (LocatedA (body GhcTc)) -> ZonkTcM (LMatch GhcTc (LocatedA (body GhcTc))) @@ -889,7 +889,7 @@ zonkMatch zBody (L loc match@(Match { m_pats = pats ; return (L loc (match { m_pats = new_pats, m_grhss = new_grhss })) } ------------------------------------------------------------------------- -zonkGRHSs :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnn NoEpAnns +zonkGRHSs :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnCO => (LocatedA (body GhcTc) -> ZonkTcM (LocatedA (body GhcTc))) -> GRHSs GhcTc (LocatedA (body GhcTc)) -> ZonkTcM (GRHSs GhcTc (LocatedA (body GhcTc))) diff --git a/compiler/GHC/ThToHs.hs b/compiler/GHC/ThToHs.hs index 1936b5bb17f8..d2ae5f8085a8 100644 --- a/compiler/GHC/ThToHs.hs +++ b/compiler/GHC/ThToHs.hs @@ -1028,9 +1028,9 @@ cvtl e = wrapLA (cvt e) cvt (VarE s) = do { s' <- vName s; wrapParLA (HsVar noExtField) s' } cvt (ConE s) = do { s' <- cName s; wrapParLA (HsVar noExtField) s' } cvt (LitE l) - | overloadedLit l = go cvtOverLit (HsOverLit noComments) + | overloadedLit l = go cvtOverLit (HsOverLit noExtField) (hsOverLitNeedsParens appPrec) - | otherwise = go cvtLit (HsLit noComments) + | otherwise = go cvtLit (HsLit noExtField) (hsLitNeedsParens appPrec) where go :: (Lit -> CvtM (l GhcPs)) @@ -1043,7 +1043,7 @@ cvtl e = wrapLA (cvt e) if is_compound_lit l' then wrapParLA gHsPar e' else pure e' cvt (AppE e1 e2) = do { e1' <- parenthesizeHsExpr opPrec <$> cvtl e1 ; e2' <- parenthesizeHsExpr appPrec <$> cvtl e2 - ; return $ HsApp noComments e1' e2' } + ; return $ HsApp noExtField e1' e2' } cvt (AppTypeE e t) = do { e' <- parenthesizeHsExpr opPrec <$> cvtl e ; t' <- parenthesizeHsType appPrec <$> cvtType t ; return $ HsAppType noAnn e' @@ -1090,7 +1090,7 @@ cvtl e = wrapLA (cvt e) ; return $ ArithSeq noAnn Nothing dd' } cvt (ListE xs) | Just s <- allCharLs xs = do { l' <- cvtLit (StringL s) - ; return (HsLit noComments l') } + ; return (HsLit noExtField l') } -- Note [Converting strings] | otherwise = do { xs' <- mapM cvtl xs ; return $ ExplicitList noAnn xs' @@ -1112,12 +1112,12 @@ cvtl e = wrapLA (cvt e) cvt (InfixE Nothing s (Just y)) = ensureValidOpExp s $ do { s' <- cvtl s; y' <- cvtl y ; wrapParLA gHsPar $ - SectionR noComments s' y' } + SectionR noExtField s' y' } -- See Note [Sections in HsSyn] in GHC.Hs.Expr cvt (InfixE (Just x) s Nothing ) = ensureValidOpExp s $ do { x' <- cvtl x; s' <- cvtl s ; wrapParLA gHsPar $ - SectionL noComments x' s' } + SectionL noExtField x' s' } cvt (InfixE Nothing s Nothing ) = ensureValidOpExp s $ do { s' <- cvtl s @@ -1153,15 +1153,15 @@ cvtl e = wrapLA (cvt e) -- constructor names - see #14627. { s' <- vcName s ; wrapParLA (HsVar noExtField) s' } - cvt (LabelE s) = return $ HsOverLabel noComments NoSourceText (fsLit s) - cvt (ImplicitParamVarE n) = do { n' <- ipName n; return $ HsIPVar noComments n' } + cvt (LabelE s) = return $ HsOverLabel noExtField NoSourceText (fsLit s) + cvt (ImplicitParamVarE n) = do { n' <- ipName n; return $ HsIPVar noExtField n' } cvt (GetFieldE exp f) = do { e' <- cvtl exp - ; return $ HsGetField noComments e' + ; return $ HsGetField noExtField e' (L noSrcSpanA (DotFieldOcc noAnn (L noSrcSpanA (FieldLabelString (fsLit f))))) } cvt (ProjectionE xs) = return $ HsProjection noAnn $ fmap (L noSrcSpanA . DotFieldOcc noAnn . L noSrcSpanA . FieldLabelString . fsLit) xs cvt (TypedSpliceE e) = do { e' <- parenthesizeHsExpr appPrec <$> cvtl e - ; return $ HsTypedSplice (noAnn, noAnn) e' } + ; return $ HsTypedSplice [] e' } cvt (TypedBracketE e) = do { e' <- cvtl e ; return $ HsTypedBracket noAnn e' } cvt (TypeE t) = do { t' <- cvtType t @@ -1641,7 +1641,7 @@ cvtTypeKind typeOrKind ty _ -> return $ parenthesizeHsType sigPrec x' let y'' = parenthesizeHsType sigPrec y' - returnLA (HsFunTy noAnn (HsUnrestrictedArrow noAnn) x'' y'') + returnLA (HsFunTy noExtField (HsUnrestrictedArrow noAnn) x'' y'') | otherwise -> do { fun_tc <- returnLA $ getRdrName unrestrictedFunTyCon ; mk_apps (HsTyVar noAnn NotPromoted fun_tc) tys' } @@ -1656,7 +1656,7 @@ cvtTypeKind typeOrKind ty parenthesizeHsType sigPrec x' let y'' = parenthesizeHsType sigPrec y' w'' = hsTypeToArrow w' - returnLA (HsFunTy noAnn w'' x'' y'') + returnLA (HsFunTy noExtField w'' x'' y'') | otherwise -> do { fun_tc <- returnLA $ getRdrName fUNTyCon ; mk_apps (HsTyVar noAnn NotPromoted fun_tc) tys' } diff --git a/testsuite/tests/ghc-api/exactprint/T22919.stderr b/testsuite/tests/ghc-api/exactprint/T22919.stderr index 510337bfd8d1..82684b25faa8 100644 --- a/testsuite/tests/ghc-api/exactprint/T22919.stderr +++ b/testsuite/tests/ghc-api/exactprint/T22919.stderr @@ -80,11 +80,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { T22919.hs:2:1-9 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -124,11 +120,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { T22919.hs:2:7-9 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsChar (SourceText 's') ('s'))))))] diff --git a/testsuite/tests/ghc-api/exactprint/Test20239.stderr b/testsuite/tests/ghc-api/exactprint/Test20239.stderr index f309eda6e2e6..763d7a095ce4 100644 --- a/testsuite/tests/ghc-api/exactprint/Test20239.stderr +++ b/testsuite/tests/ghc-api/exactprint/Test20239.stderr @@ -58,26 +58,23 @@ (EpaComment (EpaLineComment "-- Running over two lines") - { Test20239.hs:3:1-28 }))])) + { Test20239.hs:3:1-28 })) + ,(L + (EpaSpan + { Test20239.hs:6:34-70 }) + (EpaComment + (EpaLineComment + "-- ^ Run a query against the database") + { Test20239.hs:5:51-55 }))])) (InstD (NoExtField) (DataFamInstD (NoExtField) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { Test20239.hs:(5,1)-(7,86) }) - [(AddEpAnn AnnData (EpaSpan { Test20239.hs:5:1-4 })) - ,(AddEpAnn AnnInstance (EpaSpan { Test20239.hs:5:6-13 })) - ,(AddEpAnn AnnEqual (EpaSpan { Test20239.hs:5:34 }))] - (EpaComments - [(L - (EpaSpan - { Test20239.hs:6:34-70 }) - (EpaComment - (EpaLineComment - "-- ^ Run a query against the database") - { Test20239.hs:5:51-55 }))])) + [(AddEpAnn AnnData (EpaSpan { Test20239.hs:5:1-4 })) + ,(AddEpAnn AnnInstance (EpaSpan { Test20239.hs:5:6-13 })) + ,(AddEpAnn AnnEqual (EpaSpan { Test20239.hs:5:34 }))] (L (EpAnn (EpaSpan { Test20239.hs:5:15-20 }) @@ -99,11 +96,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:5:22-32 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -131,11 +124,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { Test20239.hs:5:36-55 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { Test20239.hs:5:36-49 }) @@ -163,11 +152,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:5:51-55 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -187,11 +172,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { Test20239.hs:7:36-86 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { Test20239.hs:7:36-48 }) @@ -219,14 +200,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { Test20239.hs:7:50-86 }) - (AnnParen - (AnnParens) - (EpaSpan { Test20239.hs:7:50 }) - (EpaSpan { Test20239.hs:7:86 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { Test20239.hs:7:50 }) + (EpaSpan { Test20239.hs:7:86 })) (L (EpAnn (EpaSpan { Test20239.hs:7:51-85 }) @@ -235,11 +212,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { Test20239.hs:7:51-85 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { Test20239.hs:7:62-63 }) @@ -252,11 +225,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:7:51-60 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -284,11 +253,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:7:65-66 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -307,14 +272,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { Test20239.hs:7:68-85 }) - (AnnParen - (AnnParens) - (EpaSpan { Test20239.hs:7:68 }) - (EpaSpan { Test20239.hs:7:85 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { Test20239.hs:7:68 }) + (EpaSpan { Test20239.hs:7:85 })) (L (EpAnn (EpaSpan { Test20239.hs:7:69-84 }) @@ -341,11 +302,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:7:69-74 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -364,11 +321,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { Test20239.hs:7:76-81 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -387,14 +340,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { Test20239.hs:7:83-84 }) - (AnnParen - (AnnParens) - (EpaSpan { Test20239.hs:7:83 }) - (EpaSpan { Test20239.hs:7:84 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { Test20239.hs:7:83 }) + (EpaSpan { Test20239.hs:7:84 })) (HsBoxedOrConstraintTuple) [])))))))))))))]) (Nothing)))]) diff --git a/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr b/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr index dd302e531e9f..98069a691e54 100644 --- a/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr +++ b/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr @@ -92,11 +92,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { ZeroWidthSemi.hs:6:1-5 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -136,11 +132,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { ZeroWidthSemi.hs:6:5 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr index 5038369a76a0..5782d6f3b521 100644 --- a/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr +++ b/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr @@ -44,12 +44,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:(5,1)-(6,16) }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:5:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:5:12-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:5:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:5:12-16 }))] (EpVirtualBraces (3)) (NoAnnSortKey)) @@ -73,11 +69,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:5:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -99,13 +91,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544.hs:6:3-16 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:6:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:6:6-7 })) + []) (False) [(L (EpAnn @@ -135,11 +123,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { T17544.hs:6:9-16 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { T17544.hs:6:11-12 }) @@ -152,11 +136,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:6:9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -175,11 +155,7 @@ (EpaComments [])) (HsDocTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T17544.hs:6:14-16 }) @@ -188,11 +164,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:6:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -231,12 +203,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:(9,1)-(10,16) }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:9:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:9:12-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:9:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:9:12-16 }))] (EpVirtualBraces (3)) (NoAnnSortKey)) @@ -260,11 +228,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:9:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -286,13 +250,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544.hs:10:3-16 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:10:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:10:6-7 })) + []) (False) [(L (EpAnn @@ -322,11 +282,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { T17544.hs:10:9-16 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { T17544.hs:10:11-12 }) @@ -339,11 +295,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:10:9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -362,11 +314,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:10:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -412,12 +360,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:(13,1)-(14,16) }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:13:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:13:12-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:13:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:13:12-16 }))] (EpVirtualBraces (3)) (NoAnnSortKey)) @@ -441,11 +385,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:13:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -467,13 +407,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544.hs:14:3-16 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:14:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:14:6-7 })) + []) (False) [(L (EpAnn @@ -503,11 +439,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { T17544.hs:14:9-16 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { T17544.hs:14:11-12 }) @@ -520,11 +452,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:14:9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -543,11 +471,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:14:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -596,12 +520,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:(17,1)-(20,16) }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:17:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:17:12-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:17:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:17:12-16 }))] (EpVirtualBraces (3)) (NoAnnSortKey)) @@ -625,11 +545,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:17:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -651,13 +567,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544.hs:18:3-16 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:18:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:18:6-7 })) + []) (False) [(L (EpAnn @@ -687,11 +599,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { T17544.hs:18:9-16 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { T17544.hs:18:11-12 }) @@ -704,11 +612,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:18:9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -727,11 +631,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:18:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -750,13 +650,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544.hs:20:3-16 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:20:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:20:6-7 })) + []) (False) [(L (EpAnn @@ -786,11 +682,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { T17544.hs:20:9-16 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { T17544.hs:20:11-12 }) @@ -803,11 +695,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:20:9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -826,11 +714,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:20:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -857,14 +741,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:22:1-30 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:22:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:22:12-16 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:22:18 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:22:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:22:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:22:12-16 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:22:18 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:22:30 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:22:18 })) @@ -891,11 +771,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:22:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -920,11 +796,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:22:20-28 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:22:20-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:22:20-23 }))] (DataFamily) (NotTopLevel) (L @@ -946,11 +818,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:22:28 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -988,12 +856,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(23,1)-(25,18) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:23:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:23:17-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:23:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:23:17-21 }))] (NoAnnSortKey)) (L (EpAnn @@ -1023,11 +887,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:23:10-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1046,11 +906,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:23:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1074,12 +930,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(24,3)-(25,18) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:24:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:24:15-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:24:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:24:15-19 }))] (L (EpAnn (EpaSpan { T17544.hs:24:8-9 }) @@ -1101,11 +953,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:24:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1136,11 +984,7 @@ (EpUniTok (EpaSpan { T17544.hs:25:10-11 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:25:5-18 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -1182,11 +1026,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:25:13-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1205,11 +1045,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:25:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1234,14 +1070,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:28:1-30 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:28:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:28:12-16 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:28:18 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:28:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:28:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:28:12-16 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:28:18 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:28:30 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:28:18 })) @@ -1268,11 +1100,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:28:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1297,11 +1125,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:28:20-28 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:28:20-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:28:20-23 }))] (DataFamily) (NotTopLevel) (L @@ -1323,11 +1147,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:28:28 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1365,12 +1185,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(29,1)-(31,18) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:29:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:29:17-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:29:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:29:17-21 }))] (NoAnnSortKey)) (L (EpAnn @@ -1400,11 +1216,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:29:10-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1423,11 +1235,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:29:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1451,12 +1259,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(30,3)-(31,18) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:30:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:30:15-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:30:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:30:15-19 }))] (L (EpAnn (EpaSpan { T17544.hs:30:8-9 }) @@ -1478,11 +1282,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:30:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1513,11 +1313,7 @@ (EpUniTok (EpaSpan { T17544.hs:31:10-11 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:31:5-18 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -1559,11 +1355,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:31:13-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1582,11 +1374,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:31:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1611,14 +1399,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:34:1-30 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:34:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:34:12-16 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:34:18 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:34:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:34:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:34:12-16 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:34:18 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:34:30 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:34:18 })) @@ -1645,11 +1429,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:34:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1674,11 +1454,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:34:20-28 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:34:20-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:34:20-23 }))] (DataFamily) (NotTopLevel) (L @@ -1700,11 +1476,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:34:28 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1742,12 +1514,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(35,1)-(37,18) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:35:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:35:17-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:35:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:35:17-21 }))] (NoAnnSortKey)) (L (EpAnn @@ -1777,11 +1545,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:35:10-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1800,11 +1564,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:35:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1828,12 +1588,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(36,3)-(37,18) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:36:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:36:15-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:36:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:36:15-19 }))] (L (EpAnn (EpaSpan { T17544.hs:36:8-9 }) @@ -1855,11 +1611,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:36:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1890,11 +1642,7 @@ (EpUniTok (EpaSpan { T17544.hs:37:10-11 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:37:5-18 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -1936,11 +1684,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:37:13-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1959,11 +1703,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:37:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1988,14 +1728,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:40:1-30 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:40:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:40:12-16 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:40:18 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:40:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:40:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:40:12-16 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:40:18 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:40:30 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:40:18 })) @@ -2022,11 +1758,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:40:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2051,11 +1783,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:40:20-28 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:40:20-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:40:20-23 }))] (DataFamily) (NotTopLevel) (L @@ -2077,11 +1805,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:40:28 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2119,12 +1843,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(41,1)-(43,18) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:41:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:41:17-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:41:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:41:17-21 }))] (NoAnnSortKey)) (L (EpAnn @@ -2154,11 +1874,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:41:10-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2177,11 +1893,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:41:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2205,12 +1917,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(42,3)-(43,18) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:42:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:42:15-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:42:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:42:15-19 }))] (L (EpAnn (EpaSpan { T17544.hs:42:8-9 }) @@ -2232,11 +1940,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:42:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2267,11 +1971,7 @@ (EpUniTok (EpaSpan { T17544.hs:43:10-11 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:43:5-18 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -2313,11 +2013,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:43:13-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2336,11 +2032,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:43:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2365,14 +2057,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:46:1-30 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:46:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:46:12-16 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:46:18 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:46:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:46:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:46:12-16 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:46:18 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:46:30 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:46:18 })) @@ -2399,11 +2087,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:46:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2428,11 +2112,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:46:20-28 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:46:20-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:46:20-23 }))] (DataFamily) (NotTopLevel) (L @@ -2454,11 +2134,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:46:28 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2496,12 +2172,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(47,1)-(49,18) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:47:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:47:17-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:47:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:47:17-21 }))] (NoAnnSortKey)) (L (EpAnn @@ -2531,11 +2203,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:47:10-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2554,11 +2222,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:47:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2582,12 +2246,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(48,3)-(49,18) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:48:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:48:15-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:48:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:48:15-19 }))] (L (EpAnn (EpaSpan { T17544.hs:48:8-9 }) @@ -2609,11 +2269,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:48:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2644,11 +2300,7 @@ (EpUniTok (EpaSpan { T17544.hs:49:10-11 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:49:5-18 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -2690,11 +2342,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:49:13-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2713,11 +2361,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:49:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2742,14 +2386,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544.hs:52:1-32 }) - [(AddEpAnn AnnClass (EpaSpan { T17544.hs:52:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:52:13-17 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:52:19 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:52:32 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544.hs:52:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:52:13-17 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T17544.hs:52:19 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T17544.hs:52:32 }))] (EpExplicitBraces (EpTok (EpaSpan { T17544.hs:52:19 })) @@ -2776,11 +2416,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:52:11 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2805,11 +2441,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaSpan { T17544.hs:52:21-30 }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:52:21-24 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:52:21-24 }))] (DataFamily) (NotTopLevel) (L @@ -2831,11 +2463,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544.hs:52:30 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2873,12 +2501,8 @@ (ClsInstDecl ((,,) (Nothing) - (EpAnn - (EpaSpan { T17544.hs:(53,1)-(55,20) }) - [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:53:1-8 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:53:18-22 }))] - (EpaComments - [])) + [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:53:1-8 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:53:18-22 }))] (NoAnnSortKey)) (L (EpAnn @@ -2908,11 +2532,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:53:10-12 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2931,11 +2551,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:53:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2959,12 +2575,8 @@ [])) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { T17544.hs:(54,3)-(55,20) }) - [(AddEpAnn AnnData (EpaSpan { T17544.hs:54:3-6 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:54:16-20 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544.hs:54:3-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:54:16-20 }))] (L (EpAnn (EpaSpan { T17544.hs:54:8-10 }) @@ -2986,11 +2598,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:54:12-14 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -3021,11 +2629,7 @@ (EpUniTok (EpaSpan { T17544.hs:55:11-12 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544.hs:55:5-20 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -3067,11 +2671,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:55:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -3090,11 +2690,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544.hs:55:18-20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr index 76bd8bb57985..4b58f6488448 100644 --- a/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr +++ b/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr @@ -55,12 +55,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T17544_kw.hs:(15,1)-(16,20) }) - [(AddEpAnn AnnData (EpaSpan { T17544_kw.hs:15:1-4 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:16:3-7 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T17544_kw.hs:15:1-4 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:16:3-7 }))] (L (EpAnn (EpaSpan { T17544_kw.hs:15:6-8 }) @@ -93,11 +89,7 @@ (EpUniTok (EpaSpan { T17544_kw.hs:16:15-16 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544_kw.hs:16:9-20 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -130,11 +122,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544_kw.hs:16:18-20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -169,12 +157,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T17544_kw.hs:(18,1)-(19,26) }) - [(AddEpAnn AnnNewtype (EpaSpan { T17544_kw.hs:18:1-7 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:19:3-7 }))] - (EpaComments - [])) + [(AddEpAnn AnnNewtype (EpaSpan { T17544_kw.hs:18:1-7 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:19:3-7 }))] (L (EpAnn (EpaSpan { T17544_kw.hs:18:9-11 }) @@ -206,11 +190,7 @@ (EpUniTok (EpaSpan { T17544_kw.hs:19:15-16 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T17544_kw.hs:19:9-26 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -247,14 +227,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { T17544_kw.hs:19:18-19 }) - (AnnParen - (AnnParens) - (EpaSpan { T17544_kw.hs:19:18 }) - (EpaSpan { T17544_kw.hs:19:19 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { T17544_kw.hs:19:18 }) + (EpaSpan { T17544_kw.hs:19:19 })) (HsBoxedOrConstraintTuple) [])))]) (L @@ -265,11 +241,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544_kw.hs:19:24-26 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -305,12 +277,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T17544_kw.hs:(21,1)-(24,18) }) - [(AddEpAnn AnnClass (EpaSpan { T17544_kw.hs:21:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:23:3-7 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T17544_kw.hs:21:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:23:3-7 }))] (EpVirtualBraces (5)) (NoAnnSortKey)) @@ -334,11 +302,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T17544_kw.hs:21:11 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -360,13 +324,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { T17544_kw.hs:24:5-18 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T17544_kw.hs:24:15-16 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T17544_kw.hs:24:15-16 })) + []) (False) [(L (EpAnn @@ -396,11 +356,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T17544_kw.hs:24:18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr index 0ee892b06d89..1e0e33d80cff 100644 --- a/testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr +++ b/testsuite/tests/haddock/should_compile_flag_haddock/T24221.stderr @@ -43,12 +43,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(3,1)-(9,15) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:3:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:5:3 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:3:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:5:3 }))] (L (EpAnn (EpaSpan { T24221.hs:3:6-9 }) @@ -78,11 +74,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:5:5-12 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:5:5-8 }) @@ -110,11 +102,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:5:10-12 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -147,11 +135,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:7:5-12 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:7:5-8 }) @@ -179,11 +163,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:7:10-12 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -215,11 +195,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:9:5-15 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:9:9-10 }) @@ -246,11 +222,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:9:5-7 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -274,11 +246,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:9:12-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -313,12 +281,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(11,1)-(12,13) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:11:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:11:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:11:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:11:11 }))] (L (EpAnn (EpaSpan { T24221.hs:11:6-9 }) @@ -347,11 +311,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:12:3-13 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:12:7-8 }) @@ -378,11 +338,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:12:3-5 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -406,11 +362,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:12:10-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -445,12 +397,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(14,1)-(17,6) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:14:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:14:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:14:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:14:11 }))] (L (EpAnn (EpaSpan { T24221.hs:14:6-9 }) @@ -479,11 +427,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:(15,3)-(17,6) }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:16:3-4 }) @@ -510,11 +454,7 @@ (EpaComments [])) (HsDocTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:15:3-5 }) @@ -523,11 +463,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:15:3-5 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -563,11 +499,7 @@ (EpaComments [])) (HsDocTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:17:3-6 }) @@ -576,11 +508,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:17:3-6 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -627,12 +555,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(19,1)-(25,6) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:19:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:19:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:19:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:19:11 }))] (L (EpAnn (EpaSpan { T24221.hs:19:6-9 }) @@ -661,11 +585,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:(21,3)-(25,6) }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:23:3-4 }) @@ -692,11 +612,7 @@ (EpaComments [])) (HsDocTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:21:3-5 }) @@ -705,11 +621,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:21:3-5 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -745,11 +657,7 @@ (EpaComments [])) (HsDocTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:25:3-6 }) @@ -758,11 +666,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:25:3-6 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -809,12 +713,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(27,1)-(29,22) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:27:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:27:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:27:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:27:11 }))] (L (EpAnn (EpaSpan { T24221.hs:27:6-9 }) @@ -843,11 +743,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:(28,3)-(29,22) }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:28:3-8 }) @@ -884,11 +780,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:28:12-20 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:28:15-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:28:15-16 }))] [(L (EpAnn (EpaSpan { T24221.hs:28:12-13 }) @@ -915,11 +807,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:28:18-20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -951,11 +839,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:29:12-20 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:29:15-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:29:15-16 }))] [(L (EpAnn (EpaSpan { T24221.hs:29:12-13 }) @@ -982,11 +866,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:29:18-20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1022,12 +902,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(31,1)-(34,17) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:31:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:31:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:31:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:31:11 }))] (L (EpAnn (EpaSpan { T24221.hs:31:6-9 }) @@ -1056,11 +932,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:(32,3)-(34,17) }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:32:3-8 }) @@ -1097,11 +969,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:33:7-15 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:33:10-11 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:33:10-11 }))] [(L (EpAnn (EpaSpan { T24221.hs:33:7-8 }) @@ -1128,11 +996,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:33:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1164,11 +1028,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:34:7-15 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:34:10-11 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:34:10-11 }))] [(L (EpAnn (EpaSpan { T24221.hs:34:7-8 }) @@ -1195,11 +1055,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:34:13-15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1247,12 +1103,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T24221.hs:(36,1)-(43,3) }) - [(AddEpAnn AnnData (EpaSpan { T24221.hs:36:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:36:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T24221.hs:36:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T24221.hs:36:11 }))] (L (EpAnn (EpaSpan { T24221.hs:36:6-9 }) @@ -1281,11 +1133,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T24221.hs:(38,3)-(43,3) }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T24221.hs:38:3-8 }) @@ -1322,11 +1170,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:40:5-13 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:40:8-9 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:40:8-9 }))] [(L (EpAnn (EpaSpan { T24221.hs:40:5-6 }) @@ -1353,11 +1197,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:40:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1389,11 +1229,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaSpan { T24221.hs:42:5-13 }) - [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:42:8-9 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { T24221.hs:42:8-9 }))] [(L (EpAnn (EpaSpan { T24221.hs:42:5-6 }) @@ -1420,11 +1256,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T24221.hs:42:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/module/mod185.stderr b/testsuite/tests/module/mod185.stderr index ea36d59b7027..038059ad34b1 100644 --- a/testsuite/tests/module/mod185.stderr +++ b/testsuite/tests/module/mod185.stderr @@ -101,11 +101,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { mod185.hs:5:1-24 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr index 5fc349913805..a4b04cd55998 100644 --- a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr @@ -78,12 +78,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { DumpParsedAst.hs:7:1-30 }) - [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:7:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:7:12 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:7:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:7:12 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:7:6-10 }) @@ -113,11 +109,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { DumpParsedAst.hs:7:14-17 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpParsedAst.hs:7:14-17 }) @@ -142,11 +134,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { DumpParsedAst.hs:7:21-30 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpParsedAst.hs:7:21-24 }) @@ -174,11 +162,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:7:26-30 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -201,12 +185,8 @@ (KindSigD (NoExtField) (StandaloneKindSig - (EpAnn - (EpaSpan { DumpParsedAst.hs:9:1-27 }) - [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:9:1-4 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:9:13-14 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:9:1-4 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:9:13-14 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:9:6-11 }) @@ -235,11 +215,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:9:16-27 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:9:20-21 }) @@ -252,14 +228,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:9:16-18 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpParsedAst.hs:9:16 }) - (EpaSpan { DumpParsedAst.hs:9:18 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpParsedAst.hs:9:16 }) + (EpaSpan { DumpParsedAst.hs:9:18 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:9:17 }) @@ -268,11 +240,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:9:17 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -291,11 +259,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:9:23-27 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -318,14 +282,10 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaSpan { DumpParsedAst.hs:(10,1)-(12,24) }) - [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:10:1-4 })) - ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:10:6-11 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:32-33 })) - ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:10:41-45 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:10:1-4 })) + ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:10:6-11 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:32-33 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:10:41-45 }))] (ClosedTypeFamily (Just [(L @@ -336,11 +296,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:3-36 }) - [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:11:19 }))] - (EpaComments - [])) + [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:11:19 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:11:3-8 }) @@ -362,14 +318,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:10-17 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:11:10 }) - (EpaSpan { DumpParsedAst.hs:11:17 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:11:10 }) + (EpaSpan { DumpParsedAst.hs:11:17 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:11:11-16 }) @@ -378,11 +330,7 @@ (EpaComments [])) (HsOpTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -392,11 +340,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -424,11 +368,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:15-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -457,11 +397,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:21-24 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -480,14 +416,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:26-36 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:11:26 }) - (EpaSpan { DumpParsedAst.hs:11:36 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:11:26 }) + (EpaSpan { DumpParsedAst.hs:11:36 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:11:27-35 }) @@ -505,11 +437,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:27-32 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -528,11 +456,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:11:34-35 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -551,11 +475,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaSpan { DumpParsedAst.hs:12:3-24 }) - [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:12:19 }))] - (EpaComments - [])) + [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:12:19 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:12:3-8 }) @@ -577,13 +497,9 @@ (EpaComments [])) (HsExplicitListTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:12:10-12 }) - [(AddEpAnn AnnSimpleQuote (EpaSpan { DumpParsedAst.hs:12:10 })) - ,(AddEpAnn AnnOpenS (EpaSpan { DumpParsedAst.hs:12:11 })) - ,(AddEpAnn AnnCloseS (EpaSpan { DumpParsedAst.hs:12:12 }))] - (EpaComments - [])) + [(AddEpAnn AnnSimpleQuote (EpaSpan { DumpParsedAst.hs:12:10 })) + ,(AddEpAnn AnnOpenS (EpaSpan { DumpParsedAst.hs:12:11 })) + ,(AddEpAnn AnnCloseS (EpaSpan { DumpParsedAst.hs:12:12 }))] (IsPromoted) [])))] (Prefix) @@ -595,11 +511,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:12:21-24 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -630,13 +542,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:10:20-30 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:24-25 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:10:20 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:10:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:10:20 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:10:30 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:10:24-25 }))] (HsBndrRequired (NoExtField)) (L @@ -656,14 +564,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:10:27-29 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpParsedAst.hs:10:27 }) - (EpaSpan { DumpParsedAst.hs:10:29 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpParsedAst.hs:10:27 }) + (EpaSpan { DumpParsedAst.hs:10:29 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:10:28 }) @@ -672,11 +576,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:10:28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -704,11 +604,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:10:35-39 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -730,12 +626,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:1-29 }) - [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:15:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:15:19 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:15:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:15:19 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:15:6 }) @@ -755,11 +647,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:8 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -779,13 +667,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:10-17 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:15:13-14 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:15:10 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:15:17 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:15:10 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:15:17 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:15:13-14 }))] (HsBndrRequired (NoExtField)) (L @@ -805,11 +689,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -836,11 +716,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:21-29 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpParsedAst.hs:15:21-23 }) @@ -868,14 +744,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:25-29 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:15:25 }) - (EpaSpan { DumpParsedAst.hs:15:29 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:15:25 }) + (EpaSpan { DumpParsedAst.hs:15:29 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:15:26-28 }) @@ -893,11 +765,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:26 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -916,11 +784,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:15:28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -943,12 +807,8 @@ (KindSigD (NoExtField) (StandaloneKindSig - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:1-35 }) - [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:9-10 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:9-10 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:17:6-7 }) @@ -977,11 +837,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:12-35 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:17:14-15 }) @@ -994,11 +850,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:12 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1017,11 +869,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:17-35 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:17:29-30 }) @@ -1034,14 +882,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:17-27 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:17:17 }) - (EpaSpan { DumpParsedAst.hs:17:27 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:17:17 }) + (EpaSpan { DumpParsedAst.hs:17:27 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:17:18-26 }) @@ -1050,11 +894,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:18-26 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:17:20-21 }) @@ -1067,11 +907,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1090,11 +926,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:23-26 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1113,11 +945,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:17:32-35 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1140,14 +968,10 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaSpan { DumpParsedAst.hs:(18,1)-(19,30) }) - [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:18:1-4 })) - ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:18:6-11 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:42-43 })) - ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:18:50-54 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:18:1-4 })) + ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:18:6-11 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:42-43 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:18:50-54 }))] (ClosedTypeFamily (Just [(L @@ -1158,11 +982,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:3-30 }) - [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:19:17 }))] - (EpaComments - [])) + [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:19:17 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:19:3-4 }) @@ -1185,11 +1005,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:7-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1210,11 +1026,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1235,11 +1047,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:15 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1287,11 +1095,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:19 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1310,11 +1114,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:22-26 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1333,11 +1133,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1356,11 +1152,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:19:30 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1391,13 +1183,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:16-23 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:19-20 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:16 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:23 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:16 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:23 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:19-20 }))] (HsBndrRequired (NoExtField)) (L @@ -1417,11 +1205,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:22 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1440,13 +1224,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:25-40 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:28-29 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:25 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:40 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:18:25 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:18:40 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:18:28-29 }))] (HsBndrRequired (NoExtField)) (L @@ -1466,11 +1246,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:31-39 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:18:33-34 }) @@ -1483,11 +1259,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:31 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1506,11 +1278,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:36-39 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1538,11 +1306,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:18:45-48 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1566,13 +1330,9 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:1-33 }) - [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:21:1-4 })) - ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:21:6-11 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:17-18 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:21:1-4 })) + ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:21:6-11 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:17-18 }))] (DataFamily) (TopLevel) (L @@ -1604,11 +1364,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:20-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:21:22-23 }) @@ -1621,11 +1377,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1644,11 +1396,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:25-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:21:27-28 }) @@ -1661,11 +1409,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:25 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1684,11 +1428,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:21:30-33 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1713,14 +1453,10 @@ (NoExtField) (DataFamInstDecl (FamEqn - (EpAnn - (EpaSpan { DumpParsedAst.hs:(22,1)-(23,45) }) - [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:22:1-7 })) - ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:22:9-16 })) - ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:39-40 })) - ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:22:62-66 }))] - (EpaComments - [])) + [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:22:1-7 })) + ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:22:9-16 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:39-40 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:22:62-66 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:22:18-20 }) @@ -1742,14 +1478,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:22-37 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:22:22 }) - (EpaSpan { DumpParsedAst.hs:22:37 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:22:22 }) + (EpaSpan { DumpParsedAst.hs:22:37 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:22:23-36 }) @@ -1758,11 +1490,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:23-36 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:25-26 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:22:25-26 }))] (L (EpAnn (EpaSpan { DumpParsedAst.hs:22:23 }) @@ -1771,11 +1499,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:23 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1794,11 +1518,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:28-36 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:22:30-31 }) @@ -1811,11 +1531,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1834,11 +1550,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:33-36 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1863,11 +1575,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:42-60 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:22:54-55 }) @@ -1880,14 +1588,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:42-52 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:22:42 }) - (EpaSpan { DumpParsedAst.hs:22:52 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:22:42 }) + (EpaSpan { DumpParsedAst.hs:22:52 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:22:43-51 }) @@ -1896,11 +1600,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:43-51 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:22:45-46 }) @@ -1913,11 +1613,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:43 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1936,11 +1632,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:48-51 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1959,11 +1651,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:22:57-60 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1987,11 +1675,7 @@ (EpUniTok (EpaSpan { DumpParsedAst.hs:23:7-8 }) (NormalSyntax)) - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:3-45 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -2028,14 +1712,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:10-34 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpParsedAst.hs:23:10 }) - (EpaSpan { DumpParsedAst.hs:23:34 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpParsedAst.hs:23:10 }) + (EpaSpan { DumpParsedAst.hs:23:34 })) (L (EpAnn (EpaSpan { DumpParsedAst.hs:23:11-33 }) @@ -2061,11 +1741,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:18-19 }) - [] - (EpaComments - [])) + [] (SpecifiedSpec) (L (EpAnn @@ -2084,11 +1760,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:22-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpParsedAst.hs:23:27-28 }) @@ -2110,11 +1782,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:22 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2133,11 +1801,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:24-25 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2165,11 +1829,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:30 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2188,11 +1848,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:32-33 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2229,11 +1885,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:39-41 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2252,11 +1904,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:43 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2275,11 +1923,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpParsedAst.hs:23:45 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2333,11 +1977,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpParsedAst.hs:25:1-23 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2377,11 +2017,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaSpan { DumpParsedAst.hs:25:8-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { DumpParsedAst.hs:25:8-15 }) @@ -2408,11 +2044,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpParsedAst.hs:25:17-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsString (SourceText "hello") {FastString: "hello"})))))))] diff --git a/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr b/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr index c96f2d5f06e4..ea80dcd38071 100644 --- a/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr +++ b/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr @@ -101,11 +101,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:9:1-7 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -145,11 +141,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:9:7 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral @@ -220,11 +212,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:(14,1)-(16,3) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -262,25 +250,21 @@ (AnnListItem []) (EpaComments - [])) + [(L + (EpaSpan + { DumpParsedAstComments.hs:15:3-19 }) + (EpaComment + (EpaLineComment + "-- normal comment") + { DumpParsedAstComments.hs:14:7-8 }))])) (HsDo - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:(14,7)-(16,3) }) - (AnnList - (Just - (EpaSpan { DumpParsedAstComments.hs:16:3 })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { DumpParsedAstComments.hs:14:7-8 }))] - []) - (EpaComments - [(L - (EpaSpan - { DumpParsedAstComments.hs:15:3-19 }) - (EpaComment - (EpaLineComment - "-- normal comment") - { DumpParsedAstComments.hs:14:7-8 }))])) + (AnnList + (Just + (EpaSpan { DumpParsedAstComments.hs:16:3 })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpParsedAstComments.hs:14:7-8 }))] + []) (DoExpr (Nothing)) (L @@ -312,11 +296,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:16:3 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral @@ -375,11 +355,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:19:1-23 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -419,11 +395,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:19:8-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { DumpParsedAstComments.hs:19:8-15 }) @@ -450,11 +422,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpParsedAstComments.hs:19:17-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsString (SourceText "hello") {FastString: "hello"})))))))] diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr index 224d5445cef3..87d8cd20e349 100644 --- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr @@ -49,11 +49,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -92,11 +88,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaSpan { DumpRenamedAst.hs:35:8-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:35:8-15 }) @@ -122,11 +114,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpRenamedAst.hs:35:17-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsString (SourceText "hello") {FastString: "hello"})))))))] @@ -225,11 +213,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -256,11 +240,7 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (ClosedTypeFamily (Just [(L @@ -271,11 +251,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:13:3-8 }) @@ -297,14 +273,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:13:11-16 }) @@ -313,11 +285,7 @@ (EpaComments [])) (HsOpTy - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -327,11 +295,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -357,11 +321,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -389,11 +349,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -411,14 +367,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:13:27-35 }) @@ -436,11 +388,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -458,11 +406,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -480,11 +424,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:14:3-8 }) @@ -517,11 +457,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -550,13 +486,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:12:20-30 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:12:24-25 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:12:20 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:12:30 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:12:20 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:12:30 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:12:24-25 }))] (HsBndrRequired (NoExtField)) (L @@ -575,14 +507,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:12:27-29 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpRenamedAst.hs:12:27 }) - (EpaSpan { DumpRenamedAst.hs:12:29 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpRenamedAst.hs:12:27 }) + (EpaSpan { DumpRenamedAst.hs:12:29 })) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:12:28 }) @@ -591,11 +519,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -622,11 +546,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -674,11 +594,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:11:16-27 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -689,14 +605,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:11:16-18 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpRenamedAst.hs:11:16 }) - (EpaSpan { DumpRenamedAst.hs:11:18 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpRenamedAst.hs:11:16 }) + (EpaSpan { DumpRenamedAst.hs:11:18 })) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:11:17 }) @@ -705,11 +617,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -727,11 +635,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -754,11 +658,7 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (DataFamily) (TopLevel) (L @@ -789,11 +689,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:16:20-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -804,11 +700,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -826,11 +718,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:16:25-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -841,11 +729,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -863,11 +747,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -891,11 +771,7 @@ (NoExtField) (DataFamInstDecl (FamEqn - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:19:18-20 }) @@ -917,14 +793,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:19:23-36 }) @@ -933,11 +805,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { DumpRenamedAst.hs:19:23-36 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:19:25-26 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:19:25-26 }))] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:19:23 }) @@ -946,11 +814,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -968,11 +832,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:19:28-36 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -983,11 +843,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1005,11 +861,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1033,11 +885,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:19:42-60 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -1048,14 +896,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:19:43-51 }) @@ -1064,11 +908,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:19:43-51 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -1079,11 +919,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1101,11 +937,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1123,11 +955,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1181,14 +1009,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:20:11-33 }) @@ -1214,11 +1038,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:20:18-19 }) - [] - (EpaComments - [])) + [] (SpecifiedSpec) (L (EpAnn @@ -1236,11 +1056,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:20:22-33 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -1260,11 +1076,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1282,11 +1094,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1313,11 +1121,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1335,11 +1139,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1375,11 +1175,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1397,11 +1193,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1419,11 +1211,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1468,11 +1256,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:22:8 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1491,13 +1275,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:22:10-17 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:22:13-14 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:22:10 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:22:17 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:22:10 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:22:17 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:22:13-14 }))] (HsBndrRequired (NoExtField)) (L @@ -1516,11 +1296,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1571,14 +1347,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:22:26-28 }) @@ -1596,11 +1368,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1618,11 +1386,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1649,11 +1413,7 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (ClosedTypeFamily (Just [(L @@ -1664,11 +1424,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:26:3-4 }) @@ -1690,11 +1446,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1714,11 +1466,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1738,11 +1486,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1788,11 +1532,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1810,11 +1550,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1832,11 +1568,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1854,11 +1586,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1887,13 +1615,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:25:16-23 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:19-20 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:16 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:23 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:16 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:23 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:19-20 }))] (HsBndrRequired (NoExtField)) (L @@ -1912,11 +1636,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1934,13 +1654,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:25:25-40 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:28-29 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:25 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:40 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:25:25 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:25:40 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:25:28-29 }))] (HsBndrRequired (NoExtField)) (L @@ -1959,11 +1675,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:25:31-39 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -1974,11 +1686,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1996,11 +1704,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2027,11 +1731,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2079,11 +1779,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:24:12-35 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -2094,11 +1790,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2116,11 +1808,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:24:17-35 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -2131,14 +1819,10 @@ (EpaComments [])) (HsParTy - (EpAnn + (AnnParen + (AnnParens) (EpaDelta (SameLine 0) []) - (AnnParen - (AnnParens) - (EpaDelta (SameLine 0) []) - (EpaDelta (SameLine 0) [])) - (EpaComments - [])) + (EpaDelta (SameLine 0) [])) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:24:18-26 }) @@ -2147,11 +1831,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:24:18-26 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (NoExtField)) (L @@ -2162,11 +1842,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2184,11 +1860,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2206,11 +1878,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2252,11 +1920,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:28:9 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2280,11 +1944,7 @@ (EpaComments [])) (FamilyDecl - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (OpenTypeFamily) (NotTopLevel) (L @@ -2305,11 +1965,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:29:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2328,11 +1984,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { DumpRenamedAst.hs:29:12 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -2396,11 +2048,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2418,14 +2066,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:31:12-14 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpRenamedAst.hs:31:12 }) - (EpaSpan { DumpRenamedAst.hs:31:14 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpRenamedAst.hs:31:12 }) + (EpaSpan { DumpRenamedAst.hs:31:14 })) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:31:13 }) @@ -2434,11 +2078,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2459,17 +2099,9 @@ (EpaComments [])) (TyFamInstDecl - (EpAnn - (EpaSpan { DumpRenamedAst.hs:32:3-27 }) - [(AddEpAnn AnnType (EpaSpan { DumpRenamedAst.hs:32:3-6 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { DumpRenamedAst.hs:32:3-6 }))] (FamEqn - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpRenamedAst.hs:32:8 }) @@ -2490,14 +2122,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { DumpRenamedAst.hs:32:10-12 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { DumpRenamedAst.hs:32:10 }) - (EpaSpan { DumpRenamedAst.hs:32:12 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { DumpRenamedAst.hs:32:10 }) + (EpaSpan { DumpRenamedAst.hs:32:12 })) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:32:11 }) @@ -2506,11 +2134,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2530,11 +2154,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2571,11 +2191,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2593,11 +2209,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2615,11 +2227,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -2772,11 +2380,7 @@ (IEThingAbs ((,) (Nothing) - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - []))) + []) (L (EpAnn (EpaSpan { DumpRenamedAst.hs:7:19-22 }) diff --git a/testsuite/tests/parser/should_compile/DumpSemis.stderr b/testsuite/tests/parser/should_compile/DumpSemis.stderr index 65b8903d7e8b..c60897d6d2ae 100644 --- a/testsuite/tests/parser/should_compile/DumpSemis.stderr +++ b/testsuite/tests/parser/should_compile/DumpSemis.stderr @@ -151,13 +151,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { DumpSemis.hs:9:1-12 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:9:5-6 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:9:5-6 })) + []) [(L (EpAnn (EpaSpan { DumpSemis.hs:9:1-3 }) @@ -197,11 +193,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:9:8-9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -220,14 +212,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { DumpSemis.hs:9:11-12 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpSemis.hs:9:11 }) - (EpaSpan { DumpSemis.hs:9:12 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:9:11 }) + (EpaSpan { DumpSemis.hs:9:12 })) (HsBoxedOrConstraintTuple) [])))))))))) ,(L @@ -276,11 +264,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:(10,1)-(12,3) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -320,17 +304,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { DumpSemis.hs:(10,7)-(12,3) }) - (AnnList - (Just - (EpaSpan { DumpSemis.hs:(11,3)-(12,3) })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:10:7-8 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { DumpSemis.hs:(11,3)-(12,3) })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:10:7-8 }))] + []) (DoExpr (Nothing)) (L @@ -362,17 +342,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { DumpSemis.hs:11:3-15 }) - (AnnList - (Just - (EpaSpan { DumpSemis.hs:11:6-15 })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:11:3-4 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { DumpSemis.hs:11:6-15 })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:11:3-4 }))] + []) (DoExpr (Nothing)) (L @@ -464,13 +440,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { DumpSemis.hs:14:1-12 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:14:5-6 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:14:5-6 })) + []) [(L (EpAnn (EpaSpan { DumpSemis.hs:14:1-3 }) @@ -510,11 +482,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:14:8-9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -533,14 +501,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { DumpSemis.hs:14:11-12 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpSemis.hs:14:11 }) - (EpaSpan { DumpSemis.hs:14:12 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:14:11 }) + (EpaSpan { DumpSemis.hs:14:12 })) (HsBoxedOrConstraintTuple) [])))))))))) ,(L @@ -591,11 +555,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:(15,1)-(19,3) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -635,17 +595,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { DumpSemis.hs:(15,7)-(19,3) }) - (AnnList - (Just - (EpaSpan { DumpSemis.hs:(16,3)-(19,3) })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:15:7-8 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { DumpSemis.hs:(16,3)-(19,3) })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:15:7-8 }))] + []) (DoExpr (Nothing)) (L @@ -736,13 +692,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { DumpSemis.hs:21:1-12 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:21:5-6 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:21:5-6 })) + []) [(L (EpAnn (EpaSpan { DumpSemis.hs:21:1-3 }) @@ -782,11 +734,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:21:8-9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -805,14 +753,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { DumpSemis.hs:21:11-12 }) - (AnnParen - (AnnParens) - (EpaSpan { DumpSemis.hs:21:11 }) - (EpaSpan { DumpSemis.hs:21:12 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { DumpSemis.hs:21:11 }) + (EpaSpan { DumpSemis.hs:21:12 })) (HsBoxedOrConstraintTuple) [])))))))))) ,(L @@ -857,11 +801,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:22:1-30 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -901,17 +841,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { DumpSemis.hs:22:7-30 }) - (AnnList - (Just - (EpaSpan { DumpSemis.hs:22:10-30 })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:22:7-8 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { DumpSemis.hs:22:10-30 })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:22:7-8 }))] + []) (DoExpr (Nothing)) (L @@ -1066,11 +1002,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:24:1-13 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -1163,11 +1095,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:25:1-13 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -1261,11 +1189,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:26:1-13 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -1329,12 +1253,8 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { DumpSemis.hs:(28,1)-(29,23) }) - [(AddEpAnn AnnClass (EpaSpan { DumpSemis.hs:28:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:28:40-44 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { DumpSemis.hs:28:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:28:40-44 }))] (EpVirtualBraces (3)) (NoAnnSortKey)) @@ -1358,15 +1278,11 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:28:22-38 }) - [(AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:28:30-31 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:22 })) - ,(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:23 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:37 })) - ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:38 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:22 })) + ,(AddEpAnn AnnOpenP (EpaSpan { DumpSemis.hs:28:23 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:37 })) + ,(AddEpAnn AnnCloseP (EpaSpan { DumpSemis.hs:28:38 })) + ,(AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:28:30-31 }))] (HsBndrRequired (NoExtField)) (L @@ -1386,11 +1302,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:28:33-36 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1411,13 +1323,9 @@ (EpaComments [])) (ClassOpSig - (EpAnn - (EpaSpan { DumpSemis.hs:29:3-23 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:29:9-10 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:29:9-10 })) + []) (False) [(L (EpAnn @@ -1447,11 +1355,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpSemis.hs:29:12-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpSemis.hs:29:18-19 }) @@ -1464,11 +1368,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:29:12-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1487,11 +1387,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:29:21-23 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1517,13 +1413,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { DumpSemis.hs:31:1-30 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:31:3-4 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:31:3-4 })) + []) [(L (EpAnn (EpaSpan { DumpSemis.hs:31:1 }) @@ -1587,11 +1479,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:8-9 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1610,11 +1498,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1642,11 +1526,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1665,11 +1545,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1688,11 +1564,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { DumpSemis.hs:31:25-30 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { DumpSemis.hs:31:27-28 }) @@ -1705,11 +1577,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:25 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1728,11 +1596,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { DumpSemis.hs:31:30 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1789,11 +1653,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:32:1-7 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -1906,11 +1766,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:34:8-35 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2018,11 +1874,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:34:19-21 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2062,11 +1914,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { DumpSemis.hs:34:21 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral @@ -2122,11 +1970,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:34:24-26 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2166,11 +2010,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { DumpSemis.hs:34:26 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral @@ -2243,11 +2083,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:(36,1)-(44,4) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2304,14 +2140,10 @@ (EpaComments [])) (HsCase - (EpAnn - (EpaSpan { DumpSemis.hs:(37,3)-(44,4) }) - (EpAnnHsCase - (EpaSpan { DumpSemis.hs:37:3-6 }) - (EpaSpan { DumpSemis.hs:37:10-11 }) - []) - (EpaComments - [])) + (EpAnnHsCase + (EpaSpan { DumpSemis.hs:37:3-6 }) + (EpaSpan { DumpSemis.hs:37:10-11 }) + []) (L (EpAnn (EpaSpan { DumpSemis.hs:37:8 }) @@ -2357,11 +2189,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:39:6-13 }) - [] - (EpaComments - [])) + [] (CaseAlt) [(L (EpAnn @@ -2371,11 +2199,7 @@ (EpaComments [])) (NPat - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpSemis.hs:39:6 }) @@ -2417,11 +2241,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpSemis.hs:39:11-13 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsChar (SourceText 'a') ('a'))))))] @@ -2436,11 +2256,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:40:6-13 }) - [] - (EpaComments - [])) + [] (CaseAlt) [(L (EpAnn @@ -2450,11 +2266,7 @@ (EpaComments [])) (NPat - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpSemis.hs:40:6 }) @@ -2496,11 +2308,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpSemis.hs:40:11-13 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsChar (SourceText 'b') ('b'))))))] @@ -2517,11 +2325,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:41:6-13 }) - [] - (EpaComments - [])) + [] (CaseAlt) [(L (EpAnn @@ -2531,11 +2335,7 @@ (EpaComments [])) (NPat - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpSemis.hs:41:6 }) @@ -2577,11 +2377,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpSemis.hs:41:11-13 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsChar (SourceText 'c') ('c'))))))] @@ -2600,11 +2396,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { DumpSemis.hs:42:6-13 }) - [] - (EpaComments - [])) + [] (CaseAlt) [(L (EpAnn @@ -2614,11 +2406,7 @@ (EpaComments [])) (NPat - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { DumpSemis.hs:42:6 }) @@ -2660,11 +2448,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpSemis.hs:42:11-13 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsChar (SourceText 'd') ('d'))))))] diff --git a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr index 875072e46841..b9f4103913c9 100644 --- a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr @@ -20,11 +20,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -33,11 +29,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -46,11 +38,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -59,11 +47,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -72,11 +56,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -85,11 +65,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -110,11 +86,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (1374752024144278257) (NoSourceText)})))) (L (EpAnn @@ -124,11 +96,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (13654949607623281177) (NoSourceText)})))) (L (EpAnn @@ -164,11 +132,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -189,11 +153,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "T"))))))))) @@ -205,11 +165,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsInt{64}Prim (1) (NoSourceText)})))) (L (EpAnn @@ -246,11 +202,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -259,11 +211,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -272,11 +220,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -285,11 +229,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -298,11 +238,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -311,11 +247,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -336,11 +268,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (10715337633704422415) (NoSourceText)})))) (L (EpAnn @@ -350,11 +278,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (12411373583424111944) (NoSourceText)})))) (L (EpAnn @@ -390,11 +314,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -415,11 +335,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "'MkT"))))))))) @@ -431,11 +347,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsInt{64}Prim (3) (NoSourceText)})))) (L (EpAnn @@ -472,11 +384,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -485,11 +393,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -498,11 +402,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -511,11 +411,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -524,11 +420,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -537,11 +429,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -562,11 +450,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (14073232900889011755) (NoSourceText)})))) (L (EpAnn @@ -576,11 +460,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (2739668351064589274) (NoSourceText)})))) (L (EpAnn @@ -616,11 +496,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -641,11 +517,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "Peano"))))))))) @@ -657,11 +529,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsInt{64}Prim (0) (NoSourceText)})))) (L (EpAnn @@ -698,11 +566,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -711,11 +575,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -724,11 +584,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -737,11 +593,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -750,11 +602,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -763,11 +611,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -788,11 +632,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (13760111476013868540) (NoSourceText)})))) (L (EpAnn @@ -802,11 +642,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (12314848029315386153) (NoSourceText)})))) (L (EpAnn @@ -842,11 +678,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -867,11 +699,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "'Zero"))))))))) @@ -883,11 +711,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsInt{64}Prim (0) (NoSourceText)})))) (L (EpAnn @@ -924,11 +748,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -937,11 +757,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -950,11 +766,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -963,11 +775,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -976,11 +784,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -989,11 +793,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1014,11 +814,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (1143980031331647856) (NoSourceText)})))) (L (EpAnn @@ -1028,11 +824,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsWord{64}Prim (14802086722010293686) (NoSourceText)})))) (L (EpAnn @@ -1068,11 +860,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1093,11 +881,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "'Succ"))))))))) @@ -1109,11 +893,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) {HsInt{64}Prim (0) (NoSourceText)})))) (L (EpAnn @@ -1150,11 +930,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1175,11 +951,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsInt (NoExtField) (IL @@ -1204,11 +976,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1229,11 +997,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsInt (NoExtField) (IL @@ -1258,11 +1022,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1283,11 +1043,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsInt (NoExtField) (IL @@ -1312,11 +1068,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1325,11 +1077,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1394,11 +1142,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1407,11 +1151,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1476,11 +1216,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1489,11 +1225,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1558,11 +1290,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1571,11 +1299,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1640,11 +1364,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1653,11 +1373,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1722,11 +1438,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1735,11 +1447,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1786,11 +1494,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1799,11 +1503,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1857,11 +1557,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1870,11 +1566,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1928,11 +1620,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -1941,11 +1629,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2019,11 +1703,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2032,11 +1712,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2103,11 +1779,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2116,11 +1788,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2150,11 +1818,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2175,11 +1839,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "main"))))))))) @@ -2200,11 +1860,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { <no location info> }) @@ -2225,11 +1881,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsStringPrim (NoSourceText) "DumpTypecheckedAst"))))))))))) @@ -2299,11 +1951,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -2342,11 +1990,7 @@ (EpaComments [])) (HsApp - (EpAnn - (EpaDelta (SameLine 0) []) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (L (EpAnn (EpaSpan { DumpTypecheckedAst.hs:20:8-15 }) @@ -2372,11 +2016,7 @@ (EpaComments [])) (HsLit - (EpAnn - (EpaSpan { DumpTypecheckedAst.hs:20:17-23 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsString (SourceText "hello") {FastString: "hello"})))))))] diff --git a/testsuite/tests/parser/should_compile/KindSigs.stderr b/testsuite/tests/parser/should_compile/KindSigs.stderr index 78c758e2e634..0a4736754849 100644 --- a/testsuite/tests/parser/should_compile/KindSigs.stderr +++ b/testsuite/tests/parser/should_compile/KindSigs.stderr @@ -80,13 +80,9 @@ (FamDecl (NoExtField) (FamilyDecl - (EpAnn - (EpaSpan { KindSigs.hs:(11,1)-(12,21) }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:11:1-4 })) - ,(AddEpAnn AnnFamily (EpaSpan { KindSigs.hs:11:6-11 })) - ,(AddEpAnn AnnWhere (EpaSpan { KindSigs.hs:11:19-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:11:1-4 })) + ,(AddEpAnn AnnFamily (EpaSpan { KindSigs.hs:11:6-11 })) + ,(AddEpAnn AnnWhere (EpaSpan { KindSigs.hs:11:19-23 }))] (ClosedTypeFamily (Just [(L @@ -97,11 +93,7 @@ (EpaComments [])) (FamEqn - (EpAnn - (EpaSpan { KindSigs.hs:12:3-21 }) - [(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:12:9 }))] - (EpaComments - [])) + [(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:12:9 }))] (L (EpAnn (EpaSpan { KindSigs.hs:12:3-5 }) @@ -123,11 +115,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:12:7 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -147,11 +135,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:12:11-21 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:12:15-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:12:15-16 }))] (L (EpAnn (EpaSpan { KindSigs.hs:12:11-13 }) @@ -160,11 +144,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:12:11-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -183,11 +163,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:12:18-21 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -218,11 +194,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { KindSigs.hs:11:17 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -254,12 +226,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:15:1-51 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:15:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:15:12 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:15:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:15:12 }))] (L (EpAnn (EpaSpan { KindSigs.hs:15:6-8 }) @@ -279,11 +247,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:10 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -304,14 +268,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { KindSigs.hs:15:14-51 }) - (AnnParen - (AnnParens) - (EpaSpan { KindSigs.hs:15:14 }) - (EpaSpan { KindSigs.hs:15:51 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { KindSigs.hs:15:14 }) + (EpaSpan { KindSigs.hs:15:51 })) (HsBoxedOrConstraintTuple) [(L (EpAnn @@ -322,11 +282,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:15:16-26 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:20-21 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:20-21 }))] (L (EpAnn (EpaSpan { KindSigs.hs:15:16-18 }) @@ -335,11 +291,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:16-18 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -358,11 +310,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:23-26 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -382,11 +330,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:29-32 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -405,11 +349,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:15:35-49 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:43-44 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:43-44 }))] (L (EpAnn (EpaSpan { KindSigs.hs:15:35-41 }) @@ -427,11 +367,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:35-39 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -450,11 +386,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:41 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -473,11 +405,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:15:46-49 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -498,12 +426,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:16:1-54 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:16:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:16:13 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:16:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:16:13 }))] (L (EpAnn (EpaSpan { KindSigs.hs:16:6-9 }) @@ -523,11 +447,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:11 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -548,14 +468,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { KindSigs.hs:16:15-54 }) - (AnnParen - (AnnParensHash) - (EpaSpan { KindSigs.hs:16:15-16 }) - (EpaSpan { KindSigs.hs:16:53-54 })) - (EpaComments - [])) + (AnnParen + (AnnParensHash) + (EpaSpan { KindSigs.hs:16:15-16 }) + (EpaSpan { KindSigs.hs:16:53-54 })) (HsUnboxedTuple) [(L (EpAnn @@ -566,11 +482,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:16:18-28 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:22-23 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:22-23 }))] (L (EpAnn (EpaSpan { KindSigs.hs:16:18-20 }) @@ -579,11 +491,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:18-20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -602,11 +510,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:25-28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -626,11 +530,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:31-34 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -649,11 +549,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:16:37-51 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:45-46 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:45-46 }))] (L (EpAnn (EpaSpan { KindSigs.hs:16:37-43 }) @@ -671,11 +567,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:37-41 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -694,11 +586,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:43 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -717,11 +605,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:16:48-51 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -742,12 +626,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:19:1-26 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:19:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:19:10 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:19:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:19:10 }))] (L (EpAnn (EpaSpan { KindSigs.hs:19:6-8 }) @@ -769,14 +649,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { KindSigs.hs:19:12-26 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { KindSigs.hs:19:12 }) - (EpaSpan { KindSigs.hs:19:26 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { KindSigs.hs:19:12 }) + (EpaSpan { KindSigs.hs:19:26 })) (L (EpAnn (EpaSpan { KindSigs.hs:19:14-24 }) @@ -785,11 +661,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:19:14-24 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:19:18-19 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:19:18-19 }))] (L (EpAnn (EpaSpan { KindSigs.hs:19:14-16 }) @@ -798,11 +670,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:19:14-16 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -821,11 +689,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:19:21-24 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -846,13 +710,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { KindSigs.hs:22:1-44 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:5-6 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:5-6 })) + []) [(L (EpAnn (EpaSpan { KindSigs.hs:22:1-3 }) @@ -883,11 +743,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { KindSigs.hs:22:8-44 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { KindSigs.hs:22:22-23 }) @@ -900,14 +756,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { KindSigs.hs:22:8-20 }) - (AnnParen - (AnnParens) - (EpaSpan { KindSigs.hs:22:8 }) - (EpaSpan { KindSigs.hs:22:20 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { KindSigs.hs:22:8 }) + (EpaSpan { KindSigs.hs:22:20 })) (L (EpAnn (EpaSpan { KindSigs.hs:22:9-19 }) @@ -916,11 +768,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:22:9-19 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:13-14 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:13-14 }))] (L (EpAnn (EpaSpan { KindSigs.hs:22:9-11 }) @@ -929,11 +777,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:22:9-11 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -952,11 +796,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:22:16-19 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -975,11 +815,7 @@ (EpaComments [])) (HsFunTy - (EpAnn - (EpaSpan { KindSigs.hs:22:25-44 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (HsUnrestrictedArrow (EpUniTok (EpaSpan { KindSigs.hs:22:30-31 }) @@ -992,11 +828,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:22:25-28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1015,14 +847,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { KindSigs.hs:22:33-44 }) - (AnnParen - (AnnParens) - (EpaSpan { KindSigs.hs:22:33 }) - (EpaSpan { KindSigs.hs:22:44 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { KindSigs.hs:22:33 }) + (EpaSpan { KindSigs.hs:22:44 })) (L (EpAnn (EpaSpan { KindSigs.hs:22:34-43 }) @@ -1031,11 +859,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:22:34-43 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:37-38 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:37-38 }))] (L (EpAnn (EpaSpan { KindSigs.hs:22:34-35 }) @@ -1044,14 +868,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { KindSigs.hs:22:34-35 }) - (AnnParen - (AnnParens) - (EpaSpan { KindSigs.hs:22:34 }) - (EpaSpan { KindSigs.hs:22:35 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { KindSigs.hs:22:34 }) + (EpaSpan { KindSigs.hs:22:35 })) (HsBoxedOrConstraintTuple) [])) (L @@ -1062,11 +882,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:22:40-43 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1118,11 +934,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { KindSigs.hs:23:1-12 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -1204,12 +1016,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:26:1-29 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:26:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:26:11 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:26:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:26:11 }))] (L (EpAnn (EpaSpan { KindSigs.hs:26:6-9 }) @@ -1231,13 +1039,9 @@ (EpaComments [])) (HsExplicitListTy - (EpAnn - (EpaSpan { KindSigs.hs:26:13-29 }) - [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:26:13 })) - ,(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:26:14 })) - ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:26:29 }))] - (EpaComments - [])) + [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:26:13 })) + ,(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:26:14 })) + ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:26:29 }))] (IsPromoted) [(L (EpAnn @@ -1247,11 +1051,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:26:16-27 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:26:21-22 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:26:21-22 }))] (L (EpAnn (EpaSpan { KindSigs.hs:26:16-19 }) @@ -1260,11 +1060,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:26:16-19 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1283,11 +1079,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:26:24-27 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1308,12 +1100,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:27:1-45 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:27:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:27:12 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:27:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:27:12 }))] (L (EpAnn (EpaSpan { KindSigs.hs:27:6-10 }) @@ -1335,12 +1123,8 @@ (EpaComments [])) (HsExplicitListTy - (EpAnn - (EpaSpan { KindSigs.hs:27:14-45 }) - [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:27:14 })) - ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:27:45 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:27:14 })) + ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:27:45 }))] (NotPromoted) [(L (EpAnn @@ -1351,11 +1135,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:27:16-27 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:21-22 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:21-22 }))] (L (EpAnn (EpaSpan { KindSigs.hs:27:16-19 }) @@ -1364,11 +1144,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:27:16-19 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1387,11 +1163,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:27:24-27 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1410,11 +1182,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:27:30-42 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:36-37 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:36-37 }))] (L (EpAnn (EpaSpan { KindSigs.hs:27:30-34 }) @@ -1423,11 +1191,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:27:30-34 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1446,11 +1210,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:27:39-42 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1471,12 +1231,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:28:1-44 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:28:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:28:14 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:28:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:28:14 }))] (L (EpAnn (EpaSpan { KindSigs.hs:28:6-10 }) @@ -1496,11 +1252,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { KindSigs.hs:28:12 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -1521,13 +1273,9 @@ (EpaComments [])) (HsExplicitTupleTy - (EpAnn - (EpaSpan { KindSigs.hs:28:16-44 }) - [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:28:16 })) - ,(AddEpAnn AnnOpenP (EpaSpan { KindSigs.hs:28:17 })) - ,(AddEpAnn AnnCloseP (EpaSpan { KindSigs.hs:28:44 }))] - (EpaComments - [])) + [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:28:16 })) + ,(AddEpAnn AnnOpenP (EpaSpan { KindSigs.hs:28:17 })) + ,(AddEpAnn AnnCloseP (EpaSpan { KindSigs.hs:28:44 }))] [(L (EpAnn (EpaSpan { KindSigs.hs:28:19-39 }) @@ -1537,11 +1285,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:28:19-39 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:28:31-32 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:28:31-32 }))] (L (EpAnn (EpaSpan { KindSigs.hs:28:19-29 }) @@ -1550,12 +1294,8 @@ (EpaComments [])) (HsExplicitListTy - (EpAnn - (EpaSpan { KindSigs.hs:28:19-29 }) - [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:28:19 })) - ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:28:29 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:28:19 })) + ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:28:29 }))] (NotPromoted) [(L (EpAnn @@ -1566,11 +1306,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:28:20-22 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1589,11 +1325,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:28:25-28 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1612,14 +1344,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { KindSigs.hs:28:34-39 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { KindSigs.hs:28:34 }) - (EpaSpan { KindSigs.hs:28:39 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { KindSigs.hs:28:34 }) + (EpaSpan { KindSigs.hs:28:39 })) (L (EpAnn (EpaSpan { KindSigs.hs:28:35-38 }) @@ -1628,11 +1356,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:28:35-38 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1651,11 +1375,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:28:42 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1676,12 +1396,8 @@ (TyClD (NoExtField) (SynDecl - (EpAnn - (EpaSpan { KindSigs.hs:31:1-31 }) - [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:31:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:31:19 }))] - (EpaComments - [])) + [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:31:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:31:19 }))] (L (EpAnn (EpaSpan { KindSigs.hs:31:6-17 }) @@ -1703,11 +1419,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:31:21-31 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:31:25-26 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:31:25-26 }))] (L (EpAnn (EpaSpan { KindSigs.hs:31:21-23 }) @@ -1716,11 +1428,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:31:21-23 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1739,11 +1447,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:31:28-31 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1764,13 +1468,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { KindSigs.hs:34:1-22 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:6-7 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:6-7 })) + []) [(L (EpAnn (EpaSpan { KindSigs.hs:34:1-4 }) @@ -1801,14 +1501,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { KindSigs.hs:34:9-22 }) - (AnnParen - (AnnParens) - (EpaSpan { KindSigs.hs:34:9 }) - (EpaSpan { KindSigs.hs:34:22 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { KindSigs.hs:34:9 }) + (EpaSpan { KindSigs.hs:34:22 })) (L (EpAnn (EpaSpan { KindSigs.hs:34:10-21 }) @@ -1817,11 +1513,7 @@ (EpaComments [])) (HsKindSig - (EpAnn - (EpaSpan { KindSigs.hs:34:10-21 }) - [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:15-16 }))] - (EpaComments - [])) + [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:15-16 }))] (L (EpAnn (EpaSpan { KindSigs.hs:34:10-13 }) @@ -1830,11 +1522,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:34:10-13 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1853,11 +1541,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { KindSigs.hs:34:18-21 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -1909,11 +1593,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { KindSigs.hs:35:1-11 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn diff --git a/testsuite/tests/parser/should_compile/T14189.stderr b/testsuite/tests/parser/should_compile/T14189.stderr index 4390aa1841b7..f961ec214f8f 100644 --- a/testsuite/tests/parser/should_compile/T14189.stderr +++ b/testsuite/tests/parser/should_compile/T14189.stderr @@ -77,11 +77,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -160,11 +156,7 @@ (EpaComments [])) (ConDeclField - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] [(L (EpAnn (EpaSpan { T14189.hs:6:33 }) @@ -191,11 +183,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaDelta (SameLine 0) []) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -267,12 +255,8 @@ (IEThingWith ((,) (Nothing) - (EpAnn - (EpaSpan { T14189.hs:3:3-8 }) - [(AddEpAnn AnnOpenP (EpaSpan { T14189.hs:3:10 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T14189.hs:3:15 }))] - (EpaComments - []))) + [(AddEpAnn AnnOpenP (EpaSpan { T14189.hs:3:10 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T14189.hs:3:15 }))]) (L (EpAnn (EpaSpan { T14189.hs:3:3-8 }) diff --git a/testsuite/tests/parser/should_compile/T15323.stderr b/testsuite/tests/parser/should_compile/T15323.stderr index 12c154a7d6f4..334665536968 100644 --- a/testsuite/tests/parser/should_compile/T15323.stderr +++ b/testsuite/tests/parser/should_compile/T15323.stderr @@ -43,12 +43,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T15323.hs:(5,1)-(6,54) }) - [(AddEpAnn AnnData (EpaSpan { T15323.hs:5:1-4 })) - ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:5:21-25 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T15323.hs:5:1-4 })) + ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:5:21-25 }))] (L (EpAnn (EpaSpan { T15323.hs:5:6-17 }) @@ -68,11 +64,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T15323.hs:5:19 }) - [] - (EpaComments - [])) + [] (HsBndrRequired (NoExtField)) (L @@ -104,11 +96,7 @@ (EpUniTok (EpaSpan { T15323.hs:6:17-18 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T15323.hs:6:5-54 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -143,11 +131,7 @@ (EpaComments [])) (UserTyVar - (EpAnn - (EpaSpan { T15323.hs:6:27 }) - [] - (EpaComments - [])) + [] (SpecifiedSpec) (L (EpAnn @@ -179,14 +163,10 @@ (EpaComments [])) (HsParTy - (EpAnn - (EpaSpan { T15323.hs:6:31-36 }) - (AnnParen - (AnnParens) - (EpaSpan { T15323.hs:6:31 }) - (EpaSpan { T15323.hs:6:36 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { T15323.hs:6:31 }) + (EpaSpan { T15323.hs:6:36 })) (L (EpAnn (EpaSpan { T15323.hs:6:32-35 }) @@ -204,11 +184,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T15323.hs:6:32-33 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -227,11 +203,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T15323.hs:6:35 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -262,11 +234,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T15323.hs:6:41-52 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -285,11 +253,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T15323.hs:6:54 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/parser/should_compile/T20452.stderr b/testsuite/tests/parser/should_compile/T20452.stderr index 5f5fbd46214a..eb9214d3ee6e 100644 --- a/testsuite/tests/parser/should_compile/T20452.stderr +++ b/testsuite/tests/parser/should_compile/T20452.stderr @@ -43,12 +43,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T20452.hs:5:1-31 }) - [(AddEpAnn AnnData (EpaSpan { T20452.hs:5:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:5:24 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T20452.hs:5:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:5:24 }))] (L (EpAnn (EpaSpan { T20452.hs:5:6-11 }) @@ -68,13 +64,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:5:14-21 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:5:17-18 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:5:14 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:5:21 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:5:14 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:5:21 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:5:17-18 }))] (HsBndrRequired (NoExtField)) (L @@ -94,11 +86,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:5:20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -125,11 +113,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T20452.hs:5:26-31 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T20452.hs:5:26-31 }) @@ -157,12 +141,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T20452.hs:6:1-31 }) - [(AddEpAnn AnnData (EpaSpan { T20452.hs:6:1-4 })) - ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:6:24 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T20452.hs:6:1-4 })) + ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:6:24 }))] (L (EpAnn (EpaSpan { T20452.hs:6:6-11 }) @@ -182,15 +162,11 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:6:13-22 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:6:17-18 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:13 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:14 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:21 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:22 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:13 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:6:14 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:21 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:6:22 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:6:17-18 }))] (HsBndrRequired (NoExtField)) (L @@ -210,11 +186,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:6:20 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -241,11 +213,7 @@ (EpaComments [])) (ConDeclH98 - (EpAnn - (EpaSpan { T20452.hs:6:26-31 }) - [] - (EpaComments - [])) + [] (L (EpAnn (EpaSpan { T20452.hs:6:26-31 }) @@ -274,14 +242,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T20452.hs:8:1-85 }) - [(AddEpAnn AnnClass (EpaSpan { T20452.hs:8:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:8:78-82 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:8:84 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:8:85 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T20452.hs:8:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:8:78-82 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:8:84 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:8:85 }))] (EpExplicitBraces (EpTok (EpaSpan { T20452.hs:8:84 })) @@ -308,13 +272,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:8:15-26 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:20-21 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:15 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:26 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:15 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:26 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:20-21 }))] (HsBndrRequired (NoExtField)) (L @@ -334,11 +294,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:8:23-25 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -357,13 +313,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:8:30-45 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:36-37 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:30 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:45 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:30 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:45 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:36-37 }))] (HsBndrRequired (NoExtField)) (L @@ -383,11 +335,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:8:39-44 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -406,13 +354,9 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:8:49-75 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:54-55 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:49 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:75 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:8:49 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:8:75 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:8:54-55 }))] (HsBndrRequired (NoExtField)) (L @@ -432,14 +376,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { T20452.hs:8:57-74 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { T20452.hs:8:57 }) - (EpaSpan { T20452.hs:8:74 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { T20452.hs:8:57 }) + (EpaSpan { T20452.hs:8:74 })) (L (EpAnn (EpaSpan { T20452.hs:8:58-73 }) @@ -448,14 +388,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { T20452.hs:8:58-73 }) - (AnnParen - (AnnParens) - (EpaSpan { T20452.hs:8:58 }) - (EpaSpan { T20452.hs:8:73 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { T20452.hs:8:58 }) + (EpaSpan { T20452.hs:8:73 })) (HsBoxedOrConstraintTuple) [(L (EpAnn @@ -466,11 +402,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:8:59-64 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -489,11 +421,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:8:67-72 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -523,14 +451,10 @@ (NoExtField) (ClassDecl ((,,) - (EpAnn - (EpaSpan { T20452.hs:9:1-85 }) - [(AddEpAnn AnnClass (EpaSpan { T20452.hs:9:1-5 })) - ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:9:78-82 })) - ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:9:84 })) - ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:9:85 }))] - (EpaComments - [])) + [(AddEpAnn AnnClass (EpaSpan { T20452.hs:9:1-5 })) + ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:9:78-82 })) + ,(AddEpAnn AnnOpenC (EpaSpan { T20452.hs:9:84 })) + ,(AddEpAnn AnnCloseC (EpaSpan { T20452.hs:9:85 }))] (EpExplicitBraces (EpTok (EpaSpan { T20452.hs:9:84 })) @@ -557,15 +481,11 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:9:14-27 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:20-21 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:14 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:15 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:26 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:27 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:14 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:15 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:26 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:27 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:20-21 }))] (HsBndrRequired (NoExtField)) (L @@ -585,11 +505,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:9:23-25 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -608,15 +524,11 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:9:29-46 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:36-37 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:29 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:30 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:45 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:46 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:29 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:30 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:45 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:46 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:36-37 }))] (HsBndrRequired (NoExtField)) (L @@ -636,11 +548,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:9:39-44 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -659,15 +567,11 @@ (EpaComments [])) (KindedTyVar - (EpAnn - (EpaSpan { T20452.hs:9:48-76 }) - [(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:54-55 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:48 })) - ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:49 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:75 })) - ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:76 }))] - (EpaComments - [])) + [(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:48 })) + ,(AddEpAnn AnnOpenP (EpaSpan { T20452.hs:9:49 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:75 })) + ,(AddEpAnn AnnCloseP (EpaSpan { T20452.hs:9:76 })) + ,(AddEpAnn AnnDcolon (EpaSpan { T20452.hs:9:54-55 }))] (HsBndrRequired (NoExtField)) (L @@ -687,14 +591,10 @@ (EpaComments [])) (HsListTy - (EpAnn - (EpaSpan { T20452.hs:9:57-74 }) - (AnnParen - (AnnParensSquare) - (EpaSpan { T20452.hs:9:57 }) - (EpaSpan { T20452.hs:9:74 })) - (EpaComments - [])) + (AnnParen + (AnnParensSquare) + (EpaSpan { T20452.hs:9:57 }) + (EpaSpan { T20452.hs:9:74 })) (L (EpAnn (EpaSpan { T20452.hs:9:58-73 }) @@ -703,14 +603,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { T20452.hs:9:58-73 }) - (AnnParen - (AnnParens) - (EpaSpan { T20452.hs:9:58 }) - (EpaSpan { T20452.hs:9:73 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { T20452.hs:9:58 }) + (EpaSpan { T20452.hs:9:73 })) (HsBoxedOrConstraintTuple) [(L (EpAnn @@ -721,11 +617,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:9:59-64 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -744,11 +636,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T20452.hs:9:67-72 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/parser/should_compile/T20718.stderr b/testsuite/tests/parser/should_compile/T20718.stderr index 21f52961b6f6..23d9c9c88d12 100644 --- a/testsuite/tests/parser/should_compile/T20718.stderr +++ b/testsuite/tests/parser/should_compile/T20718.stderr @@ -114,11 +114,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { T20718.hs:8:1-5 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -158,11 +154,7 @@ (EpaComments [])) (HsOverLit - (EpAnn - (EpaSpan { T20718.hs:8:5 }) - (NoEpAnns) - (EpaComments - [])) + (NoExtField) (OverLit (NoExtField) (HsIntegral diff --git a/testsuite/tests/parser/should_compile/T20846.stderr b/testsuite/tests/parser/should_compile/T20846.stderr index c05951ede47b..2fd94dabea59 100644 --- a/testsuite/tests/parser/should_compile/T20846.stderr +++ b/testsuite/tests/parser/should_compile/T20846.stderr @@ -43,11 +43,7 @@ (SigD (NoExtField) (FixSig - (EpAnn - (EpaSpan { T20846.hs:3:1-11 }) - [(AddEpAnn AnnInfix (EpaSpan { T20846.hs:3:1-6 }))] - (EpaComments - [])) + [(AddEpAnn AnnInfix (EpaSpan { T20846.hs:3:1-6 }))] (FixitySig (NoExtField) [(L @@ -105,11 +101,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { T20846.hs:4:1-18 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn diff --git a/testsuite/tests/parser/should_compile/T23315/T23315.stderr b/testsuite/tests/parser/should_compile/T23315/T23315.stderr index 2c649b51a7ff..1c57157c5f01 100644 --- a/testsuite/tests/parser/should_compile/T23315/T23315.stderr +++ b/testsuite/tests/parser/should_compile/T23315/T23315.stderr @@ -61,13 +61,9 @@ (SigD (NoExtField) (TypeSig - (EpAnn - (EpaSpan { T23315.hsig:3:1-7 }) - (AnnSig - (AddEpAnn AnnDcolon (EpaSpan { T23315.hsig:3:3-4 })) - []) - (EpaComments - [])) + (AnnSig + (AddEpAnn AnnDcolon (EpaSpan { T23315.hsig:3:3-4 })) + []) [(L (EpAnn (EpaSpan { T23315.hsig:3:1 }) @@ -98,14 +94,10 @@ (EpaComments [])) (HsTupleTy - (EpAnn - (EpaSpan { T23315.hsig:3:6-7 }) - (AnnParen - (AnnParens) - (EpaSpan { T23315.hsig:3:6 }) - (EpaSpan { T23315.hsig:3:7 })) - (EpaComments - [])) + (AnnParen + (AnnParens) + (EpaSpan { T23315.hsig:3:6 }) + (EpaSpan { T23315.hsig:3:7 })) (HsBoxedOrConstraintTuple) [])))))))) ,(L diff --git a/testsuite/tests/plugins/hooks-plugin/Hooks/MetaPlugin.hs b/testsuite/tests/plugins/hooks-plugin/Hooks/MetaPlugin.hs index 29c1dab2b73f..c53cb7807b10 100644 --- a/testsuite/tests/plugins/hooks-plugin/Hooks/MetaPlugin.hs +++ b/testsuite/tests/plugins/hooks-plugin/Hooks/MetaPlugin.hs @@ -36,7 +36,7 @@ fakeRunMeta opts (MetaE r) _ = do pure $ r zero where zero :: LHsExpr GhcPs - zero = noLocA $ HsLit noAnn $ + zero = noLocA $ HsLit noExtField $ HsInt NoExtField (mkIntegralLit (0 :: Int)) fakeRunMeta _ _ _ = error "fakeRunMeta: unimplemented" diff --git a/testsuite/tests/printer/T18791.stderr b/testsuite/tests/printer/T18791.stderr index 1b577b48147d..95df4dda5d7a 100644 --- a/testsuite/tests/printer/T18791.stderr +++ b/testsuite/tests/printer/T18791.stderr @@ -43,12 +43,8 @@ (TyClD (NoExtField) (DataDecl - (EpAnn - (EpaSpan { T18791.hs:(4,1)-(5,17) }) - [(AddEpAnn AnnData (EpaSpan { T18791.hs:4:1-4 })) - ,(AddEpAnn AnnWhere (EpaSpan { T18791.hs:4:8-12 }))] - (EpaComments - [])) + [(AddEpAnn AnnData (EpaSpan { T18791.hs:4:1-4 })) + ,(AddEpAnn AnnWhere (EpaSpan { T18791.hs:4:8-12 }))] (L (EpAnn (EpaSpan { T18791.hs:4:6 }) @@ -81,11 +77,7 @@ (EpUniTok (EpaSpan { T18791.hs:5:7-8 }) (NormalSyntax)) - (EpAnn - (EpaSpan { T18791.hs:5:3-17 }) - [] - (EpaComments - []))) + []) (:| (L (EpAnn @@ -122,11 +114,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T18791.hs:5:10-12 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn @@ -145,11 +133,7 @@ (EpaComments [])) (HsTyVar - (EpAnn - (EpaSpan { T18791.hs:5:17 }) - [] - (EpaComments - [])) + [] (NotPromoted) (L (EpAnn diff --git a/testsuite/tests/printer/Test20297.stdout b/testsuite/tests/printer/Test20297.stdout index 415f5d725ff7..f52290b5c33f 100644 --- a/testsuite/tests/printer/Test20297.stdout +++ b/testsuite/tests/printer/Test20297.stdout @@ -80,11 +80,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.hs:(5,1)-(7,7) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -204,11 +200,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.hs:(9,1)-(11,26) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -318,11 +310,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.hs:11:9-26 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -362,17 +350,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { Test20297.hs:11:19-26 }) - (AnnList - (Just - (EpaSpan { Test20297.hs:11:22-26 })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { Test20297.hs:11:19-20 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { Test20297.hs:11:22-26 })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { Test20297.hs:11:19-20 }))] + []) (DoExpr (Nothing)) (L @@ -503,11 +487,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.ppr.hs:(3,1)-(5,7) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -615,11 +595,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.ppr.hs:(6,1)-(9,24) }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -723,11 +699,7 @@ (EpaComments [])) (Match - (EpAnn - (EpaSpan { Test20297.ppr.hs:9:7-24 }) - [] - (EpaComments - [])) + [] (FunRhs (L (EpAnn @@ -767,17 +739,13 @@ (EpaComments [])) (HsDo - (EpAnn - (EpaSpan { Test20297.ppr.hs:9:17-24 }) - (AnnList - (Just - (EpaSpan { Test20297.ppr.hs:9:20-24 })) - (Nothing) - (Nothing) - [(AddEpAnn AnnDo (EpaSpan { Test20297.ppr.hs:9:17-18 }))] - []) - (EpaComments - [])) + (AnnList + (Just + (EpaSpan { Test20297.ppr.hs:9:20-24 })) + (Nothing) + (Nothing) + [(AddEpAnn AnnDo (EpaSpan { Test20297.ppr.hs:9:17-18 }))] + []) (DoExpr (Nothing)) (L diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs index 0628d2290869..7db4c4c77c05 100644 --- a/utils/check-exact/ExactPrint.hs +++ b/utils/check-exact/ExactPrint.hs @@ -608,11 +608,11 @@ flushComments trailing_anns = do -- |In order to interleave annotations into the stream, we turn them into -- comments. They are removed from the annotation to avoid duplication. annotationsToComments :: (Monad m, Monoid w) - => EpAnn a -> Lens a [AddEpAnn] -> [AnnKeywordId] -> EP w m (EpAnn a) -annotationsToComments (EpAnn anc a cs) l kws = do + => a -> Lens a [AddEpAnn] -> [AnnKeywordId] -> EP w m a +annotationsToComments a l kws = do let (newComments, newAnns) = go ([],[]) (view l a) addComments newComments - return (EpAnn anc (set l (reverse newAnns) a) cs) + return (set l (reverse newAnns) a) where keywords = Set.fromList kws @@ -708,10 +708,10 @@ printStringAtAA :: (Monad m, Monoid w) => EpaLocation -> String -> EP w m EpaLoc printStringAtAA el str = printStringAtAAC CaptureComments el str printStringAtAAL :: (Monad m, Monoid w) - => EpAnn a -> Lens a EpaLocation -> String -> EP w m (EpAnn a) -printStringAtAAL (EpAnn anc an cs) l str = do + => a -> Lens a EpaLocation -> String -> EP w m a +printStringAtAAL an l str = do r <- printStringAtAAC CaptureComments (view l an) str - return (EpAnn anc (set l r an) cs) + return (set l r an) printStringAtAAC :: (Monad m, Monoid w) => CaptureComments -> EpaLocation -> String -> EP w m EpaLocation @@ -748,11 +748,24 @@ markLensMAA (EpAnn anc a cs) l = aa' <- markAddEpAnn aa return (EpAnn anc (set l (Just aa') a) cs) +markLensMAA' :: (Monad m, Monoid w) => a -> Lens a (Maybe AddEpAnn) -> EP w m a +markLensMAA' a l = + case view l a of + Nothing -> return a + Just aa -> do + aa' <- markAddEpAnn aa + return (set l (Just aa') a) + markLensAA :: (Monad m, Monoid w) => EpAnn a -> Lens a AddEpAnn -> EP w m (EpAnn a) markLensAA (EpAnn anc a cs) l = do a' <- markKw (view l a) return (EpAnn anc (set l a' a) cs) +markLensAA' :: (Monad m, Monoid w) => a -> Lens a AddEpAnn -> EP w m a +markLensAA' a l = do + a' <- markKw (view l a) + return (set l a' a) + markEpAnnLMS :: (Monad m, Monoid w) => EpAnn a -> Lens a [AddEpAnn] -> AnnKeywordId -> Maybe String -> EP w m (EpAnn a) @@ -768,6 +781,34 @@ markEpAnnLMS (EpAnn anc a cs) l kw (Just str) = do return (AddEpAnn kw' r') | otherwise = return (AddEpAnn kw' r) +markEpAnnLMS'' :: (Monad m, Monoid w) + => a -> Lens a [AddEpAnn] -> AnnKeywordId -> Maybe String -> EP w m a +markEpAnnLMS'' an l kw Nothing = markEpAnnL' an l kw +markEpAnnLMS'' a l kw (Just str) = do + anns <- mapM go (view l a) + return (set l anns a) + where + go :: (Monad m, Monoid w) => AddEpAnn -> EP w m AddEpAnn + go (AddEpAnn kw' r) + | kw' == kw = do + r' <- printStringAtAA r str + return (AddEpAnn kw' r') + | otherwise = return (AddEpAnn kw' r) + + +markEpAnnMS' :: (Monad m, Monoid w) + => [AddEpAnn] -> AnnKeywordId -> Maybe String -> EP w m [AddEpAnn] +markEpAnnMS' anns kw Nothing = mark' anns kw +markEpAnnMS' anns kw (Just str) = do + mapM go anns + where + go :: (Monad m, Monoid w) => AddEpAnn -> EP w m AddEpAnn + go (AddEpAnn kw' r) + | kw' == kw = do + r' <- printStringAtAA r str + return (AddEpAnn kw' r') + | otherwise = return (AddEpAnn kw' r) + markEpAnnLMS' :: (Monad m, Monoid w) => EpAnn a -> Lens a AddEpAnn -> AnnKeywordId -> Maybe String -> EP w m (EpAnn a) markEpAnnLMS' an l _kw Nothing = markLensKwA an l @@ -782,6 +823,20 @@ markEpAnnLMS' (EpAnn anc a cs) l kw (Just str) = do return (AddEpAnn kw' r') | otherwise = return (AddEpAnn kw' r) +markEpAnnLMS0 :: (Monad m, Monoid w) + => a -> Lens a AddEpAnn -> AnnKeywordId -> Maybe String -> EP w m a +markEpAnnLMS0 an l _kw Nothing = markLensKwA' an l +markEpAnnLMS0 a l kw (Just str) = do + anns <- go (view l a) + return (set l anns a) + where + go :: (Monad m, Monoid w) => AddEpAnn -> EP w m AddEpAnn + go (AddEpAnn kw' r) + | kw' == kw = do + r' <- printStringAtAA r str + return (AddEpAnn kw' r') + | otherwise = return (AddEpAnn kw' r) + -- --------------------------------------------------------------------- markEpToken :: forall m w tok . (Monad m, Monoid w, KnownSymbol tok) @@ -824,13 +879,20 @@ markArrow (HsExplicitMult (pct, arr) t) = do markAnnCloseP :: (Monad m, Monoid w) => EpAnn AnnPragma -> EP w m (EpAnn AnnPragma) markAnnCloseP an = markEpAnnLMS' an lapr_close AnnClose (Just "#-}") +markAnnCloseP' :: (Monad m, Monoid w) => AnnPragma -> EP w m AnnPragma +markAnnCloseP' an = markEpAnnLMS0 an lapr_close AnnClose (Just "#-}") + markAnnOpenP :: (Monad m, Monoid w) => EpAnn AnnPragma -> SourceText -> String -> EP w m (EpAnn AnnPragma) markAnnOpenP an NoSourceText txt = markEpAnnLMS' an lapr_open AnnOpen (Just txt) markAnnOpenP an (SourceText txt) _ = markEpAnnLMS' an lapr_open AnnOpen (Just $ unpackFS txt) -markAnnOpen :: (Monad m, Monoid w) => EpAnn [AddEpAnn] -> SourceText -> String -> EP w m (EpAnn [AddEpAnn]) -markAnnOpen an NoSourceText txt = markEpAnnLMS an lidl AnnOpen (Just txt) -markAnnOpen an (SourceText txt) _ = markEpAnnLMS an lidl AnnOpen (Just $ unpackFS txt) +markAnnOpenP' :: (Monad m, Monoid w) => AnnPragma -> SourceText -> String -> EP w m AnnPragma +markAnnOpenP' an NoSourceText txt = markEpAnnLMS0 an lapr_open AnnOpen (Just txt) +markAnnOpenP' an (SourceText txt) _ = markEpAnnLMS0 an lapr_open AnnOpen (Just $ unpackFS txt) + +markAnnOpen :: (Monad m, Monoid w) => [AddEpAnn] -> SourceText -> String -> EP w m [AddEpAnn] +markAnnOpen an NoSourceText txt = markEpAnnLMS'' an lidl AnnOpen (Just txt) +markAnnOpen an (SourceText txt) _ = markEpAnnLMS'' an lidl AnnOpen (Just $ unpackFS txt) markAnnOpen' :: (Monad m, Monoid w) => Maybe EpaLocation -> SourceText -> String -> EP w m (Maybe EpaLocation) @@ -851,15 +913,15 @@ data AnnParen ap_close :: EpaLocation } deriving (Data) -} -markOpeningParen, markClosingParen :: (Monad m, Monoid w) => EpAnn AnnParen -> EP w m (EpAnn AnnParen) +markOpeningParen, markClosingParen :: (Monad m, Monoid w) => AnnParen -> EP w m AnnParen markOpeningParen an = markParen an lfst markClosingParen an = markParen an lsnd -markParen :: (Monad m, Monoid w) => EpAnn AnnParen -> (forall a. Lens (a,a) a) -> EP w m (EpAnn AnnParen) -markParen (EpAnn anc (AnnParen pt o c) cs) l = do +markParen :: (Monad m, Monoid w) => AnnParen -> (forall a. Lens (a,a) a) -> EP w m AnnParen +markParen (AnnParen pt o c) l = do loc' <- markKwA (view l $ kw pt) (view l (o, c)) let (o',c') = set l loc' (o,c) - return (EpAnn anc (AnnParen pt o' c') cs) + return (AnnParen pt o' c') where kw AnnParens = (AnnOpenP, AnnCloseP) kw AnnParensHash = (AnnOpenPH, AnnClosePH) @@ -1232,21 +1294,29 @@ markLensKwA (EpAnn anc a cs) l = do loc <- markKw (view l a) return (EpAnn anc (set l loc a) cs) +markLensKwA' :: (Monad m, Monoid w) + => a -> Lens a AddEpAnn -> EP w m a +markLensKwA' a l = do + loc <- markKw (view l a) + return (set l loc a) + markLensKw :: (Monad m, Monoid w) => EpAnn a -> Lens a EpaLocation -> AnnKeywordId -> EP w m (EpAnn a) markLensKw (EpAnn anc a cs) l kw = do loc <- markKwA kw (view l a) return (EpAnn anc (set l loc a) cs) -markAnnKwL :: (Monad m, Monoid w) - => EpAnn a -> Lens a EpaLocation -> AnnKeywordId -> EP w m (EpAnn a) -markAnnKwL = markLensKw +markLensKw' :: (Monad m, Monoid w) + => a -> Lens a EpaLocation -> AnnKeywordId -> EP w m a +markLensKw' a l kw = do + loc <- markKwA kw (view l a) + return (set l loc a) markAnnKwAllL :: (Monad m, Monoid w) - => EpAnn a -> Lens a [EpaLocation] -> AnnKeywordId -> EP w m (EpAnn a) -markAnnKwAllL (EpAnn anc a cs) l kw = do + => a -> Lens a [EpaLocation] -> AnnKeywordId -> EP w m a +markAnnKwAllL a l kw = do anns <- mapM (markKwA kw) (view l a) - return (EpAnn anc (set l anns a) cs) + return (set l anns a) markLensKwM :: (Monad m, Monoid w) => EpAnn a -> Lens a (Maybe EpaLocation) -> AnnKeywordId -> EP w m (EpAnn a) @@ -1257,6 +1327,15 @@ markLensKwM (EpAnn anc a cs) l kw = do go Nothing = return Nothing go (Just s) = Just <$> markKwA kw s +markLensKwM' :: (Monad m, Monoid w) + => a -> Lens a (Maybe EpaLocation) -> AnnKeywordId -> EP w m a +markLensKwM' a l kw = do + new <- go (view l a) + return (set l new a) + where + go Nothing = return Nothing + go (Just s) = Just <$> markKwA kw s + -- --------------------------------------------------------------------- markEpAnnL :: (Monad m, Monoid w) @@ -1265,6 +1344,12 @@ markEpAnnL (EpAnn anc a cs) l kw = do anns <- mark' (view l a) kw return (EpAnn anc (set l anns a) cs) +markEpAnnL' :: (Monad m, Monoid w) + => ann -> Lens ann [AddEpAnn] -> AnnKeywordId -> EP w m ann +markEpAnnL' a l kw = do + anns <- mark' (view l a) kw + return (set l anns a) + markEpAnnAllL :: (Monad m, Monoid w) => EpAnn ann -> Lens ann [AddEpAnn] -> AnnKeywordId -> EP w m (EpAnn ann) markEpAnnAllL (EpAnn anc a cs) l kw = do @@ -1276,6 +1361,17 @@ markEpAnnAllL (EpAnn anc a cs) l kw = do then markKw an else return an +markEpAnnAllL' :: (Monad m, Monoid w) + => ann -> Lens ann [AddEpAnn] -> AnnKeywordId -> EP w m ann +markEpAnnAllL' a l kw = do + anns <- mapM doit (view l a) + return (set l anns a) + where + doit an@(AddEpAnn ka _) + = if ka == kw + then markKw an + else return an + markAddEpAnn :: (Monad m, Monoid w) => AddEpAnn -> EP w m AddEpAnn markAddEpAnn a@(AddEpAnn kw _) = do r <- mark' [a] kw @@ -1339,6 +1435,13 @@ markAnnList ann action = do r <- action return (a,r) +markAnnList' :: (Monad m, Monoid w) + => AnnList -> EP w m a -> EP w m (AnnList, a) +markAnnList' ann action = do + markAnnListA' ann $ \a -> do + r <- action + return (a,r) + markAnnListA :: (Monad m, Monoid w) => EpAnn AnnList -> (EpAnn AnnList -> EP w m (EpAnn AnnList, a)) @@ -1350,6 +1453,17 @@ markAnnListA an action = do an3 <- markLensMAA an2 lal_close return (an3, r) +markAnnListA' :: (Monad m, Monoid w) + => AnnList + -> (AnnList -> EP w m (AnnList, a)) + -> EP w m (AnnList, a) +markAnnListA' an action = do + an0 <- markLensMAA' an lal_open + an1 <- markEpAnnAllL' an0 lal_rest AnnSemi + (an2, r) <- action an1 + an3 <- markLensMAA' an2 lal_close + return (an3, r) + -- --------------------------------------------------------------------- printCommentsBefore :: (Monad m, Monoid w) => RealSrcSpan -> EP w m () @@ -1795,16 +1909,14 @@ instance ExactPrint (InstDecl GhcPs) where data DataFamInstDeclWithContext = DataFamInstDeclWithContext - { _dc_a :: EpAnn [AddEpAnn] + { _dc_a :: [AddEpAnn] , _dc_f :: TopLevelFlag , dc_d :: DataFamInstDecl GhcPs } instance ExactPrint DataFamInstDeclWithContext where - getAnnotationEntry (DataFamInstDeclWithContext _ _ (DataFamInstDecl (FamEqn { feqn_ext = an}))) - = fromAnn an - setAnnotationAnchor (DataFamInstDeclWithContext a c (DataFamInstDecl fe)) anc ts cs - = (DataFamInstDeclWithContext a c (DataFamInstDecl (fe { feqn_ext = (setAnchorEpa (feqn_ext fe) anc ts cs)}))) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (DataFamInstDeclWithContext an c d) = do debugM $ "starting DataFamInstDeclWithContext:an=" ++ showAst an (an', d') <- exactDataFamInstDecl an c d @@ -1813,8 +1925,8 @@ instance ExactPrint DataFamInstDeclWithContext where -- --------------------------------------------------------------------- exactDataFamInstDecl :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] -> TopLevelFlag -> DataFamInstDecl GhcPs - -> EP w m (EpAnn [AddEpAnn], DataFamInstDecl GhcPs) + => [AddEpAnn] -> TopLevelFlag -> DataFamInstDecl GhcPs + -> EP w m ([AddEpAnn], DataFamInstDecl GhcPs) exactDataFamInstDecl an top_lvl (DataFamInstDecl (FamEqn { feqn_ext = an2 , feqn_tycon = tycon @@ -1836,14 +1948,14 @@ exactDataFamInstDecl an top_lvl where pp_hdr :: (Monad m, Monoid w) => Maybe (LHsContext GhcPs) - -> EP w m ( EpAnn [AddEpAnn] + -> EP w m ( [AddEpAnn] , LocatedN RdrName , HsOuterTyVarBndrs () GhcPs , HsFamEqnPats GhcPs , Maybe (LHsContext GhcPs)) pp_hdr mctxt = do an0 <- case top_lvl of - TopLevel -> markEpAnnL an lidl AnnInstance -- TODO: maybe in toplevel + TopLevel -> markEpAnnL' an lidl AnnInstance -- TODO: maybe in toplevel NotTopLevel -> return an exactHsFamInstLHS an0 tycon bndrs pats fixity mctxt @@ -1862,13 +1974,13 @@ rendering the DataDefn are contained in the FamEqn, and are called -- --------------------------------------------------------------------- instance ExactPrint (DerivDecl GhcPs) where - getAnnotationEntry (DerivDecl {deriv_ext = (_, an)} ) = fromAnn an - setAnnotationAnchor (dd@DerivDecl {deriv_ext = (w, an)}) anc ts cs - = dd { deriv_ext = (w, setAnchorEpa an anc ts cs) } + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a + exact (DerivDecl (mw, an) typ ms mov) = do - an0 <- markEpAnnL an lidl AnnDeriving + an0 <- markEpAnnL' an lidl AnnDeriving ms' <- mapM markAnnotated ms - an1 <- markEpAnnL an0 lidl AnnInstance + an1 <- markEpAnnL' an0 lidl AnnInstance mw' <- mapM markAnnotated mw mov' <- mapM markAnnotated mov typ' <- markAnnotated typ @@ -1877,29 +1989,26 @@ instance ExactPrint (DerivDecl GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (ForeignDecl GhcPs) where - getAnnotationEntry (ForeignImport an _ _ _) = fromAnn an - getAnnotationEntry (ForeignExport an _ _ _) = fromAnn an - - setAnnotationAnchor (ForeignImport an a b c) anc ts cs = ForeignImport (setAnchorEpa an anc ts cs) a b c - setAnnotationAnchor (ForeignExport an a b c) anc ts cs = ForeignExport (setAnchorEpa an anc ts cs) a b c + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (ForeignImport an n ty fimport) = do - an0 <- markEpAnnL an lidl AnnForeign - an1 <- markEpAnnL an0 lidl AnnImport + an0 <- markEpAnnL' an lidl AnnForeign + an1 <- markEpAnnL' an0 lidl AnnImport fimport' <- markAnnotated fimport n' <- markAnnotated n - an2 <- markEpAnnL an1 lidl AnnDcolon + an2 <- markEpAnnL' an1 lidl AnnDcolon ty' <- markAnnotated ty return (ForeignImport an2 n' ty' fimport') exact (ForeignExport an n ty fexport) = do - an0 <- markEpAnnL an lidl AnnForeign - an1 <- markEpAnnL an0 lidl AnnExport + an0 <- markEpAnnL' an lidl AnnForeign + an1 <- markEpAnnL' an0 lidl AnnExport fexport' <- markAnnotated fexport n' <- markAnnotated n - an2 <- markEpAnnL an1 lidl AnnDcolon + an2 <- markEpAnnL' an1 lidl AnnDcolon ty' <- markAnnotated ty return (ForeignExport an2 n' ty' fexport') @@ -1952,38 +2061,39 @@ instance ExactPrint CCallConv where -- --------------------------------------------------------------------- instance ExactPrint (WarnDecls GhcPs) where - getAnnotationEntry (Warnings (an,_) _) = fromAnn an - setAnnotationAnchor (Warnings (an,a) b) anc ts cs = Warnings ((setAnchorEpa an anc ts cs),a) b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (Warnings (an,src) warns) = do an0 <- markAnnOpen an src "{-# WARNING" -- Note: might be {-# DEPRECATED warns' <- markAnnotated warns - an1 <- markEpAnnLMS an0 lidl AnnClose (Just "#-}") + an1 <- markEpAnnLMS'' an0 lidl AnnClose (Just "#-}") return (Warnings (an1,src) warns') -- --------------------------------------------------------------------- instance ExactPrint (WarnDecl GhcPs) where - getAnnotationEntry (Warning (_, an) _ _) = fromAnn an - setAnnotationAnchor (Warning (ns_spec, an) a b) anc ts cs - = Warning (ns_spec, setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (Warning (ns_spec, an) lns (WarningTxt mb_cat src ls )) = do mb_cat' <- markAnnotated mb_cat ns_spec' <- exactNsSpec ns_spec lns' <- markAnnotated lns - an0 <- markEpAnnL an lidl AnnOpenS -- "[" + an0 <- markEpAnnL' an lidl AnnOpenS -- "[" ls' <- markAnnotated ls - an1 <- markEpAnnL an0 lidl AnnCloseS -- "]" + an1 <- markEpAnnL' an0 lidl AnnCloseS -- "]" return (Warning (ns_spec', an1) lns' (WarningTxt mb_cat' src ls')) + -- return (Warning an1 lns' (WarningTxt mb_cat' src ls')) exact (Warning (ns_spec, an) lns (DeprecatedTxt src ls)) = do ns_spec' <- exactNsSpec ns_spec lns' <- markAnnotated lns - an0 <- markEpAnnL an lidl AnnOpenS -- "[" + an0 <- markEpAnnL' an lidl AnnOpenS -- "[" ls' <- markAnnotated ls - an1 <- markEpAnnL an0 lidl AnnCloseS -- "]" + an1 <- markEpAnnL' an0 lidl AnnCloseS -- "]" return (Warning (ns_spec', an1) lns' (DeprecatedTxt src ls')) + -- return (Warning an1 lns' (DeprecatedTxt src ls')) exactNsSpec :: (Monad m, Monoid w) => NamespaceSpecifier -> EP w m NamespaceSpecifier exactNsSpec NoNamespaceSpecifier = pure NoNamespaceSpecifier @@ -2018,66 +2128,63 @@ instance ExactPrint FastString where -- --------------------------------------------------------------------- instance ExactPrint (RuleDecls GhcPs) where - getAnnotationEntry (HsRules (an,_) _) = fromAnn an - setAnnotationAnchor (HsRules (an,a) b) anc ts cs = HsRules ((setAnchorEpa an anc ts cs),a) b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (HsRules (an, src) rules) = do an0 <- case src of - NoSourceText -> markEpAnnLMS an lidl AnnOpen (Just "{-# RULES") - SourceText srcTxt -> markEpAnnLMS an lidl AnnOpen (Just $ unpackFS srcTxt) + NoSourceText -> markEpAnnLMS'' an lidl AnnOpen (Just "{-# RULES") + SourceText srcTxt -> markEpAnnLMS'' an lidl AnnOpen (Just $ unpackFS srcTxt) rules' <- markAnnotated rules - an1 <- markEpAnnLMS an0 lidl AnnClose (Just "#-}") + an1 <- markEpAnnLMS'' an0 lidl AnnClose (Just "#-}") return (HsRules (an1,src) rules') -- --------------------------------------------------------------------- instance ExactPrint (RuleDecl GhcPs) where - getAnnotationEntry (HsRule {rd_ext = (an,_)}) = fromAnn an - setAnnotationAnchor r@(HsRule {rd_ext = (an,a)}) anc ts cs - = r { rd_ext = (setAnchorEpa an anc ts cs, a)} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a + exact (HsRule (an,nsrc) (L ln n) act mtybndrs termbndrs lhs rhs) = do - debugM "HsRule entered" (L ln' _) <- markAnnotated (L ln (nsrc, n)) - debugM "HsRule after ln" an0 <- markActivation an lra_rest act - debugM "HsRule after act" (an1, mtybndrs') <- case mtybndrs of Nothing -> return (an0, Nothing) Just bndrs -> do - an1 <- markLensMAA an0 lra_tyanns_fst -- AnnForall + an1 <- markLensMAA' an0 lra_tyanns_fst -- AnnForall bndrs' <- mapM markAnnotated bndrs - an2 <- markLensMAA an1 lra_tyanns_snd -- AnnDot + an2 <- markLensMAA' an1 lra_tyanns_snd -- AnnDot return (an2, Just bndrs') - an2 <- markLensMAA an1 lra_tmanns_fst -- AnnForall + an2 <- markLensMAA' an1 lra_tmanns_fst -- AnnForall termbndrs' <- mapM markAnnotated termbndrs - an3 <- markLensMAA an2 lra_tmanns_snd -- AnnDot + an3 <- markLensMAA' an2 lra_tmanns_snd -- AnnDot lhs' <- markAnnotated lhs - an4 <- markEpAnnL an3 lra_rest AnnEqual + an4 <- markEpAnnL' an3 lra_rest AnnEqual rhs' <- markAnnotated rhs return (HsRule (an4,nsrc) (L ln' n) act mtybndrs' termbndrs' lhs' rhs') markActivation :: (Monad m, Monoid w) - => EpAnn a -> Lens a [AddEpAnn] -> Activation -> EP w m (EpAnn a) + => a -> Lens a [AddEpAnn] -> Activation -> EP w m a markActivation an l act = do case act of ActiveBefore src phase -> do - an0 <- markEpAnnL an l AnnOpenS -- '[' - an1 <- markEpAnnL an0 l AnnTilde -- ~ - an2 <- markEpAnnLMS an1 l AnnVal (Just (toSourceTextWithSuffix src (show phase) "")) - an3 <- markEpAnnL an2 l AnnCloseS -- ']' + an0 <- markEpAnnL' an l AnnOpenS -- '[' + an1 <- markEpAnnL' an0 l AnnTilde -- ~ + an2 <- markEpAnnLMS'' an1 l AnnVal (Just (toSourceTextWithSuffix src (show phase) "")) + an3 <- markEpAnnL' an2 l AnnCloseS -- ']' return an3 ActiveAfter src phase -> do - an0 <- markEpAnnL an l AnnOpenS -- '[' - an1 <- markEpAnnLMS an0 l AnnVal (Just (toSourceTextWithSuffix src (show phase) "")) - an2 <- markEpAnnL an1 l AnnCloseS -- ']' + an0 <- markEpAnnL' an l AnnOpenS -- '[' + an1 <- markEpAnnLMS'' an0 l AnnVal (Just (toSourceTextWithSuffix src (show phase) "")) + an2 <- markEpAnnL' an1 l AnnCloseS -- ']' return an2 NeverActive -> do - an0 <- markEpAnnL an l AnnOpenS -- '[' - an1 <- markEpAnnL an0 l AnnTilde -- ~ - an2 <- markEpAnnL an1 l AnnCloseS -- ']' + an0 <- markEpAnnL' an l AnnOpenS -- '[' + an1 <- markEpAnnL' an0 l AnnTilde -- ~ + an2 <- markEpAnnL' an1 l AnnCloseS -- ']' return an2 _ -> return an @@ -2103,11 +2210,12 @@ instance ExactPrint (DocDecl GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (RoleAnnotDecl GhcPs) where - getAnnotationEntry (RoleAnnotDecl an _ _) = fromAnn an - setAnnotationAnchor (RoleAnnotDecl an a b) anc ts cs = RoleAnnotDecl (setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a + exact (RoleAnnotDecl an ltycon roles) = do - an0 <- markEpAnnL an lidl AnnType - an1 <- markEpAnnL an0 lidl AnnRole + an0 <- markEpAnnL' an lidl AnnType + an1 <- markEpAnnL' an0 lidl AnnRole ltycon' <- markAnnotated ltycon let markRole (L l (Just r)) = do (L _ r') <- markAnnotated (L l r) @@ -2135,18 +2243,18 @@ instance ExactPrint (RuleBndr GhcPs) where ln' <- markAnnotated ln return (RuleBndr x ln') exact (RuleBndrSig an ln (HsPS x ty)) = do - an0 <- markEpAnnL an lidl AnnOpenP -- "(" + an0 <- markEpAnnL' an lidl AnnOpenP -- "(" ln' <- markAnnotated ln - an1 <- markEpAnnL an0 lidl AnnDcolon + an1 <- markEpAnnL' an0 lidl AnnDcolon ty' <- markAnnotated ty - an2 <- markEpAnnL an1 lidl AnnCloseP -- ")" + an2 <- markEpAnnL' an1 lidl AnnCloseP -- ")" return (RuleBndrSig an2 ln' (HsPS x ty')) -- --------------------------------------------------------------------- instance (ExactPrint body) => ExactPrint (FamEqn GhcPs body) where - getAnnotationEntry (FamEqn { feqn_ext = an}) = fromAnn an - setAnnotationAnchor fe anc ts cs = fe {feqn_ext = setAnchorEpa (feqn_ext fe) anc ts cs} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor fe _ _ _s = fe exact (FamEqn { feqn_ext = an , feqn_tycon = tycon , feqn_bndrs = bndrs @@ -2154,7 +2262,7 @@ instance (ExactPrint body) => ExactPrint (FamEqn GhcPs body) where , feqn_fixity = fixity , feqn_rhs = rhs }) = do (an0, tycon', bndrs', pats', _) <- exactHsFamInstLHS an tycon bndrs pats fixity Nothing - an1 <- markEpAnnL an0 lidl AnnEqual + an1 <- markEpAnnL' an0 lidl AnnEqual rhs' <- markAnnotated rhs return (FamEqn { feqn_ext = an1 , feqn_tycon = tycon' @@ -2167,34 +2275,34 @@ instance (ExactPrint body) => ExactPrint (FamEqn GhcPs body) where exactHsFamInstLHS :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] + => [AddEpAnn] -> LocatedN RdrName -> HsOuterTyVarBndrs () GhcPs -> HsFamEqnPats GhcPs -> LexicalFixity -> Maybe (LHsContext GhcPs) - -> EP w m ( EpAnn [AddEpAnn] + -> EP w m ( [AddEpAnn] , LocatedN RdrName , HsOuterTyVarBndrs () GhcPs , HsFamEqnPats GhcPs, Maybe (LHsContext GhcPs)) exactHsFamInstLHS an thing bndrs typats fixity mb_ctxt = do - an0 <- markEpAnnL an lidl AnnForall + an0 <- markEpAnnL' an lidl AnnForall bndrs' <- markAnnotated bndrs - an1 <- markEpAnnL an0 lidl AnnDot + an1 <- markEpAnnL' an0 lidl AnnDot mb_ctxt' <- mapM markAnnotated mb_ctxt (an2, thing', typats') <- exact_pats an1 typats return (an2, thing', bndrs', typats', mb_ctxt') where exact_pats :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] -> HsFamEqnPats GhcPs -> EP w m (EpAnn [AddEpAnn], LocatedN RdrName, HsFamEqnPats GhcPs) + => [AddEpAnn] -> HsFamEqnPats GhcPs -> EP w m ([AddEpAnn], LocatedN RdrName, HsFamEqnPats GhcPs) exact_pats an' (patl:patr:pats) | Infix <- fixity = let exact_op_app = do - an0 <- markEpAnnAllL an' lidl AnnOpenP + an0 <- markEpAnnAllL' an' lidl AnnOpenP patl' <- markAnnotated patl thing' <- markAnnotated thing patr' <- markAnnotated patr - an1 <- markEpAnnAllL an0 lidl AnnCloseP + an1 <- markEpAnnAllL' an0 lidl AnnCloseP return (an1, thing', [patl',patr']) in case pats of [] -> exact_op_app @@ -2204,10 +2312,10 @@ exactHsFamInstLHS an thing bndrs typats fixity mb_ctxt = do return (an0, thing', p++pats') exact_pats an' pats = do - an0 <- markEpAnnAllL an' lidl AnnOpenP + an0 <- markEpAnnAllL' an' lidl AnnOpenP thing' <- markAnnotated thing pats' <- markAnnotated pats - an1 <- markEpAnnAllL an0 lidl AnnCloseP + an1 <- markEpAnnAllL' an0 lidl AnnCloseP return (an1, thing', pats') -- --------------------------------------------------------------------- @@ -2224,9 +2332,8 @@ instance (ExactPrint tm, ExactPrint ty, Outputable tm, Outputable ty) -- --------------------------------------------------------------------- instance ExactPrint (ClsInstDecl GhcPs) where - getAnnotationEntry (ClsInstDecl { cid_ext = (_, an, _) }) = fromAnn an - setAnnotationAnchor (cid@ClsInstDecl { cid_ext = (mbWarn, an, sortKey) }) anc ts cs - = cid { cid_ext = (mbWarn, setAnchorEpa an anc ts cs, sortKey) } + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (ClsInstDecl { cid_ext = (mbWarn, an, sortKey) , cid_poly_ty = inst_ty, cid_binds = binds @@ -2235,15 +2342,15 @@ instance ExactPrint (ClsInstDecl GhcPs) where , cid_datafam_insts = adts }) = do (mbWarn', an0, mbOverlap', inst_ty') <- top_matter - an1 <- markEpAnnL an0 lidl AnnOpenC - an2 <- markEpAnnAllL an1 lid AnnSemi + an1 <- markEpAnnL' an0 lidl AnnOpenC + an2 <- markEpAnnAllL' an1 lid AnnSemi ds <- withSortKey sortKey [(ClsAtdTag, prepareListAnnotationA ats), (ClsAtdTag, prepareListAnnotationF an adts), (ClsMethodTag, prepareListAnnotationA (bagToList binds)), (ClsSigTag, prepareListAnnotationA sigs) ] - an3 <- markEpAnnL an2 lidl AnnCloseC -- '}' + an3 <- markEpAnnL' an2 lidl AnnCloseC -- '}' let ats' = undynamic ds adts' = undynamic ds @@ -2257,22 +2364,22 @@ instance ExactPrint (ClsInstDecl GhcPs) where where top_matter = do - an0 <- markEpAnnL an lidl AnnInstance + an0 <- markEpAnnL' an lidl AnnInstance mw <- mapM markAnnotated mbWarn mo <- mapM markAnnotated mbOverlap it <- markAnnotated inst_ty - an1 <- markEpAnnL an0 lidl AnnWhere -- Optional + an1 <- markEpAnnL' an0 lidl AnnWhere -- Optional return (mw, an1, mo,it) -- --------------------------------------------------------------------- instance ExactPrint (TyFamInstDecl GhcPs) where - getAnnotationEntry (TyFamInstDecl an _) = fromAnn an - setAnnotationAnchor (TyFamInstDecl an a) anc ts cs = TyFamInstDecl (setAnchorEpa an anc ts cs) a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact d@(TyFamInstDecl { tfid_xtn = an, tfid_eqn = eqn }) = do - an0 <- markEpAnnL an lidl AnnType - an1 <- markEpAnnL an0 lidl AnnInstance + an0 <- markEpAnnL' an lidl AnnType + an1 <- markEpAnnL' an0 lidl AnnInstance eqn' <- markAnnotated eqn return (d { tfid_xtn = an1, tfid_eqn = eqn' }) @@ -2316,12 +2423,7 @@ instance ExactPrint (LocatedP OverlapMode) where -- --------------------------------------------------------------------- instance ExactPrint (HsBind GhcPs) where - getAnnotationEntry FunBind{} = NoEntryVal - getAnnotationEntry PatBind{pat_ext=an} = fromAnn an - getAnnotationEntry VarBind{} = NoEntryVal - getAnnotationEntry PatSynBind{} = NoEntryVal - - setAnnotationAnchor pb@PatBind{} anc ts cs = pb { pat_ext = setAnchorEpa (pat_ext pb) anc ts cs} + getAnnotationEntry _ = NoEntryVal setAnnotationAnchor a _ _ _ = a exact (FunBind x fid matches) = do @@ -2347,14 +2449,14 @@ instance ExactPrint (HsBind GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (PatSynBind GhcPs GhcPs) where - getAnnotationEntry (PSB { psb_ext = an}) = fromAnn an - setAnnotationAnchor p anc ts cs = p { psb_ext = setAnchorEpa (psb_ext p) anc ts cs} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (PSB{ psb_ext = an , psb_id = psyn, psb_args = details , psb_def = pat , psb_dir = dir }) = do - an0 <- markEpAnnL an lidl AnnPattern + an0 <- markEpAnnL' an lidl AnnPattern (an1, psyn', details') <- case details of InfixCon v1 v2 -> do @@ -2369,25 +2471,25 @@ instance ExactPrint (PatSynBind GhcPs GhcPs) where return (an0, psyn', PrefixCon tvs' vs') RecCon vs -> do psyn' <- markAnnotated psyn - an1 <- markEpAnnL an0 lidl AnnOpenC -- '{' + an1 <- markEpAnnL' an0 lidl AnnOpenC -- '{' vs' <- markAnnotated vs - an2 <- markEpAnnL an1 lidl AnnCloseC -- '}' + an2 <- markEpAnnL' an1 lidl AnnCloseC -- '}' return (an2, psyn', RecCon vs') (an2, pat', dir') <- case dir of Unidirectional -> do - an2 <- markEpAnnL an1 lidl AnnLarrow + an2 <- markEpAnnL' an1 lidl AnnLarrow pat' <- markAnnotated pat return (an2, pat', dir) ImplicitBidirectional -> do - an2 <- markEpAnnL an1 lidl AnnEqual + an2 <- markEpAnnL' an1 lidl AnnEqual pat' <- markAnnotated pat return (an2, pat', dir) ExplicitBidirectional mg -> do - an2 <- markEpAnnL an1 lidl AnnLarrow + an2 <- markEpAnnL' an1 lidl AnnLarrow pat' <- markAnnotated pat - an3 <- markEpAnnL an2 lidl AnnWhere + an3 <- markEpAnnL' an2 lidl AnnWhere mg' <- markAnnotated mg return (an3, pat', ExplicitBidirectional mg') @@ -2408,8 +2510,8 @@ instance ExactPrint (RecordPatSynField GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) where - getAnnotationEntry (Match ann _ _ _) = fromAnn ann - setAnnotationAnchor (Match an a b c) anc ts cs = Match (setAnchorEpa an anc ts cs) a b c + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (Match an mctxt pats grhss) = exactMatch (Match an mctxt pats grhss) @@ -2417,8 +2519,8 @@ instance ExactPrint (Match GhcPs (LocatedA (HsCmd GhcPs))) where -- ------------------------------------- instance ExactPrint (Match GhcPs (LocatedA (HsExpr GhcPs))) where - getAnnotationEntry (Match ann _ _ _) = fromAnn ann - setAnnotationAnchor (Match an a b c) anc ts cs = Match (setAnchorEpa an anc ts cs) a b c + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (Match an mctxt pats grhss) = exactMatch (Match an mctxt pats grhss) @@ -2437,7 +2539,7 @@ exactMatch (Match an mctxt pats grhss) = do debugM $ "exact Match FunRhs:" ++ showPprUnsafe fun an0' <- case strictness of - SrcStrict -> markEpAnnL an lidl AnnBang + SrcStrict -> markEpAnnL' an lidl AnnBang _ -> pure an case fixity of Prefix -> do @@ -2454,18 +2556,18 @@ exactMatch (Match an mctxt pats grhss) = do p2' <- markAnnotated p2 return (an0', FunRhs fun' fixity strictness, [p1',p2']) | otherwise -> do - an0 <- markEpAnnL an0' lidl AnnOpenP + an0 <- markEpAnnL' an0' lidl AnnOpenP p1' <- markAnnotated p1 fun' <- markAnnotated fun p2' <- markAnnotated p2 - an1 <- markEpAnnL an0 lidl AnnCloseP + an1 <- markEpAnnL' an0 lidl AnnCloseP rest' <- mapM markAnnotated rest return (an1, FunRhs fun' fixity strictness, p1':p2':rest') _ -> panic "FunRhs" -- ToDo: why is LamSingle treated differently? LamAlt LamSingle -> do - an0' <- markEpAnnL an lidl AnnLam + an0' <- markEpAnnL' an lidl AnnLam pats' <- markAnnotated pats return (an0', LamAlt LamSingle, pats') LamAlt v -> do @@ -2570,12 +2672,12 @@ instance ExactPrint (HsIPBinds GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (IPBind GhcPs) where - getAnnotationEntry (IPBind an _ _) = fromAnn an - setAnnotationAnchor (IPBind an a b) anc ts cs = IPBind (setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (IPBind an lr rhs) = do lr' <- markAnnotated lr - an0 <- markEpAnnL an lidl AnnEqual + an0 <- markEpAnnL' an lidl AnnEqual rhs' <- markAnnotated rhs return (IPBind an0 lr' rhs') @@ -2592,7 +2694,7 @@ instance ExactPrint HsIPName where -- Managing lists which have been separated, e.g. Sigs and Binds prepareListAnnotationF :: (Monad m, Monoid w) => - EpAnn [AddEpAnn] -> [LDataFamInstDecl GhcPs] -> [(RealSrcSpan,EP w m Dynamic)] + [AddEpAnn] -> [LDataFamInstDecl GhcPs] -> [(RealSrcSpan,EP w m Dynamic)] prepareListAnnotationF an ls = map (\b -> (realSrcSpan $ getLocA b, go b)) ls where go (L l a) = do @@ -2621,42 +2723,23 @@ orderByFst (a,_) (b,_) = compare a b -- --------------------------------------------------------------------- instance ExactPrint (Sig GhcPs) where - getAnnotationEntry (TypeSig a _ _) = fromAnn a - getAnnotationEntry (PatSynSig a _ _) = fromAnn a - getAnnotationEntry (ClassOpSig a _ _ _) = fromAnn a - getAnnotationEntry (FixSig a _) = fromAnn a - getAnnotationEntry (InlineSig a _ _) = fromAnn a - getAnnotationEntry (SpecSig a _ _ _) = fromAnn a - getAnnotationEntry (SpecInstSig (a, _) _) = fromAnn a - getAnnotationEntry (MinimalSig (a, _) _) = fromAnn a - getAnnotationEntry (SCCFunSig (a, _) _ _) = fromAnn a - getAnnotationEntry (CompleteMatchSig (a, _) _ _) = fromAnn a - - setAnnotationAnchor (TypeSig a x y) anc ts cs = (TypeSig (setAnchorEpa a anc ts cs) x y) - setAnnotationAnchor (PatSynSig a x y) anc ts cs = (PatSynSig (setAnchorEpa a anc ts cs) x y) - setAnnotationAnchor (ClassOpSig a x y z) anc ts cs = (ClassOpSig (setAnchorEpa a anc ts cs) x y z) - setAnnotationAnchor (FixSig a x) anc ts cs = (FixSig (setAnchorEpa a anc ts cs) x) - setAnnotationAnchor (InlineSig a x y) anc ts cs = (InlineSig (setAnchorEpa a anc ts cs) x y) - setAnnotationAnchor (SpecSig a x y z) anc ts cs = (SpecSig (setAnchorEpa a anc ts cs) x y z) - setAnnotationAnchor (SpecInstSig (a,x) y) anc ts cs = (SpecInstSig ((setAnchorEpa a anc ts cs),x) y) - setAnnotationAnchor (MinimalSig (a,x) y) anc ts cs = (MinimalSig ((setAnchorEpa a anc ts cs),x) y) - setAnnotationAnchor (SCCFunSig (a,x) y z) anc ts cs = (SCCFunSig ((setAnchorEpa a anc ts cs),x) y z) - setAnnotationAnchor (CompleteMatchSig (a,x) y z) anc ts cs = (CompleteMatchSig ((setAnchorEpa a anc ts cs),x) y z) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (TypeSig an vars ty) = do (an', vars', ty') <- exactVarSig an vars ty return (TypeSig an' vars' ty') exact (PatSynSig an lns typ) = do - an0 <- markEpAnnL an lasRest AnnPattern + an0 <- markEpAnnL' an lasRest AnnPattern lns' <- markAnnotated lns - an1 <- markLensAA an0 lasDcolon + an1 <- markLensAA' an0 lasDcolon typ' <- markAnnotated typ return (PatSynSig an1 lns' typ') exact (ClassOpSig an is_deflt vars ty) | is_deflt = do - an0 <- markEpAnnL an lasRest AnnDefault + an0 <- markEpAnnL' an lasRest AnnDefault (an1, vars',ty') <- exactVarSig an0 vars ty return (ClassOpSig an1 is_deflt vars' ty') | otherwise = do @@ -2668,8 +2751,8 @@ instance ExactPrint (Sig GhcPs) where InfixL -> "infixl" InfixR -> "infixr" InfixN -> "infix" - an0 <- markEpAnnLMS an lidl AnnInfix (Just fixstr) - an1 <- markEpAnnLMS an0 lidl AnnVal (Just (sourceTextToString src (show v))) + an0 <- markEpAnnLMS'' an lidl AnnInfix (Just fixstr) + an1 <- markEpAnnLMS'' an0 lidl AnnVal (Just (sourceTextToString src (show v))) names' <- markAnnotated names return (FixSig an1 (FixitySig x names' (Fixity src v fdir))) @@ -2677,40 +2760,36 @@ instance ExactPrint (Sig GhcPs) where an0 <- markAnnOpen an (inl_src inl) "{-# INLINE" an1 <- markActivation an0 id (inl_act inl) ln' <- markAnnotated ln - debugM $ "InlineSig:an=" ++ showAst an - p <- getPosP - debugM $ "InlineSig: p=" ++ show p - an2 <- markEpAnnLMS an1 lidl AnnClose (Just "#-}") - debugM $ "InlineSig:done" + an2 <- markEpAnnLMS'' an1 lidl AnnClose (Just "#-}") return (InlineSig an2 ln' inl) exact (SpecSig an ln typs inl) = do an0 <- markAnnOpen an (inl_src inl) "{-# SPECIALISE" -- Note: may be {-# SPECIALISE_INLINE an1 <- markActivation an0 lidl (inl_act inl) ln' <- markAnnotated ln - an2 <- markEpAnnL an1 lidl AnnDcolon + an2 <- markEpAnnL' an1 lidl AnnDcolon typs' <- markAnnotated typs - an3 <- markEpAnnLMS an2 lidl AnnClose (Just "#-}") + an3 <- markEpAnnLMS'' an2 lidl AnnClose (Just "#-}") return (SpecSig an3 ln' typs' inl) exact (SpecInstSig (an,src) typ) = do an0 <- markAnnOpen an src "{-# SPECIALISE" - an1 <- markEpAnnL an0 lidl AnnInstance + an1 <- markEpAnnL' an0 lidl AnnInstance typ' <- markAnnotated typ - an2 <- markEpAnnLMS an1 lidl AnnClose (Just "#-}") + an2 <- markEpAnnLMS'' an1 lidl AnnClose (Just "#-}") return (SpecInstSig (an2,src) typ') exact (MinimalSig (an,src) formula) = do an0 <- markAnnOpen an src "{-# MINIMAL" formula' <- markAnnotated formula - an1 <- markEpAnnLMS an0 lidl AnnClose (Just "#-}") + an1 <- markEpAnnLMS'' an0 lidl AnnClose (Just "#-}") return (MinimalSig (an1,src) formula') exact (SCCFunSig (an,src) ln ml) = do an0 <- markAnnOpen an src "{-# SCC" ln' <- markAnnotated ln ml' <- markAnnotated ml - an1 <- markEpAnnLMS an0 lidl AnnClose (Just "#-}") + an1 <- markEpAnnLMS'' an0 lidl AnnClose (Just "#-}") return (SCCFunSig (an1,src) ln' ml') exact (CompleteMatchSig (an,src) cs mty) = do @@ -2720,71 +2799,71 @@ instance ExactPrint (Sig GhcPs) where case mty of Nothing -> return (an0, mty) Just ty -> do - an1 <- markEpAnnL an0 lidl AnnDcolon + an1 <- markEpAnnL' an0 lidl AnnDcolon ty' <- markAnnotated ty return (an1, Just ty') - an2 <- markEpAnnLMS an1 lidl AnnClose (Just "#-}") + an2 <- markEpAnnLMS'' an1 lidl AnnClose (Just "#-}") return (CompleteMatchSig (an2,src) cs' mty') -- --------------------------------------------------------------------- exactVarSig :: (Monad m, Monoid w, ExactPrint a) - => EpAnn AnnSig -> [LocatedN RdrName] -> a -> EP w m (EpAnn AnnSig, [LocatedN RdrName], a) + => AnnSig -> [LocatedN RdrName] -> a -> EP w m (AnnSig, [LocatedN RdrName], a) exactVarSig an vars ty = do vars' <- mapM markAnnotated vars - an0 <- markLensAA an lasDcolon + an0 <- markLensAA' an lasDcolon ty' <- markAnnotated ty return (an0, vars', ty') -- --------------------------------------------------------------------- instance ExactPrint (StandaloneKindSig GhcPs) where - getAnnotationEntry (StandaloneKindSig an _ _) = fromAnn an - setAnnotationAnchor (StandaloneKindSig an a b) anc ts cs = StandaloneKindSig (setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (StandaloneKindSig an vars sig) = do - an0 <- markEpAnnL an lidl AnnType + an0 <- markEpAnnL' an lidl AnnType vars' <- markAnnotated vars - an1 <- markEpAnnL an0 lidl AnnDcolon + an1 <- markEpAnnL' an0 lidl AnnDcolon sig' <- markAnnotated sig return (StandaloneKindSig an1 vars' sig') -- --------------------------------------------------------------------- instance ExactPrint (DefaultDecl GhcPs) where - getAnnotationEntry (DefaultDecl an _) = fromAnn an - setAnnotationAnchor (DefaultDecl an a) anc ts cs = DefaultDecl (setAnchorEpa an anc ts cs) a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (DefaultDecl an tys) = do - an0 <- markEpAnnL an lidl AnnDefault - an1 <- markEpAnnL an0 lidl AnnOpenP + an0 <- markEpAnnL' an lidl AnnDefault + an1 <- markEpAnnL' an0 lidl AnnOpenP tys' <- markAnnotated tys - an2 <- markEpAnnL an1 lidl AnnCloseP + an2 <- markEpAnnL' an1 lidl AnnCloseP return (DefaultDecl an2 tys') -- --------------------------------------------------------------------- instance ExactPrint (AnnDecl GhcPs) where - getAnnotationEntry (HsAnnotation (an, _) _ _) = fromAnn an - setAnnotationAnchor (HsAnnotation (an,a) b c) anc ts cs = HsAnnotation ((setAnchorEpa an anc ts cs),a) b c + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (HsAnnotation (an, src) prov e) = do - an0 <- markAnnOpenP an src "{-# ANN" + an0 <- markAnnOpenP' an src "{-# ANN" (an1, prov') <- case prov of (ValueAnnProvenance n) -> do n' <- markAnnotated n return (an0, ValueAnnProvenance n') (TypeAnnProvenance n) -> do - an1 <- markEpAnnL an0 lapr_rest AnnType + an1 <- markEpAnnL' an0 lapr_rest AnnType n' <- markAnnotated n return (an1, TypeAnnProvenance n') ModuleAnnProvenance -> do - an1 <- markEpAnnL an lapr_rest AnnModule + an1 <- markEpAnnL' an lapr_rest AnnModule return (an1, prov) e' <- markAnnotated e - an2 <- markAnnCloseP an1 + an2 <- markAnnCloseP' an1 return (HsAnnotation (an2,src) prov' e') -- --------------------------------------------------------------------- @@ -2844,81 +2923,8 @@ instance ExactPrint (GRHS GhcPs (LocatedA (HsCmd GhcPs))) where -- --------------------------------------------------------------------- instance ExactPrint (HsExpr GhcPs) where - getAnnotationEntry (HsVar{}) = NoEntryVal - getAnnotationEntry (HsUnboundVar an _) = fromAnn an - getAnnotationEntry (HsRecSel{}) = NoEntryVal - getAnnotationEntry (HsOverLabel an _ _) = fromAnn an - getAnnotationEntry (HsIPVar an _) = fromAnn an - getAnnotationEntry (HsOverLit an _) = fromAnn an - getAnnotationEntry (HsLit an _) = fromAnn an - getAnnotationEntry (HsLam an _ _) = fromAnn an - getAnnotationEntry (HsApp an _ _) = fromAnn an - getAnnotationEntry (HsAppType _ _ _) = NoEntryVal - getAnnotationEntry (OpApp an _ _ _) = fromAnn an - getAnnotationEntry (NegApp an _ _) = fromAnn an - getAnnotationEntry (HsPar{}) = NoEntryVal - getAnnotationEntry (SectionL an _ _) = fromAnn an - getAnnotationEntry (SectionR an _ _) = fromAnn an - getAnnotationEntry (ExplicitTuple an _ _) = fromAnn an - getAnnotationEntry (ExplicitSum an _ _ _) = fromAnn an - getAnnotationEntry (HsCase an _ _) = fromAnn an - getAnnotationEntry (HsIf an _ _ _) = fromAnn an - getAnnotationEntry (HsMultiIf an _) = fromAnn an - getAnnotationEntry (HsLet _ _ _) = NoEntryVal - getAnnotationEntry (HsDo an _ _) = fromAnn an - getAnnotationEntry (ExplicitList an _) = fromAnn an - getAnnotationEntry (RecordCon an _ _) = fromAnn an - getAnnotationEntry (RecordUpd an _ _) = fromAnn an - getAnnotationEntry (HsGetField an _ _) = fromAnn an - getAnnotationEntry (HsProjection an _) = fromAnn an - getAnnotationEntry (ExprWithTySig an _ _) = fromAnn an - getAnnotationEntry (ArithSeq an _ _) = fromAnn an - getAnnotationEntry (HsTypedBracket an _) = fromAnn an - getAnnotationEntry (HsUntypedBracket an _) = fromAnn an - getAnnotationEntry (HsTypedSplice (_, an) _) = fromAnn an - getAnnotationEntry (HsUntypedSplice an _) = fromAnn an - getAnnotationEntry (HsProc an _ _) = fromAnn an - getAnnotationEntry (HsStatic an _) = fromAnn an - getAnnotationEntry (HsPragE{}) = NoEntryVal - getAnnotationEntry (HsEmbTy{}) = NoEntryVal - - setAnnotationAnchor a@(HsVar{}) _ _ _s = a - setAnnotationAnchor (HsUnboundVar an a) anc ts cs = (HsUnboundVar (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(HsRecSel{}) _ _ _s = a - setAnnotationAnchor (HsOverLabel an s a) anc ts cs = (HsOverLabel (setAnchorEpa an anc ts cs) s a) - setAnnotationAnchor (HsIPVar an a) anc ts cs = (HsIPVar (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsOverLit an a) anc ts cs = (HsOverLit (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsLit an a) anc ts cs = (HsLit (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsLam an a b) anc ts cs = (HsLam (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsApp an a b) anc ts cs = (HsApp (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsAppType {}) _ _ _s = a - setAnnotationAnchor (OpApp an a b c) anc ts cs = (OpApp (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (NegApp an a b) anc ts cs = (NegApp (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsPar {}) _ _ _s = a - setAnnotationAnchor (SectionL an a b) anc ts cs = (SectionL (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (SectionR an a b) anc ts cs = (SectionR (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (ExplicitTuple an a b) anc ts cs = (ExplicitTuple (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (ExplicitSum an a b c) anc ts cs = (ExplicitSum (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (HsCase an a b) anc ts cs = (HsCase (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsIf an a b c) anc ts cs = (HsIf (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (HsMultiIf an a) anc ts cs = (HsMultiIf (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(HsLet{}) _ _ _s = a - setAnnotationAnchor (HsDo an a b) anc ts cs = (HsDo (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (ExplicitList an a) anc ts cs = (ExplicitList (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (RecordCon an a b) anc ts cs = (RecordCon (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (RecordUpd an a b) anc ts cs = (RecordUpd (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsGetField an a b) anc ts cs = (HsGetField (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsProjection an a) anc ts cs = (HsProjection (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (ExprWithTySig an a b) anc ts cs = (ExprWithTySig (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (ArithSeq an a b) anc ts cs = (ArithSeq (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsTypedBracket an a) anc ts cs = (HsTypedBracket (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsUntypedBracket an a) anc ts cs = (HsUntypedBracket (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsTypedSplice (x,an) e) anc ts cs = (HsTypedSplice (x,(setAnchorEpa an anc ts cs)) e) - setAnnotationAnchor (HsUntypedSplice an e) anc ts cs = (HsUntypedSplice (setAnchorEpa an anc ts cs) e) - setAnnotationAnchor (HsProc an a b) anc ts cs = (HsProc (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsStatic an a) anc ts cs = (HsStatic (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(HsPragE{}) _ _ _s = a - setAnnotationAnchor a@(HsEmbTy{}) _ _ _s = a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _s = a exact (HsVar x n) = do -- The parser inserts a placeholder value for a record pun rhs. This must be @@ -2930,7 +2936,7 @@ instance ExactPrint (HsExpr GhcPs) where return (HsVar x n') exact x@(HsUnboundVar an _) = do case an of - EpAnn _ (Just (EpAnnUnboundVar (ob,cb) l)) _ -> do + Just (EpAnnUnboundVar (ob,cb) l) -> do printStringAtAA ob "`" >> return () printStringAtAA l "_" >> return () printStringAtAA cb "`" >> return () @@ -2963,11 +2969,11 @@ instance ExactPrint (HsExpr GhcPs) where return (HsLit an lit') exact (HsLam an lam_variant mg) = do - an0 <- markEpAnnL an lidl AnnLam + an0 <- mark' an AnnLam an1 <- case lam_variant of LamSingle -> return an0 - LamCase -> markEpAnnL an0 lidl AnnCase - LamCases -> markEpAnnL an0 lidl AnnCases + LamCase -> mark' an0 AnnCase + LamCases -> mark' an0 AnnCases mg' <- markAnnotated mg return (HsLam an1 lam_variant mg') @@ -2989,7 +2995,7 @@ instance ExactPrint (HsExpr GhcPs) where return (OpApp an e1' e2' e3') exact (NegApp an e s) = do - an0 <- markEpAnnL an lidl AnnMinus + an0 <- markEpAnnL' an lidl AnnMinus e' <- markAnnotated e return (NegApp an0 e' s) @@ -3012,50 +3018,50 @@ instance ExactPrint (HsExpr GhcPs) where return (SectionR an op' expr') exact (ExplicitTuple an args b) = do - an0 <- if b == Boxed then markEpAnnL an lidl AnnOpenP - else markEpAnnL an lidl AnnOpenPH + an0 <- if b == Boxed then markEpAnnL' an lidl AnnOpenP + else markEpAnnL' an lidl AnnOpenPH args' <- mapM markAnnotated args - an1 <- if b == Boxed then markEpAnnL an0 lidl AnnCloseP - else markEpAnnL an0 lidl AnnClosePH + an1 <- if b == Boxed then markEpAnnL' an0 lidl AnnCloseP + else markEpAnnL' an0 lidl AnnClosePH debugM $ "ExplicitTuple done" return (ExplicitTuple an1 args' b) exact (ExplicitSum an alt arity expr) = do - an0 <- markLensKw an laesOpen AnnOpenPH + an0 <- markLensKw' an laesOpen AnnOpenPH an1 <- markAnnKwAllL an0 laesBarsBefore AnnVbar expr' <- markAnnotated expr an2 <- markAnnKwAllL an1 laesBarsAfter AnnVbar - an3 <- markLensKw an2 laesClose AnnClosePH + an3 <- markLensKw' an2 laesClose AnnClosePH return (ExplicitSum an3 alt arity expr') exact (HsCase an e alts) = do - an0 <- markAnnKwL an lhsCaseAnnCase AnnCase + an0 <- markLensKw' an lhsCaseAnnCase AnnCase e' <- markAnnotated e - an1 <- markAnnKwL an0 lhsCaseAnnOf AnnOf - an2 <- markEpAnnL an1 lhsCaseAnnsRest AnnOpenC - an3 <- markEpAnnAllL an2 lhsCaseAnnsRest AnnSemi + an1 <- markLensKw' an0 lhsCaseAnnOf AnnOf + an2 <- markEpAnnL' an1 lhsCaseAnnsRest AnnOpenC + an3 <- markEpAnnAllL' an2 lhsCaseAnnsRest AnnSemi alts' <- setLayoutBoth $ markAnnotated alts - an4 <- markEpAnnL an3 lhsCaseAnnsRest AnnCloseC + an4 <- markEpAnnL' an3 lhsCaseAnnsRest AnnCloseC return (HsCase an4 e' alts') exact (HsIf an e1 e2 e3) = do - an0 <- markAnnKwL an laiIf AnnIf + an0 <- markLensKw' an laiIf AnnIf e1' <- markAnnotated e1 - an1 <- markLensKwM an0 laiThenSemi AnnSemi - an2 <- markAnnKwL an1 laiThen AnnThen + an1 <- markLensKwM' an0 laiThenSemi AnnSemi + an2 <- markLensKw' an1 laiThen AnnThen e2' <- markAnnotated e2 - an3 <- markLensKwM an2 laiElseSemi AnnSemi - an4 <- markAnnKwL an3 laiElse AnnElse + an3 <- markLensKwM' an2 laiElseSemi AnnSemi + an4 <- markLensKw' an3 laiElse AnnElse e3' <- markAnnotated e3 return (HsIf an4 e1' e2' e3') exact (HsMultiIf an mg) = do - an0 <- markEpAnnL an lidl AnnIf - an1 <- markEpAnnL an0 lidl AnnOpenC -- optional + an0 <- markEpAnnL' an lidl AnnIf + an1 <- markEpAnnL' an0 lidl AnnOpenC -- optional mg' <- markAnnotated mg - an2 <- markEpAnnL an1 lidl AnnCloseC -- optional + an2 <- markEpAnnL' an1 lidl AnnCloseC -- optional return (HsMultiIf an2 mg') exact (HsLet (tkLet, tkIn) binds e) = do @@ -3068,137 +3074,138 @@ instance ExactPrint (HsExpr GhcPs) where exact (HsDo an do_or_list_comp stmts) = do debugM $ "HsDo" - (an',stmts') <- markAnnListA an $ \a -> exactDo a do_or_list_comp stmts + (an',stmts') <- markAnnListA' an $ \a -> exactDo a do_or_list_comp stmts return (HsDo an' do_or_list_comp stmts') exact (ExplicitList an es) = do debugM $ "ExplicitList start" - an0 <- markLensMAA an lal_open + an0 <- markLensMAA' an lal_open es' <- markAnnotated es - an1 <- markLensMAA an0 lal_close + an1 <- markLensMAA' an0 lal_close debugM $ "ExplicitList end" return (ExplicitList an1 es') exact (RecordCon an con_id binds) = do con_id' <- markAnnotated con_id - an0 <- markEpAnnL an lidl AnnOpenC + an0 <- markEpAnnL' an lidl AnnOpenC binds' <- markAnnotated binds - an1 <- markEpAnnL an0 lidl AnnCloseC + an1 <- markEpAnnL' an0 lidl AnnCloseC return (RecordCon an1 con_id' binds') exact (RecordUpd an expr fields) = do expr' <- markAnnotated expr - an0 <- markEpAnnL an lidl AnnOpenC + an0 <- markEpAnnL' an lidl AnnOpenC fields' <- markAnnotated fields - an1 <- markEpAnnL an0 lidl AnnCloseC + an1 <- markEpAnnL' an0 lidl AnnCloseC return (RecordUpd an1 expr' fields') exact (HsGetField an expr field) = do expr' <- markAnnotated expr field' <- markAnnotated field return (HsGetField an expr' field') exact (HsProjection an flds) = do - an0 <- markAnnKwL an lapOpen AnnOpenP + an0 <- markLensKw' an lapOpen AnnOpenP flds' <- mapM markAnnotated flds - an1 <- markAnnKwL an0 lapClose AnnCloseP + an1 <- markLensKw' an0 lapClose AnnCloseP return (HsProjection an1 flds') exact (ExprWithTySig an expr sig) = do expr' <- markAnnotated expr - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon sig' <- markAnnotated sig return (ExprWithTySig an0 expr' sig') exact (ArithSeq an s seqInfo) = do - an0 <- markEpAnnL an lidl AnnOpenS -- '[' + an0 <- markEpAnnL' an lidl AnnOpenS -- '[' (an1, seqInfo') <- case seqInfo of From e -> do e' <- markAnnotated e - an' <- markEpAnnL an0 lidl AnnDotdot + an' <- markEpAnnL' an0 lidl AnnDotdot return (an', From e') FromTo e1 e2 -> do e1' <- markAnnotated e1 - an' <- markEpAnnL an0 lidl AnnDotdot + an' <- markEpAnnL' an0 lidl AnnDotdot e2' <- markAnnotated e2 return (an', FromTo e1' e2') FromThen e1 e2 -> do e1' <- markAnnotated e1 - an' <- markEpAnnL an0 lidl AnnComma + an' <- markEpAnnL' an0 lidl AnnComma e2' <- markAnnotated e2 - an'' <- markEpAnnL an' lidl AnnDotdot + an'' <- markEpAnnL' an' lidl AnnDotdot return (an'', FromThen e1' e2') FromThenTo e1 e2 e3 -> do e1' <- markAnnotated e1 - an' <- markEpAnnL an0 lidl AnnComma + an' <- markEpAnnL' an0 lidl AnnComma e2' <- markAnnotated e2 - an'' <- markEpAnnL an' lidl AnnDotdot + an'' <- markEpAnnL' an' lidl AnnDotdot e3' <- markAnnotated e3 return (an'', FromThenTo e1' e2' e3') - an2 <- markEpAnnL an1 lidl AnnCloseS -- ']' + an2 <- markEpAnnL' an1 lidl AnnCloseS -- ']' return (ArithSeq an2 s seqInfo') exact (HsTypedBracket an e) = do - an0 <- markEpAnnLMS an lidl AnnOpen (Just "[||") - an1 <- markEpAnnLMS an0 lidl AnnOpenE (Just "[e||") + an0 <- markEpAnnLMS'' an lidl AnnOpen (Just "[||") + an1 <- markEpAnnLMS'' an0 lidl AnnOpenE (Just "[e||") e' <- markAnnotated e - an2 <- markEpAnnLMS an1 lidl AnnClose (Just "||]") + an2 <- markEpAnnLMS'' an1 lidl AnnClose (Just "||]") return (HsTypedBracket an2 e') exact (HsUntypedBracket an (ExpBr a e)) = do - an0 <- markEpAnnL an lidl AnnOpenEQ -- "[|" - an1 <- markEpAnnL an0 lidl AnnOpenE -- "[e|" -- optional + an0 <- markEpAnnL' an lidl AnnOpenEQ -- "[|" + an1 <- markEpAnnL' an0 lidl AnnOpenE -- "[e|" -- optional e' <- markAnnotated e - an2 <- markEpAnnL an1 lidl AnnCloseQ -- "|]" + an2 <- markEpAnnL' an1 lidl AnnCloseQ -- "|]" return (HsUntypedBracket an2 (ExpBr a e')) exact (HsUntypedBracket an (PatBr a e)) = do - an0 <- markEpAnnLMS an lidl AnnOpen (Just "[p|") + an0 <- markEpAnnLMS'' an lidl AnnOpen (Just "[p|") e' <- markAnnotated e - an1 <- markEpAnnL an0 lidl AnnCloseQ -- "|]" + an1 <- markEpAnnL' an0 lidl AnnCloseQ -- "|]" return (HsUntypedBracket an1 (PatBr a e')) exact (HsUntypedBracket an (DecBrL a e)) = do - an0 <- markEpAnnLMS an lidl AnnOpen (Just "[d|") - an1 <- markEpAnnL an0 lidl AnnOpenC + an0 <- markEpAnnLMS'' an lidl AnnOpen (Just "[d|") + an1 <- markEpAnnL' an0 lidl AnnOpenC e' <- markAnnotated e - an2 <- markEpAnnL an1 lidl AnnCloseC - an3 <- markEpAnnL an2 lidl AnnCloseQ -- "|]" + an2 <- markEpAnnL' an1 lidl AnnCloseC + an3 <- markEpAnnL' an2 lidl AnnCloseQ -- "|]" return (HsUntypedBracket an3 (DecBrL a e')) exact (HsUntypedBracket an (TypBr a e)) = do - an0 <- markEpAnnLMS an lidl AnnOpen (Just "[t|") + an0 <- markEpAnnLMS'' an lidl AnnOpen (Just "[t|") e' <- markAnnotated e - an1 <- markEpAnnL an0 lidl AnnCloseQ -- "|]" + an1 <- markEpAnnL' an0 lidl AnnCloseQ -- "|]" return (HsUntypedBracket an1 (TypBr a e')) exact (HsUntypedBracket an (VarBr a b e)) = do (an0, e') <- if b then do - an' <- markEpAnnL an lidl AnnSimpleQuote + an' <- markEpAnnL' an lidl AnnSimpleQuote e' <- markAnnotated e return (an', e') else do - an' <- markEpAnnL an lidl AnnThTyQuote + an' <- markEpAnnL' an lidl AnnThTyQuote e' <- markAnnotated e return (an', e') return (HsUntypedBracket an0 (VarBr a b e')) - exact (HsTypedSplice (x,an) s) = do - an0 <- markEpAnnL an lidl AnnDollarDollar + exact (HsTypedSplice an s) = do + an0 <- markEpAnnL' an lidl AnnDollarDollar s' <- exact s - return (HsTypedSplice (x,an0) s') + return (HsTypedSplice an0 s') + exact (HsUntypedSplice an s) = do s' <- exact s return (HsUntypedSplice an s') exact (HsProc an p c) = do debugM $ "HsProc start" - an0 <- markEpAnnL an lidl AnnProc + an0 <- markEpAnnL' an lidl AnnProc p' <- markAnnotated p - an1 <- markEpAnnL an0 lidl AnnRarrow + an1 <- markEpAnnL' an0 lidl AnnRarrow debugM $ "HsProc after AnnRarrow" c' <- markAnnotated c return (HsProc an1 p' c') exact (HsStatic an e) = do - an0 <- markEpAnnL an lidl AnnStatic + an0 <- markEpAnnL' an lidl AnnStatic e' <- markAnnotated e return (HsStatic an0 e') @@ -3217,23 +3224,23 @@ instance ExactPrint (HsExpr GhcPs) where -- --------------------------------------------------------------------- exactDo :: (Monad m, Monoid w, ExactPrint (LocatedAn an a)) - => EpAnn AnnList -> HsDoFlavour -> LocatedAn an a - -> EP w m (EpAnn AnnList, LocatedAn an a) -exactDo an (DoExpr m) stmts = exactMdo an m AnnDo >>= \an0 -> markMaybeDodgyStmts an0 stmts -exactDo an GhciStmtCtxt stmts = markEpAnnL an lal_rest AnnDo >>= \an0 -> markMaybeDodgyStmts an0 stmts -exactDo an (MDoExpr m) stmts = exactMdo an m AnnMdo >>= \an0 -> markMaybeDodgyStmts an0 stmts + => AnnList -> HsDoFlavour -> LocatedAn an a + -> EP w m (AnnList, LocatedAn an a) +exactDo an (DoExpr m) stmts = exactMdo an m AnnDo >>= \an0 -> markMaybeDodgyStmts an0 stmts +exactDo an GhciStmtCtxt stmts = markEpAnnL' an lal_rest AnnDo >>= \an0 -> markMaybeDodgyStmts an0 stmts +exactDo an (MDoExpr m) stmts = exactMdo an m AnnMdo >>= \an0 -> markMaybeDodgyStmts an0 stmts exactDo an ListComp stmts = markMaybeDodgyStmts an stmts exactDo an MonadComp stmts = markMaybeDodgyStmts an stmts exactMdo :: (Monad m, Monoid w) - => EpAnn AnnList -> Maybe ModuleName -> AnnKeywordId -> EP w m (EpAnn AnnList) -exactMdo an Nothing kw = markEpAnnL an lal_rest kw -exactMdo an (Just module_name) kw = markEpAnnLMS an lal_rest kw (Just n) + => AnnList -> Maybe ModuleName -> AnnKeywordId -> EP w m AnnList +exactMdo an Nothing kw = markEpAnnL' an lal_rest kw +exactMdo an (Just module_name) kw = markEpAnnLMS'' an lal_rest kw (Just n) where n = (moduleNameString module_name) ++ "." ++ (keywordToString kw) markMaybeDodgyStmts :: (Monad m, Monoid w, ExactPrint (LocatedAn an a)) - => EpAnn AnnList -> LocatedAn an a -> EP w m (EpAnn AnnList, LocatedAn an a) + => AnnList -> LocatedAn an a -> EP w m (AnnList, LocatedAn an a) markMaybeDodgyStmts an stmts = if isGoodSrcSpan (getLocA stmts) then do @@ -3247,25 +3254,23 @@ instance ExactPrint (HsPragE GhcPs) where setAnnotationAnchor a _ _ _ = a exact (HsPragSCC (an,st) sl) = do - an0 <- markAnnOpenP an st "{-# SCC" + an0 <- markAnnOpenP' an st "{-# SCC" let txt = sourceTextToString (sl_st sl) (unpackFS $ sl_fs sl) - an1 <- markEpAnnLMS an0 lapr_rest AnnVal (Just txt) -- optional - an2 <- markEpAnnLMS an1 lapr_rest AnnValStr (Just txt) -- optional - an3 <- markAnnCloseP an2 + an1 <- markEpAnnLMS'' an0 lapr_rest AnnVal (Just txt) -- optional + an2 <- markEpAnnLMS'' an1 lapr_rest AnnValStr (Just txt) -- optional + an3 <- markAnnCloseP' an2 return (HsPragSCC (an3,st) sl) -- --------------------------------------------------------------------- instance ExactPrint (HsUntypedSplice GhcPs) where - getAnnotationEntry (HsUntypedSpliceExpr an _) = fromAnn an - getAnnotationEntry (HsQuasiQuote _ _ _) = NoEntryVal + getAnnotationEntry _ = NoEntryVal - setAnnotationAnchor (HsUntypedSpliceExpr an e) anc ts cs = HsUntypedSpliceExpr (setAnchorEpa an anc ts cs) e - setAnnotationAnchor a@HsQuasiQuote {} _ _ _= a + setAnnotationAnchor a _ _ _= a exact (HsUntypedSpliceExpr an e) = do - an0 <- markEpAnnL an lidl AnnDollar + an0 <- markEpAnnL' an lidl AnnDollar e' <- markAnnotated e return (HsUntypedSpliceExpr an0 e') @@ -3321,14 +3326,15 @@ instance (ExactPrint body) => ExactPrint (HsRecFields GhcPs body) where instance (ExactPrint body) => ExactPrint (HsFieldBind (LocatedA (FieldOcc GhcPs)) body) where - getAnnotationEntry x = fromAnn (hfbAnn x) - setAnnotationAnchor (HsFieldBind an f arg isPun) anc ts cs = (HsFieldBind (setAnchorEpa an anc ts cs) f arg isPun) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a + exact (HsFieldBind an f arg isPun) = do debugM $ "HsFieldBind" f' <- markAnnotated f (an0, arg') <- if isPun then return (an, arg) else do - an0 <- markEpAnnL an lidl AnnEqual + an0 <- markEpAnnL' an lidl AnnEqual arg' <- markAnnotated arg return (an0, arg') return (HsFieldBind an0 f' arg' isPun) @@ -3337,15 +3343,15 @@ instance (ExactPrint body) instance (ExactPrint body) => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldLabelStrings GhcPs)) body) where - getAnnotationEntry x = fromAnn (hfbAnn x) - setAnnotationAnchor (HsFieldBind an f arg isPun) anc ts cs = (HsFieldBind (setAnchorEpa an anc ts cs) f arg isPun) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (HsFieldBind an f arg isPun) = do debugM $ "HsFieldBind FieldLabelStrings" f' <- markAnnotated f (an0, arg') <- if isPun then return (an, arg) else do - an0 <- markEpAnnL an lidl AnnEqual + an0 <- markEpAnnL' an lidl AnnEqual arg' <- markAnnotated arg return (an0, arg') return (HsFieldBind an0 f' arg' isPun) @@ -3354,13 +3360,14 @@ instance (ExactPrint body) instance (ExactPrint (LocatedA body)) => ExactPrint (HsFieldBind (LocatedA (AmbiguousFieldOcc GhcPs)) (LocatedA body)) where - getAnnotationEntry x = fromAnn (hfbAnn x) - setAnnotationAnchor (HsFieldBind an f arg isPun) anc ts cs = (HsFieldBind (setAnchorEpa an anc ts cs) f arg isPun) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a + exact (HsFieldBind an f arg isPun) = do debugM $ "HsRecUpdField" f' <- markAnnotated f an0 <- if isPun then return an - else markEpAnnL an lidl AnnEqual + else markEpAnnL' an lidl AnnEqual arg' <- if isPun then return arg else markAnnotated arg @@ -3390,12 +3397,11 @@ instance ExactPrint (FieldLabelStrings GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (DotFieldOcc GhcPs) where - getAnnotationEntry (DotFieldOcc an _) = fromAnn an - - setAnnotationAnchor (DotFieldOcc an a) anc ts cs = DotFieldOcc (setAnchorEpa an anc ts cs) a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (DotFieldOcc an (L loc (FieldLabelString fs))) = do - an0 <- markLensKwM an lafDot AnnDot + an0 <- markLensKwM' an lafDot AnnDot -- The field name has a SrcSpanAnnN, print it as a -- LocatedN RdrName L loc' _ <- markAnnotated (L loc (mkVarUnqual fs)) @@ -3426,43 +3432,24 @@ instance ExactPrint (HsCmdTop GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (HsCmd GhcPs) where - getAnnotationEntry (HsCmdArrApp an _ _ _ _) = fromAnn an - getAnnotationEntry (HsCmdArrForm an _ _ _ _ ) = fromAnn an - getAnnotationEntry (HsCmdApp an _ _ ) = fromAnn an - getAnnotationEntry (HsCmdPar _ _) = NoEntryVal - getAnnotationEntry (HsCmdCase an _ _) = fromAnn an - getAnnotationEntry (HsCmdLam an _ _) = fromAnn an - getAnnotationEntry (HsCmdIf an _ _ _ _) = fromAnn an - getAnnotationEntry (HsCmdLet _ _ _) = NoEntryVal - getAnnotationEntry (HsCmdDo an _) = fromAnn an - - setAnnotationAnchor (HsCmdArrApp an a b c d) anc ts cs = (HsCmdArrApp (setAnchorEpa an anc ts cs) a b c d) - setAnnotationAnchor (HsCmdArrForm an a b c d ) anc ts cs = (HsCmdArrForm (setAnchorEpa an anc ts cs) a b c d ) - setAnnotationAnchor (HsCmdApp an a b ) anc ts cs = (HsCmdApp (setAnchorEpa an anc ts cs) a b ) - setAnnotationAnchor (HsCmdLam an a b) anc ts cs = (HsCmdLam (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsCmdPar _ _) _ _ _s = a - setAnnotationAnchor (HsCmdCase an a b) anc ts cs = (HsCmdCase (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsCmdIf an a b c d) anc ts cs = (HsCmdIf (setAnchorEpa an anc ts cs) a b c d) - setAnnotationAnchor a@(HsCmdLet _ _ _) _ _ _s = a - setAnnotationAnchor (HsCmdDo an a) anc ts cs = (HsCmdDo (setAnchorEpa an anc ts cs) a) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (HsCmdArrApp an arr arg o isRightToLeft) = do if isRightToLeft then do arr' <- markAnnotated arr - an0 <- markKw (anns an) + an0 <- markKw an arg' <- markAnnotated arg - let an1 = an{anns = an0} - return (HsCmdArrApp an1 arr' arg' o isRightToLeft) + return (HsCmdArrApp an0 arr' arg' o isRightToLeft) else do arg' <- markAnnotated arg - an0 <- markKw (anns an) + an0 <- markKw an arr' <- markAnnotated arr - let an1 = an {anns = an0} - return (HsCmdArrApp an1 arr' arg' o isRightToLeft) + return (HsCmdArrApp an0 arr' arg' o isRightToLeft) exact (HsCmdArrForm an e fixity mf cs) = do - an0 <- markLensMAA an lal_open + an0 <- markLensMAA' an lal_open (e',cs') <- case (fixity, cs) of (Infix, (arg1:argrest)) -> do arg1' <- markAnnotated arg1 @@ -3474,7 +3461,7 @@ instance ExactPrint (HsCmd GhcPs) where cs' <- markAnnotated cs return (e', cs') (Infix, []) -> error "Not possible" - an1 <- markLensMAA an0 lal_close + an1 <- markLensMAA' an0 lal_close return (HsCmdArrForm an1 e' fixity mf cs') exact (HsCmdApp an e1 e2) = do @@ -3483,11 +3470,11 @@ instance ExactPrint (HsCmd GhcPs) where return (HsCmdApp an e1' e2') exact (HsCmdLam an lam_variant matches) = do - an0 <- markEpAnnL an lidl AnnLam + an0 <- markEpAnnL' an lidl AnnLam an1 <- case lam_variant of LamSingle -> return an0 - LamCase -> markEpAnnL an0 lidl AnnCase - LamCases -> markEpAnnL an0 lidl AnnCases + LamCase -> markEpAnnL' an0 lidl AnnCase + LamCases -> markEpAnnL' an0 lidl AnnCases matches' <- markAnnotated matches return (HsCmdLam an1 lam_variant matches') @@ -3498,23 +3485,23 @@ instance ExactPrint (HsCmd GhcPs) where return (HsCmdPar (lpar', rpar') e') exact (HsCmdCase an e alts) = do - an0 <- markLensKw an lhsCaseAnnCase AnnCase + an0 <- markLensKw' an lhsCaseAnnCase AnnCase e' <- markAnnotated e - an1 <- markLensKw an0 lhsCaseAnnOf AnnOf - an2 <- markEpAnnL an1 lhsCaseAnnsRest AnnOpenC - an3 <- markEpAnnAllL an2 lhsCaseAnnsRest AnnSemi + an1 <- markLensKw' an0 lhsCaseAnnOf AnnOf + an2 <- markEpAnnL' an1 lhsCaseAnnsRest AnnOpenC + an3 <- markEpAnnAllL' an2 lhsCaseAnnsRest AnnSemi alts' <- markAnnotated alts - an4 <- markEpAnnL an3 lhsCaseAnnsRest AnnCloseC + an4 <- markEpAnnL' an3 lhsCaseAnnsRest AnnCloseC return (HsCmdCase an4 e' alts') exact (HsCmdIf an a e1 e2 e3) = do - an0 <- markLensKw an laiIf AnnIf + an0 <- markLensKw' an laiIf AnnIf e1' <- markAnnotated e1 - an1 <- markLensKwM an0 laiThenSemi AnnSemi - an2 <- markLensKw an1 laiThen AnnThen + an1 <- markLensKwM' an0 laiThenSemi AnnSemi + an2 <- markLensKw' an1 laiThen AnnThen e2' <- markAnnotated e2 - an3 <- markLensKwM an2 laiElseSemi AnnSemi - an4 <- markLensKw an3 laiElse AnnElse + an3 <- markLensKwM' an2 laiElseSemi AnnSemi + an4 <- markLensKw' an3 laiElse AnnElse e3' <- markAnnotated e3 return (HsCmdIf an4 a e1' e2' e3') @@ -3528,7 +3515,7 @@ instance ExactPrint (HsCmd GhcPs) where exact (HsCmdDo an es) = do debugM $ "HsCmdDo" - an0 <- markEpAnnL an lal_rest AnnDo + an0 <- markEpAnnL' an lal_rest AnnDo es' <- markAnnotated es return (HsCmdDo an0 es') @@ -3540,27 +3527,8 @@ instance ( Anno [GenLocated SrcSpanAnnA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))] ~ SrcSpanAnnL, (ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (body GhcPs)))]))) => ExactPrint (StmtLR GhcPs GhcPs (LocatedA (body GhcPs))) where - getAnnotationEntry (LastStmt _ _ _ _) = NoEntryVal - getAnnotationEntry (BindStmt an _ _) = fromAnn an - getAnnotationEntry (ApplicativeStmt _ _ _) = NoEntryVal - getAnnotationEntry (BodyStmt _ _ _ _) = NoEntryVal - getAnnotationEntry (LetStmt an _) = fromAnn an - getAnnotationEntry (ParStmt _ _ _ _) = NoEntryVal - getAnnotationEntry (TransStmt an _ _ _ _ _ _ _ _) = fromAnn an - getAnnotationEntry (RecStmt an _ _ _ _ _ _) = fromAnn an - - ----------------------------------------------------------------- - - setAnnotationAnchor a@(LastStmt _ _ _ _) _ _ _s = a - setAnnotationAnchor (BindStmt an a b) anc ts cs = (BindStmt (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(ApplicativeStmt _ _ _) _ _ _s = a - setAnnotationAnchor a@(BodyStmt _ _ _ _) _ _ _s = a - setAnnotationAnchor (LetStmt an a) anc ts cs = (LetStmt (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(ParStmt _ _ _ _) _ _ _s = a - setAnnotationAnchor (TransStmt an a b c d e f g h) anc ts cs = (TransStmt (setAnchorEpa an anc ts cs) a b c d e f g h) - setAnnotationAnchor (RecStmt an a b c d e f) anc ts cs = (RecStmt (setAnchorEpa an anc ts cs) a b c d e f) - - ----------------------------------------------------------------- + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _s = a exact (LastStmt a body b c) = do debugM $ "LastStmt" @@ -3570,7 +3538,7 @@ instance ( exact (BindStmt an pat body) = do debugM $ "BindStmt" pat' <- markAnnotated pat - an0 <- markEpAnnL an lidl AnnLarrow + an0 <- markEpAnnL' an lidl AnnLarrow body' <- markAnnotated body return (BindStmt an0 pat' body') @@ -3584,7 +3552,7 @@ instance ( exact (LetStmt an binds) = do debugM $ "LetStmt" - an0 <- markEpAnnL an lidl AnnLet + an0 <- markEpAnnL' an lidl AnnLet binds' <- markAnnotated binds return (LetStmt an0 binds') @@ -3601,8 +3569,8 @@ instance ( exact (RecStmt an stmts a b c d e) = do debugM $ "RecStmt" - an0 <- markEpAnnL an lal_rest AnnRec - (an1, stmts') <- markAnnList an0 (markAnnotated stmts) + an0 <- markEpAnnL' an lal_rest AnnRec + (an1, stmts') <- markAnnList' an0 (markAnnotated stmts) return (RecStmt an1 stmts' a b c d e) -- --------------------------------------------------------------------- @@ -3615,46 +3583,37 @@ instance ExactPrint (ParStmtBlock GhcPs GhcPs) where return (ParStmtBlock a stmts' b c) exactTransStmt :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] -> Maybe (LHsExpr GhcPs) -> (LHsExpr GhcPs) -> TransForm - -> EP w m (EpAnn [AddEpAnn], Maybe (LHsExpr GhcPs), (LHsExpr GhcPs)) + => [AddEpAnn] -> Maybe (LHsExpr GhcPs) -> (LHsExpr GhcPs) -> TransForm + -> EP w m ([AddEpAnn], Maybe (LHsExpr GhcPs), (LHsExpr GhcPs)) exactTransStmt an by using ThenForm = do debugM $ "exactTransStmt:ThenForm" - an0 <- markEpAnnL an lidl AnnThen + an0 <- markEpAnnL' an lidl AnnThen using' <- markAnnotated using case by of Nothing -> return (an0, by, using') Just b -> do - an1 <- markEpAnnL an0 lidl AnnBy + an1 <- markEpAnnL' an0 lidl AnnBy b' <- markAnnotated b return (an1, Just b', using') exactTransStmt an by using GroupForm = do debugM $ "exactTransStmt:GroupForm" - an0 <- markEpAnnL an lidl AnnThen - an1 <- markEpAnnL an0 lidl AnnGroup + an0 <- markEpAnnL' an lidl AnnThen + an1 <- markEpAnnL' an0 lidl AnnGroup (an2, by') <- case by of Nothing -> return (an1, by) Just b -> do - an2 <- markEpAnnL an1 lidl AnnBy + an2 <- markEpAnnL' an1 lidl AnnBy b' <- markAnnotated b return (an2, Just b') - an3 <- markEpAnnL an2 lidl AnnUsing + an3 <- markEpAnnL' an2 lidl AnnUsing using' <- markAnnotated using return (an3, by', using') -- --------------------------------------------------------------------- instance ExactPrint (TyClDecl GhcPs) where - getAnnotationEntry (FamDecl { }) = NoEntryVal - getAnnotationEntry (SynDecl { tcdSExt = an }) = fromAnn an - getAnnotationEntry (DataDecl { tcdDExt = an }) = fromAnn an - getAnnotationEntry (ClassDecl { tcdCExt = (an, _, _) }) = fromAnn an - - setAnnotationAnchor a@FamDecl{} _ _ _s = a - setAnnotationAnchor x@SynDecl{} anc ts cs = x { tcdSExt = setAnchorEpa (tcdSExt x) anc ts cs } - setAnnotationAnchor x@DataDecl{} anc ts cs = x { tcdDExt = setAnchorEpa (tcdDExt x) anc ts cs } - setAnnotationAnchor x@ClassDecl{} anc ts cs = x { tcdCExt = (setAnchorEpa an anc ts cs, layout, a) } - where - (an,layout,a) = tcdCExt x + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _s = a exact (FamDecl a decl) = do decl' <- markAnnotated decl @@ -3667,10 +3626,10 @@ instance ExactPrint (TyClDecl GhcPs) where -- that are infix. Turn these into comments so that they feed -- into the right place automatically an0 <- annotationsToComments an lidl [AnnOpenP,AnnCloseP] - an1 <- markEpAnnL an0 lidl AnnType + an1 <- markEpAnnL' an0 lidl AnnType (_anx, ltycon', tyvars',_,_) <- exactVanillaDeclHead ltycon tyvars fixity Nothing - an2 <- markEpAnnL an1 lidl AnnEqual + an2 <- markEpAnnL' an1 lidl AnnEqual rhs' <- markAnnotated rhs return (SynDecl { tcdSExt = an2 , tcdLName = ltycon', tcdTyVars = tyvars', tcdFixity = fixity @@ -3697,8 +3656,8 @@ instance ExactPrint (TyClDecl GhcPs) where | null sigs && isEmptyBag methods && null ats && null at_defs -- No "where" part = do (an0, fds', lclas', tyvars',context') <- top_matter - an1 <- markEpAnnL an0 lidl AnnOpenC - an2 <- markEpAnnL an1 lidl AnnCloseC + an1 <- markEpAnnL' an0 lidl AnnOpenC + an2 <- markEpAnnL' an1 lidl AnnCloseC return (ClassDecl {tcdCExt = (an2, lo, sortKey), tcdCtxt = context', tcdLName = lclas', tcdTyVars = tyvars', tcdFixity = fixity, @@ -3710,8 +3669,8 @@ instance ExactPrint (TyClDecl GhcPs) where | otherwise -- Laid out = do (an0, fds', lclas', tyvars',context') <- top_matter - an1 <- markEpAnnL an0 lidl AnnOpenC - an2 <- markEpAnnAllL an1 lidl AnnSemi + an1 <- markEpAnnL' an0 lidl AnnOpenC + an2 <- markEpAnnAllL' an1 lidl AnnSemi ds <- withSortKey sortKey [(ClsSigTag, prepareListAnnotationA sigs), (ClsMethodTag, prepareListAnnotationA (bagToList methods)), @@ -3719,7 +3678,7 @@ instance ExactPrint (TyClDecl GhcPs) where (ClsAtdTag, prepareListAnnotationA at_defs) -- ++ prepareListAnnotation docs ] - an3 <- markEpAnnL an2 lidl AnnCloseC + an3 <- markEpAnnL' an2 lidl AnnCloseC let sigs' = undynamic ds methods' = listToBag $ undynamic ds @@ -3735,35 +3694,35 @@ instance ExactPrint (TyClDecl GhcPs) where where top_matter = do an' <- annotationsToComments an lidl [AnnOpenP, AnnCloseP] - an0 <- markEpAnnL an' lidl AnnClass + an0 <- markEpAnnL' an' lidl AnnClass (_, lclas', tyvars',_,context') <- exactVanillaDeclHead lclas tyvars fixity context (an1, fds') <- if (null fds) then return (an0, fds) else do - an1 <- markEpAnnL an0 lidl AnnVbar + an1 <- markEpAnnL' an0 lidl AnnVbar fds' <- markAnnotated fds return (an1, fds') - an2 <- markEpAnnL an1 lidl AnnWhere + an2 <- markEpAnnL' an1 lidl AnnWhere return (an2, fds', lclas', tyvars',context') -- --------------------------------------------------------------------- instance ExactPrint (FunDep GhcPs) where - getAnnotationEntry (FunDep an _ _) = fromAnn an - setAnnotationAnchor (FunDep an a b) anc ts cs = FunDep (setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (FunDep an ls rs') = do ls' <- markAnnotated ls - an0 <- markEpAnnL an lidl AnnRarrow + an0 <- markEpAnnL' an lidl AnnRarrow rs'' <- markAnnotated rs' return (FunDep an0 ls' rs'') -- --------------------------------------------------------------------- instance ExactPrint (FamilyDecl GhcPs) where - getAnnotationEntry (FamilyDecl { fdExt = an }) = fromAnn an - setAnnotationAnchor x anc ts cs = x { fdExt = setAnchorEpa (fdExt x) anc ts cs} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (FamilyDecl { fdExt = an , fdInfo = info @@ -3782,23 +3741,23 @@ instance ExactPrint (FamilyDecl GhcPs) where case mb_inj of Nothing -> return (an3, mb_inj) Just inj -> do - an4 <- markEpAnnL an3 lidl AnnVbar + an4 <- markEpAnnL' an3 lidl AnnVbar inj' <- markAnnotated inj return (an4, Just inj') (an5, info') <- case info of ClosedTypeFamily mb_eqns -> do - an5 <- markEpAnnL an4 lidl AnnWhere - an6 <- markEpAnnL an5 lidl AnnOpenC + an5 <- markEpAnnL' an4 lidl AnnWhere + an6 <- markEpAnnL' an5 lidl AnnOpenC (an7, mb_eqns') <- case mb_eqns of Nothing -> do - an7 <- markEpAnnL an6 lidl AnnDotdot + an7 <- markEpAnnL' an6 lidl AnnDotdot return (an7, mb_eqns) Just eqns -> do eqns' <- markAnnotated eqns return (an6, Just eqns') - an8 <- markEpAnnL an7 lidl AnnCloseC + an8 <- markEpAnnL' an7 lidl AnnCloseC return (an8, ClosedTypeFamily mb_eqns') _ -> return (an4, info) return (FamilyDecl { fdExt = an5 @@ -3812,44 +3771,44 @@ instance ExactPrint (FamilyDecl GhcPs) where where exact_top_level an' = case top_level of - TopLevel -> markEpAnnL an' lidl AnnFamily + TopLevel -> markEpAnnL' an' lidl AnnFamily NotTopLevel -> do -- It seems that in some kind of legacy -- mode the 'family' keyword is still -- accepted. - markEpAnnL an' lidl AnnFamily + markEpAnnL' an' lidl AnnFamily exact_kind an' = case result of NoSig _ -> return (an', result) KindSig x kind -> do - an0 <- markEpAnnL an' lidl AnnDcolon + an0 <- markEpAnnL' an' lidl AnnDcolon kind' <- markAnnotated kind return (an0, KindSig x kind') TyVarSig x tv_bndr -> do - an0 <- markEpAnnL an' lidl AnnEqual + an0 <- markEpAnnL' an' lidl AnnEqual tv_bndr' <- markAnnotated tv_bndr return (an0, TyVarSig x tv_bndr') -exactFlavour :: (Monad m, Monoid w) => EpAnn [AddEpAnn] -> FamilyInfo GhcPs -> EP w m (EpAnn [AddEpAnn]) -exactFlavour an DataFamily = markEpAnnL an lidl AnnData -exactFlavour an OpenTypeFamily = markEpAnnL an lidl AnnType -exactFlavour an (ClosedTypeFamily {}) = markEpAnnL an lidl AnnType +exactFlavour :: (Monad m, Monoid w) => [AddEpAnn] -> FamilyInfo GhcPs -> EP w m [AddEpAnn] +exactFlavour an DataFamily = markEpAnnL' an lidl AnnData +exactFlavour an OpenTypeFamily = markEpAnnL' an lidl AnnType +exactFlavour an (ClosedTypeFamily {}) = markEpAnnL' an lidl AnnType -- --------------------------------------------------------------------- exactDataDefn :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] - -> (Maybe (LHsContext GhcPs) -> EP w m (EpAnn [AddEpAnn] + => [AddEpAnn] + -> (Maybe (LHsContext GhcPs) -> EP w m ([AddEpAnn] , LocatedN RdrName , a , b , Maybe (LHsContext GhcPs))) -- Printing the header -> HsDataDefn GhcPs - -> EP w m ( EpAnn [AddEpAnn] -- ^ from exactHdr - , EpAnn [AddEpAnn] -- ^ updated one passed in + -> EP w m ( [AddEpAnn] -- ^ from exactHdr + , [AddEpAnn] -- ^ updated one passed in , LocatedN RdrName, a, b, Maybe (LHsContext GhcPs), HsDataDefn GhcPs) exactDataDefn an exactHdr (HsDataDefn { dd_ext = x, dd_ctxt = context @@ -3862,31 +3821,31 @@ exactDataDefn an exactHdr an0 <- case condecls of DataTypeCons is_type_data _ -> do an0' <- if is_type_data - then markEpAnnL an' lidl AnnType + then markEpAnnL' an' lidl AnnType else return an' - markEpAnnL an0' lidl AnnData - NewTypeCon _ -> markEpAnnL an' lidl AnnNewtype + markEpAnnL' an0' lidl AnnData + NewTypeCon _ -> markEpAnnL' an' lidl AnnNewtype - an1 <- markEpAnnL an0 lidl AnnInstance -- optional + an1 <- markEpAnnL' an0 lidl AnnInstance -- optional mb_ct' <- mapM markAnnotated mb_ct (anx, ln', tvs', b, mctxt') <- exactHdr context (an2, mb_sig') <- case mb_sig of Nothing -> return (an1, Nothing) Just kind -> do - an2 <- markEpAnnL an1 lidl AnnDcolon + an2 <- markEpAnnL' an1 lidl AnnDcolon kind' <- markAnnotated kind return (an2, Just kind') an3 <- if (needsWhere condecls) - then markEpAnnL an2 lidl AnnWhere + then markEpAnnL' an2 lidl AnnWhere else return an2 - an4 <- markEpAnnL an3 lidl AnnOpenC + an4 <- markEpAnnL' an3 lidl AnnOpenC (an5, condecls') <- exact_condecls an4 (toList condecls) let condecls'' = case condecls of DataTypeCons d _ -> DataTypeCons d condecls' NewTypeCon _ -> case condecls' of [decl] -> NewTypeCon decl _ -> panic "exacprint NewTypeCon" - an6 <- markEpAnnL an5 lidl AnnCloseC + an6 <- markEpAnnL' an5 lidl AnnCloseC derivings' <- mapM markAnnotated derivings return (anx, an6, ln', tvs', b, mctxt', (HsDataDefn { dd_ext = x, dd_ctxt = context @@ -3900,7 +3859,7 @@ exactVanillaDeclHead :: (Monad m, Monoid w) -> LHsQTyVars GhcPs -> LexicalFixity -> Maybe (LHsContext GhcPs) - -> EP w m ( EpAnn [AddEpAnn] + -> EP w m ( [AddEpAnn] , LocatedN RdrName , LHsQTyVars GhcPs , (), Maybe (LHsContext GhcPs)) @@ -3933,12 +3892,12 @@ exactVanillaDeclHead thing tvs@(HsQTvs { hsq_explicit = tyvars }) fixity context -- --------------------------------------------------------------------- instance ExactPrint (InjectivityAnn GhcPs) where - getAnnotationEntry (InjectivityAnn an _ _) = fromAnn an - setAnnotationAnchor (InjectivityAnn an a b) anc ts cs = InjectivityAnn (setAnchorEpa an anc ts cs) a b + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (InjectivityAnn an lhs rhs) = do - an0 <- markEpAnnL an lidl AnnVbar + an0 <- markEpAnnL' an lidl AnnVbar lhs' <- markAnnotated lhs - an1 <- markEpAnnL an0 lidl AnnRarrow + an1 <- markEpAnnL' an0 lidl AnnRarrow rhs' <- mapM markAnnotated rhs return (InjectivityAnn an1 lhs' rhs') @@ -3946,21 +3905,21 @@ instance ExactPrint (InjectivityAnn GhcPs) where class Typeable flag => ExactPrintTVFlag flag where exactTVDelimiters :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] -> flag -> EP w m (HsTyVarBndr flag GhcPs) - -> EP w m (EpAnn [AddEpAnn], (HsTyVarBndr flag GhcPs)) + => [AddEpAnn] -> flag -> EP w m (HsTyVarBndr flag GhcPs) + -> EP w m ([AddEpAnn], (HsTyVarBndr flag GhcPs)) instance ExactPrintTVFlag () where exactTVDelimiters an _ thing_inside = do - an0 <- markEpAnnAllL an lid AnnOpenP + an0 <- markEpAnnAllL' an lid AnnOpenP r <- thing_inside - an1 <- markEpAnnAllL an0 lid AnnCloseP + an1 <- markEpAnnAllL' an0 lid AnnCloseP return (an1, r) instance ExactPrintTVFlag Specificity where exactTVDelimiters an s thing_inside = do - an0 <- markEpAnnAllL an lid open + an0 <- markEpAnnAllL' an lid open r <- thing_inside - an1 <- markEpAnnAllL an0 lid close + an1 <- markEpAnnAllL' an0 lid close return (an1, r) where (open, close) = case s of @@ -3972,17 +3931,14 @@ instance ExactPrintTVFlag (HsBndrVis GhcPs) where case bvis of HsBndrRequired _ -> return () HsBndrInvisible at -> markEpToken at >> return () - an1 <- markEpAnnAllL an0 lid AnnOpenP + an1 <- markEpAnnAllL' an0 lid AnnOpenP r <- thing_inside - an2 <- markEpAnnAllL an1 lid AnnCloseP + an2 <- markEpAnnAllL' an1 lid AnnCloseP return (an2, r) instance ExactPrintTVFlag flag => ExactPrint (HsTyVarBndr flag GhcPs) where - getAnnotationEntry (UserTyVar an _ _) = fromAnn an - getAnnotationEntry (KindedTyVar an _ _ _) = fromAnn an - - setAnnotationAnchor (UserTyVar an a b) anc ts cs = UserTyVar (setAnchorEpa an anc ts cs) a b - setAnnotationAnchor (KindedTyVar an a b c) anc ts cs = KindedTyVar (setAnchorEpa an anc ts cs) a b c + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (UserTyVar an flag n) = do r <- exactTVDelimiters an flag $ do @@ -3994,7 +3950,7 @@ instance ExactPrintTVFlag flag => ExactPrint (HsTyVarBndr flag GhcPs) where exact (KindedTyVar an flag n k) = do r <- exactTVDelimiters an flag $ do n' <- markAnnotated n - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon k' <- markAnnotated k return (KindedTyVar an0 flag n' k') case r of @@ -4004,53 +3960,8 @@ instance ExactPrintTVFlag flag => ExactPrint (HsTyVarBndr flag GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (HsType GhcPs) where - getAnnotationEntry (HsForAllTy _ _ _) = NoEntryVal - getAnnotationEntry (HsQualTy _ _ _) = NoEntryVal - getAnnotationEntry (HsTyVar an _ _) = fromAnn an - getAnnotationEntry (HsAppTy _ _ _) = NoEntryVal - getAnnotationEntry (HsAppKindTy _ _ _) = NoEntryVal - getAnnotationEntry (HsFunTy an _ _ _) = fromAnn an - getAnnotationEntry (HsListTy an _) = fromAnn an - getAnnotationEntry (HsTupleTy an _ _) = fromAnn an - getAnnotationEntry (HsSumTy an _) = fromAnn an - getAnnotationEntry (HsOpTy an _ _ _ _) = fromAnn an - getAnnotationEntry (HsParTy an _) = fromAnn an - getAnnotationEntry (HsIParamTy an _ _) = fromAnn an - getAnnotationEntry (HsStarTy _ _) = NoEntryVal - getAnnotationEntry (HsKindSig an _ _) = fromAnn an - getAnnotationEntry (HsSpliceTy _ _) = NoEntryVal - getAnnotationEntry (HsDocTy an _ _) = fromAnn an - getAnnotationEntry (HsBangTy an _ _) = fromAnn an - getAnnotationEntry (HsRecTy an _) = fromAnn an - getAnnotationEntry (HsExplicitListTy an _ _) = fromAnn an - getAnnotationEntry (HsExplicitTupleTy an _) = fromAnn an - getAnnotationEntry (HsTyLit _ _) = NoEntryVal - getAnnotationEntry (HsWildCardTy _) = NoEntryVal - getAnnotationEntry (XHsType _) = NoEntryVal - - setAnnotationAnchor a@(HsForAllTy _ _ _) _ _ _s = a - setAnnotationAnchor a@(HsQualTy _ _ _) _ _ _s = a - setAnnotationAnchor (HsTyVar an a b) anc ts cs = (HsTyVar (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsAppTy _ _ _) _ _ _s = a - setAnnotationAnchor a@(HsAppKindTy _ _ _) _ _ _s = a - setAnnotationAnchor (HsFunTy an a b c) anc ts cs = (HsFunTy (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (HsListTy an a) anc ts cs = (HsListTy (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsTupleTy an a b) anc ts cs = (HsTupleTy (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsSumTy an a) anc ts cs = (HsSumTy (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(HsOpTy _ _ _ _ _) _ _ _s = a - setAnnotationAnchor (HsParTy an a) anc ts cs = (HsParTy (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsIParamTy an a b) anc ts cs = (HsIParamTy (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsStarTy _ _) _ _ _s = a - setAnnotationAnchor (HsKindSig an a b) anc ts cs = (HsKindSig (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(HsSpliceTy _ _) _ _ _s = a - setAnnotationAnchor (HsDocTy an a b) anc ts cs = (HsDocTy (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsBangTy an a b) anc ts cs = (HsBangTy (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsRecTy an a) anc ts cs = (HsRecTy (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (HsExplicitListTy an a b) anc ts cs = (HsExplicitListTy (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (HsExplicitTupleTy an a) anc ts cs = (HsExplicitTupleTy (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(HsTyLit _ _) _ _ _s = a - setAnnotationAnchor a@(HsWildCardTy _) _ _ _s = a - setAnnotationAnchor a@(XHsType _) _ _ _s = a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _s = a exact (HsForAllTy { hst_xforall = an , hst_tele = tele, hst_body = ty }) = do @@ -4065,7 +3976,7 @@ instance ExactPrint (HsType GhcPs) where return (HsQualTy an ctxt' ty') exact (HsTyVar an promoted name) = do an0 <- if (promoted == IsPromoted) - then markEpAnnL an lidl AnnSimpleQuote + then markEpAnnL' an lidl AnnSimpleQuote else return an name' <- markAnnotated name return (HsTyVar an0 promoted name') @@ -4100,7 +4011,7 @@ instance ExactPrint (HsType GhcPs) where return (HsSumTy an1 tys') exact (HsOpTy an promoted t1 lo t2) = do an0 <- if (isPromoted promoted) - then markEpAnnL an lidl AnnSimpleQuote + then markEpAnnL' an lidl AnnSimpleQuote else return an t1' <- markAnnotated t1 lo' <- markAnnotated lo @@ -4113,7 +4024,7 @@ instance ExactPrint (HsType GhcPs) where return (HsParTy an1 ty') exact (HsIParamTy an n t) = do n' <- markAnnotated n - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon t' <- markAnnotated t return (HsIParamTy an0 n' t') exact (HsStarTy an isUnicode) = do @@ -4123,7 +4034,7 @@ instance ExactPrint (HsType GhcPs) where return (HsStarTy an isUnicode) exact (HsKindSig an ty k) = do ty' <- markAnnotated ty - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon k' <- markAnnotated k return (HsKindSig an0 ty' k') exact (HsSpliceTy a splice) = do @@ -4138,30 +4049,30 @@ instance ExactPrint (HsType GhcPs) where NoSourceText -> return an SourceText src -> do debugM $ "HsBangTy: src=" ++ showAst src - an0 <- markEpAnnLMS an lid AnnOpen (Just $ unpackFS src) - an1 <- markEpAnnLMS an0 lid AnnClose (Just "#-}") + an0 <- markEpAnnMS' an AnnOpen (Just $ unpackFS src) + an1 <- markEpAnnMS' an0 AnnClose (Just "#-}") debugM $ "HsBangTy: done unpackedness" return an1 an1 <- case str of - SrcLazy -> markEpAnnL an0 lidl AnnTilde - SrcStrict -> markEpAnnL an0 lidl AnnBang + SrcLazy -> mark' an0 AnnTilde + SrcStrict -> mark' an0 AnnBang NoSrcStrict -> return an0 ty' <- markAnnotated ty return (HsBangTy an1 (HsSrcBang mt up str) ty') exact (HsExplicitListTy an prom tys) = do an0 <- if (isPromoted prom) - then markEpAnnL an lidl AnnSimpleQuote + then mark' an AnnSimpleQuote else return an - an1 <- markEpAnnL an0 lidl AnnOpenS + an1 <- mark' an0 AnnOpenS tys' <- markAnnotated tys - an2 <- markEpAnnL an1 lidl AnnCloseS + an2 <- mark' an1 AnnCloseS return (HsExplicitListTy an2 prom tys') exact (HsExplicitTupleTy an tys) = do - an0 <- markEpAnnL an lidl AnnSimpleQuote - an1 <- markEpAnnL an0 lidl AnnOpenP + an0 <- mark' an AnnSimpleQuote + an1 <- mark' an0 AnnOpenP tys' <- markAnnotated tys - an2 <- markEpAnnL an1 lidl AnnCloseP + an2 <- mark' an1 AnnCloseP return (HsExplicitTupleTy an2 tys') exact (HsTyLit a lit) = do case lit of @@ -4196,14 +4107,13 @@ instance ExactPrint (HsForAllTelescope GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (HsDerivingClause GhcPs) where - getAnnotationEntry d@(HsDerivingClause{}) = fromAnn (deriv_clause_ext d) - setAnnotationAnchor x anc ts cs = (x { deriv_clause_ext = setAnchorEpa (deriv_clause_ext x) anc ts cs}) - `debug` ("setAnnotationAnchor HsDerivingClause: (anc,cs):" ++ showAst (anc,cs)) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (HsDerivingClause { deriv_clause_ext = an , deriv_clause_strategy = dcs , deriv_clause_tys = dct }) = do - an0 <- markEpAnnL an lidl AnnDeriving + an0 <- markEpAnnL' an lidl AnnDeriving exact_strat_before dct' <- markAnnotated dct exact_strat_after @@ -4219,27 +4129,20 @@ instance ExactPrint (HsDerivingClause GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (DerivStrategy GhcPs) where - getAnnotationEntry (StockStrategy an) = fromAnn an - getAnnotationEntry (AnyclassStrategy an) = fromAnn an - getAnnotationEntry (NewtypeStrategy an) = fromAnn an - getAnnotationEntry (ViaStrategy (XViaStrategyPs an _)) = fromAnn an - - setAnnotationAnchor (StockStrategy an) anc ts cs = (StockStrategy (setAnchorEpa an anc ts cs)) - setAnnotationAnchor (AnyclassStrategy an) anc ts cs = (AnyclassStrategy (setAnchorEpa an anc ts cs)) - setAnnotationAnchor (NewtypeStrategy an) anc ts cs = (NewtypeStrategy (setAnchorEpa an anc ts cs)) - setAnnotationAnchor (ViaStrategy (XViaStrategyPs an a)) anc ts cs = (ViaStrategy (XViaStrategyPs (setAnchorEpa an anc ts cs) a)) + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (StockStrategy an) = do - an0 <- markEpAnnL an lid AnnStock + an0 <- markEpAnnL' an lid AnnStock return (StockStrategy an0) exact (AnyclassStrategy an) = do - an0 <- markEpAnnL an lid AnnAnyclass + an0 <- markEpAnnL' an lid AnnAnyclass return (AnyclassStrategy an0) exact (NewtypeStrategy an) = do - an0 <- markEpAnnL an lid AnnNewtype + an0 <- markEpAnnL' an lid AnnNewtype return (NewtypeStrategy an0) exact (ViaStrategy (XViaStrategyPs an ty)) = do - an0 <- markEpAnnL an lid AnnVia + an0 <- markEpAnnL' an lid AnnVia ty' <- markAnnotated ty return (ViaStrategy (XViaStrategyPs an0 ty')) @@ -4382,7 +4285,7 @@ markTrailing ts = do -- based on pp_condecls in Decls.hs exact_condecls :: (Monad m, Monoid w) - => EpAnn [AddEpAnn] -> [LConDecl GhcPs] -> EP w m (EpAnn [AddEpAnn],[LConDecl GhcPs]) + => [AddEpAnn] -> [LConDecl GhcPs] -> EP w m ([AddEpAnn],[LConDecl GhcPs]) exact_condecls an cs | gadt_syntax -- In GADT syntax = do @@ -4390,7 +4293,7 @@ exact_condecls an cs return (an, cs') | otherwise -- In H98 syntax = do - an0 <- markEpAnnL an lidl AnnEqual + an0 <- markEpAnnL' an lidl AnnEqual cs' <- mapM markAnnotated cs return (an0, cs') where @@ -4402,11 +4305,8 @@ exact_condecls an cs -- --------------------------------------------------------------------- instance ExactPrint (ConDecl GhcPs) where - getAnnotationEntry x@(ConDeclGADT{}) = fromAnn (snd (con_g_ext x)) - getAnnotationEntry x@(ConDeclH98{}) = fromAnn (con_ext x) - - setAnnotationAnchor x@ConDeclGADT{} anc ts cs = x { con_g_ext = fmap (\an -> setAnchorEpa an anc ts cs) (con_g_ext x) } - setAnnotationAnchor x@ConDeclH98{} anc ts cs = x { con_ext = setAnchorEpa (con_ext x) anc ts cs} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a -- based on pprConDecl exact (ConDeclH98 { con_ext = an @@ -4417,15 +4317,15 @@ instance ExactPrint (ConDecl GhcPs) where , con_args = args , con_doc = doc }) = do an0 <- if has_forall - then markEpAnnL an lidl AnnForall + then markEpAnnL' an lidl AnnForall else return an ex_tvs' <- mapM markAnnotated ex_tvs an1 <- if has_forall - then markEpAnnL an0 lidl AnnDot + then markEpAnnL' an0 lidl AnnDot else return an0 mcxt' <- mapM markAnnotated mcxt an2 <- if (isJust mcxt) - then markEpAnnL an1 lidl AnnDarrow + then markEpAnnL' an1 lidl AnnDarrow else return an1 (con', args') <- exact_details args @@ -4473,7 +4373,7 @@ instance ExactPrint (ConDecl GhcPs) where mcxt' <- mapM markAnnotated mcxt an2 <- if (isJust mcxt) - then markEpAnnL an1 lidl AnnDarrow + then markEpAnnL' an1 lidl AnnDarrow else return an1 args' <- case args of @@ -4517,15 +4417,13 @@ instance ExactPrintTVFlag flag => ExactPrint (HsOuterTyVarBndrs flag GhcPs) wher -- --------------------------------------------------------------------- instance ExactPrint (ConDeclField GhcPs) where - getAnnotationEntry f@(ConDeclField{}) = fromAnn (cd_fld_ext f) - - setAnnotationAnchor x anc ts cs = x { cd_fld_ext = setAnchorEpa (cd_fld_ext x) anc ts cs} + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (ConDeclField an names ftype mdoc) = do names' <- markAnnotated names - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon ftype' <- markAnnotated ftype - -- mdoc' <- mapM markAnnotated mdoc return (ConDeclField an0 names' ftype' mdoc) -- --------------------------------------------------------------------- @@ -4665,23 +4563,8 @@ instance ExactPrint (LocatedL (BF.BooleanFormula (LocatedN RdrName))) where -- ===================================================================== instance ExactPrint (IE GhcPs) where - getAnnotationEntry (IEVar _ _) = NoEntryVal - getAnnotationEntry (IEThingAbs (_, an) _) = fromAnn an - getAnnotationEntry (IEThingAll (_, an) _) = fromAnn an - getAnnotationEntry (IEThingWith (_, an) _ _ _) = fromAnn an - getAnnotationEntry (IEModuleContents (_, an) _)= fromAnn an - getAnnotationEntry (IEGroup _ _ _) = NoEntryVal - getAnnotationEntry (IEDoc _ _) = NoEntryVal - getAnnotationEntry (IEDocNamed _ _) = NoEntryVal - - setAnnotationAnchor a@(IEVar _ _) _ _ _s = a - setAnnotationAnchor (IEThingAbs (depr, an) a) anc ts cs = (IEThingAbs (depr, setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (IEThingAll (depr, an) a) anc ts cs = (IEThingAll (depr, setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (IEThingWith (depr, an) a b c) anc ts cs = (IEThingWith (depr, setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (IEModuleContents (depr, an) a) anc ts cs = (IEModuleContents (depr, setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(IEGroup _ _ _) _ _ _s = a - setAnnotationAnchor a@(IEDoc _ _) _ _ _s = a - setAnnotationAnchor a@(IEDocNamed _ _) _ _ _s = a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (IEVar depr ln) = do depr' <- markAnnotated depr @@ -4694,15 +4577,15 @@ instance ExactPrint (IE GhcPs) where exact (IEThingAll (depr, an) thing) = do depr' <- markAnnotated depr thing' <- markAnnotated thing - an0 <- markEpAnnL an lidl AnnOpenP - an1 <- markEpAnnL an0 lidl AnnDotdot - an2 <- markEpAnnL an1 lidl AnnCloseP + an0 <- markEpAnnL' an lidl AnnOpenP + an1 <- markEpAnnL' an0 lidl AnnDotdot + an2 <- markEpAnnL' an1 lidl AnnCloseP return (IEThingAll (depr', an2) thing') exact (IEThingWith (depr, an) thing wc withs) = do depr' <- markAnnotated depr thing' <- markAnnotated thing - an0 <- markEpAnnL an lidl AnnOpenP + an0 <- markEpAnnL' an lidl AnnOpenP (an1, wc', withs') <- case wc of NoIEWildcard -> do @@ -4711,16 +4594,16 @@ instance ExactPrint (IE GhcPs) where IEWildcard pos -> do let (bs, as) = splitAt pos withs bs' <- markAnnotated bs - an1 <- markEpAnnL an0 lidl AnnDotdot - an2 <- markEpAnnL an1 lidl AnnComma + an1 <- markEpAnnL' an0 lidl AnnDotdot + an2 <- markEpAnnL' an1 lidl AnnComma as' <- markAnnotated as return (an2, wc, bs'++as') - an2 <- markEpAnnL an1 lidl AnnCloseP + an2 <- markEpAnnL' an1 lidl AnnCloseP return (IEThingWith (depr', an2) thing' wc' withs') exact (IEModuleContents (depr, an) m) = do depr' <- markAnnotated depr - an0 <- markEpAnnL an lidl AnnModule + an0 <- markEpAnnL' an lidl AnnModule m' <- markAnnotated m return (IEModuleContents (depr', an0) m') @@ -4754,41 +4637,8 @@ instance ExactPrint (IEWrappedName GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (Pat GhcPs) where - getAnnotationEntry (WildPat _) = NoEntryVal - getAnnotationEntry (VarPat _ _) = NoEntryVal - getAnnotationEntry (LazyPat an _) = fromAnn an - getAnnotationEntry (AsPat _ _ _) = NoEntryVal - getAnnotationEntry (ParPat _ _) = NoEntryVal - getAnnotationEntry (BangPat an _) = fromAnn an - getAnnotationEntry (ListPat an _) = fromAnn an - getAnnotationEntry (TuplePat an _ _) = fromAnn an - getAnnotationEntry (SumPat an _ _ _) = fromAnn an - getAnnotationEntry (ConPat an _ _) = fromAnn an - getAnnotationEntry (ViewPat an _ _) = fromAnn an - getAnnotationEntry (SplicePat _ _) = NoEntryVal - getAnnotationEntry (LitPat _ _) = NoEntryVal - getAnnotationEntry (NPat an _ _ _) = fromAnn an - getAnnotationEntry (NPlusKPat an _ _ _ _ _) = fromAnn an - getAnnotationEntry (SigPat an _ _) = fromAnn an - getAnnotationEntry (EmbTyPat _ _) = NoEntryVal - - setAnnotationAnchor a@(WildPat _) _ _ _s = a - setAnnotationAnchor a@(VarPat _ _) _ _ _s = a - setAnnotationAnchor (LazyPat an a) anc ts cs = (LazyPat (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor a@(AsPat _ _ _) _ _ _s = a - setAnnotationAnchor a@(ParPat _ _) _ _ _s = a - setAnnotationAnchor (BangPat an a) anc ts cs = (BangPat (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (ListPat an a) anc ts cs = (ListPat (setAnchorEpa an anc ts cs) a) - setAnnotationAnchor (TuplePat an a b) anc ts cs = (TuplePat (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (SumPat an a b c) anc ts cs = (SumPat (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (ConPat an a b) anc ts cs = (ConPat (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor (ViewPat an a b) anc ts cs = (ViewPat (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(SplicePat _ _) _ _ _s = a - setAnnotationAnchor a@(LitPat _ _) _ _ _s = a - setAnnotationAnchor (NPat an a b c) anc ts cs = (NPat (setAnchorEpa an anc ts cs) a b c) - setAnnotationAnchor (NPlusKPat an a b c d e) anc ts cs = (NPlusKPat (setAnchorEpa an anc ts cs) a b c d e) - setAnnotationAnchor (SigPat an a b) anc ts cs = (SigPat (setAnchorEpa an anc ts cs) a b) - setAnnotationAnchor a@(EmbTyPat _ _) _ _ _s = a + getAnnotationEntry _ = NoEntryVal + setAnnotationAnchor a _ _ _ = a exact (WildPat w) = do anchor' <- getAnchorU @@ -4804,7 +4654,7 @@ instance ExactPrint (Pat GhcPs) where else return n return (VarPat x n') exact (LazyPat an pat) = do - an0 <- markEpAnnL an lidl AnnTilde + an0 <- markEpAnnL' an lidl AnnTilde pat' <- markAnnotated pat return (LazyPat an0 pat') exact (AsPat at n pat) = do @@ -4819,30 +4669,30 @@ instance ExactPrint (Pat GhcPs) where return (ParPat (lpar', rpar') pat') exact (BangPat an pat) = do - an0 <- markEpAnnL an lidl AnnBang + an0 <- markEpAnnL' an lidl AnnBang pat' <- markAnnotated pat return (BangPat an0 pat') exact (ListPat an pats) = do - (an', pats') <- markAnnList an (markAnnotated pats) + (an', pats') <- markAnnList' an (markAnnotated pats) return (ListPat an' pats') exact (TuplePat an pats boxity) = do an0 <- case boxity of - Boxed -> markEpAnnL an lidl AnnOpenP - Unboxed -> markEpAnnL an lidl AnnOpenPH + Boxed -> markEpAnnL' an lidl AnnOpenP + Unboxed -> markEpAnnL' an lidl AnnOpenPH pats' <- markAnnotated pats an1 <- case boxity of - Boxed -> markEpAnnL an0 lidl AnnCloseP - Unboxed -> markEpAnnL an0 lidl AnnClosePH + Boxed -> markEpAnnL' an0 lidl AnnCloseP + Unboxed -> markEpAnnL' an0 lidl AnnClosePH return (TuplePat an1 pats' boxity) exact (SumPat an pat alt arity) = do - an0 <- markEpAnnL an lsumPatParens AnnOpenPH + an0 <- markEpAnnL' an lsumPatParens AnnOpenPH an1 <- markAnnKwAllL an0 lsumPatVbarsBefore AnnVbar pat' <- markAnnotated pat an2 <- markAnnKwAllL an1 lsumPatVbarsAfter AnnVbar - an3 <- markEpAnnL an2 lsumPatParens AnnClosePH + an3 <- markEpAnnL' an2 lsumPatParens AnnClosePH return (SumPat an3 pat' alt arity) exact (ConPat an con details) = do @@ -4850,7 +4700,7 @@ instance ExactPrint (Pat GhcPs) where return (ConPat an' con' details') exact (ViewPat an expr pat) = do expr' <- markAnnotated expr - an0 <- markEpAnnL an lidl AnnRarrow + an0 <- markEpAnnL' an lidl AnnRarrow pat' <- markAnnotated pat return (ViewPat an0 expr' pat') exact (SplicePat x splice) = do @@ -4859,7 +4709,7 @@ instance ExactPrint (Pat GhcPs) where exact p@(LitPat _ lit) = printStringAdvance (hsLit2String lit) >> return p exact (NPat an ol mn z) = do an0 <- if (isJust mn) - then markEpAnnL an lidl AnnMinus + then markEpAnnL' an lidl AnnMinus else return an ol' <- markAnnotated ol return (NPat an0 ol' mn z) @@ -4872,7 +4722,7 @@ instance ExactPrint (Pat GhcPs) where exact (SigPat an pat sig) = do pat' <- markAnnotated pat - an0 <- markEpAnnL an lidl AnnDcolon + an0 <- markEpAnnL' an lidl AnnDcolon sig' <- markAnnotated sig return (SigPat an0 pat' sig') @@ -4951,8 +4801,8 @@ sourceTextToString (SourceText txt) _ = unpackFS txt -- --------------------------------------------------------------------- exactUserCon :: (Monad m, Monoid w, ExactPrint con) - => EpAnn [AddEpAnn] -> con -> HsConPatDetails GhcPs - -> EP w m (EpAnn [AddEpAnn], con, HsConPatDetails GhcPs) + => [AddEpAnn] -> con -> HsConPatDetails GhcPs + -> EP w m ([AddEpAnn], con, HsConPatDetails GhcPs) exactUserCon an c (InfixCon p1 p2) = do p1' <- markAnnotated p1 c' <- markAnnotated c @@ -4960,9 +4810,9 @@ exactUserCon an c (InfixCon p1 p2) = do return (an, c', InfixCon p1' p2') exactUserCon an c details = do c' <- markAnnotated c - an0 <- markEpAnnL an lidl AnnOpenC + an0 <- markEpAnnL' an lidl AnnOpenC details' <- exactConArgs details - an1 <- markEpAnnL an0 lidl AnnCloseC + an1 <- markEpAnnL' an0 lidl AnnCloseC return (an1, c', details') instance ExactPrint (HsConPatTyArg GhcPs) where diff --git a/utils/check-exact/Transform.hs b/utils/check-exact/Transform.hs index 2474aa8136c0..e5ce02c43183 100644 --- a/utils/check-exact/Transform.hs +++ b/utils/check-exact/Transform.hs @@ -210,8 +210,8 @@ captureLineSpacing ds = map (\(_,_,x) -> x) $ go (map to ds) -- --------------------------------------------------------------------- captureTypeSigSpacing :: LHsDecl GhcPs -> LHsDecl GhcPs -captureTypeSigSpacing (L l (SigD x (TypeSig (EpAnn anc (AnnSig dc rs') cs) ns (HsWC xw ty)))) - = (L l (SigD x (TypeSig (EpAnn anc (AnnSig dc' rs') cs) ns (HsWC xw ty')))) +captureTypeSigSpacing (L l (SigD x (TypeSig (AnnSig dc rs') ns (HsWC xw ty)))) + = (L l (SigD x (TypeSig (AnnSig dc' rs') ns (HsWC xw ty')))) where -- we want DPs for the distance from the end of the ns to the -- AnnDColon, and to the start of the ty diff --git a/utils/haddock b/utils/haddock index e16028bdd538..65453a581857 160000 --- a/utils/haddock +++ b/utils/haddock @@ -1 +1 @@ -Subproject commit e16028bdd538ccff31d732dc70855addd8aa2bfa +Subproject commit 65453a58185726aab95289c2da0d9fb27b7ce0af -- GitLab