diff options
author | Alan Zimmerman <alan.zimm@gmail.com> | 2023-04-26 18:44:24 +0100 |
---|---|---|
committer | Alan Zimmerman <alan.zimm@gmail.com> | 2023-04-26 23:28:24 +0100 |
commit | a13e2b7f192edbac6e28074a323b7dd84b3fc9f6 (patch) | |
tree | 568c5f558a937668e42f0b8155c440ca0952b60d | |
parent | 79bea00eef99495ac19bb59505fd0d701b2de439 (diff) | |
download | haskell-a13e2b7f192edbac6e28074a323b7dd84b3fc9f6.tar.gz |
Put BufSpan into RealSrcSpanwip/az/locateda-epa-improve-2023-03-27
This has been superseded by !9473, which moved BufSpan into EpaSpan in
EpaLocation
Start on making LocatedN more direct
Using EpaLocation instead of Anchor
Via a synonym initially, to prove the concept
Variants of AnnSortKey
For future, just a list of which type comes next.
Example for ValBinds
EPA: Explicitly capture EOF Location in AnnsModule
And also get rid of EpaEofComment.
98 files changed, 10857 insertions, 5550 deletions
diff --git a/compiler/GHC/Data/BooleanFormula.hs b/compiler/GHC/Data/BooleanFormula.hs index f01aa0339d..6b4146bf75 100644 --- a/compiler/GHC/Data/BooleanFormula.hs +++ b/compiler/GHC/Data/BooleanFormula.hs @@ -25,7 +25,7 @@ import Data.Data import GHC.Utils.Monad import GHC.Utils.Outputable import GHC.Utils.Binary -import GHC.Parser.Annotation ( LocatedL, noLocA ) +import GHC.Parser.Annotation ( LocatedL, noLocI ) import GHC.Types.SrcLoc import GHC.Types.Unique import GHC.Types.Unique.Set @@ -259,6 +259,6 @@ instance Binary a => Binary (BooleanFormula a) where h <- getByte bh case h of 0 -> Var <$> get bh - 1 -> And . fmap noLocA <$> get bh - 2 -> Or . fmap noLocA <$> get bh - _ -> Parens . noLocA <$> get bh + 1 -> And . fmap noLocI <$> get bh + 2 -> Or . fmap noLocI <$> get bh + _ -> Parens . noLocI <$> get bh diff --git a/compiler/GHC/Driver/Main.hs b/compiler/GHC/Driver/Main.hs index 3321d1203f..59986a4027 100644 --- a/compiler/GHC/Driver/Main.hs +++ b/compiler/GHC/Driver/Main.hs @@ -689,7 +689,7 @@ hsc_typecheck keep_rn mod_summary mb_rdr_module = do outer_mod' = mkHomeModule home_unit mod_name inner_mod = homeModuleNameInstantiation home_unit mod_name src_filename = ms_hspp_file mod_summary - real_loc = realSrcLocSpan $ mkRealSrcLoc (mkFastString src_filename) 1 1 + real_loc = realSrcLocSpan (mkRealSrcLoc (mkFastString src_filename) 1 1) keep_rn' = gopt Opt_WriteHie dflags || keep_rn massert (isHomeModule home_unit outer_mod) tc_result <- if hsc_src == HsigFile && not (isHoleModule inner_mod) diff --git a/compiler/GHC/Hs/Binds.hs b/compiler/GHC/Hs/Binds.hs index c7dd8fca0f..4957349408 100644 --- a/compiler/GHC/Hs/Binds.hs +++ b/compiler/GHC/Hs/Binds.hs @@ -84,7 +84,7 @@ data NHsValBindsLR idL [(RecFlag, LHsBinds idL)] [LSig GhcRn] -type instance XValBinds (GhcPass pL) (GhcPass pR) = AnnSortKey +type instance XValBinds (GhcPass pL) (GhcPass pR) = AnnSortKey [DeclTag] type instance XXValBindsLR (GhcPass pL) pR = NHsValBindsLR (GhcPass pL) diff --git a/compiler/GHC/Hs/Decls.hs b/compiler/GHC/Hs/Decls.hs index 201adc5467..db50fa9ba8 100644 --- a/compiler/GHC/Hs/Decls.hs +++ b/compiler/GHC/Hs/Decls.hs @@ -350,7 +350,7 @@ data DataDeclRn = DataDeclRn , tcdFVs :: NameSet } deriving Data -type instance XClassDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey) +type instance XClassDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey [RealSrcSpan]) -- TODO:AZ:tidy up AnnSortKey above type instance XClassDecl GhcRn = NameSet -- FVs @@ -797,7 +797,7 @@ type instance Anno (FamEqn (GhcPass p) _) = SrcSpanAnnA ----------------- Class instances ------------- -type instance XCClsInstDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey) -- TODO:AZ:tidy up +type instance XCClsInstDecl GhcPs = (EpAnn [AddEpAnn], AnnSortKey [RealSrcSpan]) -- TODO:AZ:tidy up type instance XCClsInstDecl GhcRn = NoExtField type instance XCClsInstDecl GhcTc = NoExtField @@ -1273,8 +1273,6 @@ type instance XCRoleAnnotDecl GhcTc = NoExtField type instance XXRoleAnnotDecl (GhcPass _) = DataConCantHappen -type instance Anno (Maybe Role) = SrcAnn NoEpAnns - instance OutputableBndr (IdP (GhcPass p)) => Outputable (RoleAnnotDecl (GhcPass p)) where ppr (RoleAnnotDecl _ ltycon roles) @@ -1329,7 +1327,7 @@ 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) = SrcAnn NoEpAnns +type instance Anno (Maybe Role) = EpAnnS NoEpAnns 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 794607bd49..97a3b19301 100644 --- a/compiler/GHC/Hs/Dump.hs +++ b/compiler/GHC/Hs/Dump.hs @@ -69,6 +69,7 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 `extQ` annotationTrailingAnn `extQ` annotationEpaLocation `extQ` annotationNoEpAnns + `extQ` annotationListItem `extQ` addEpAnn `extQ` lit `extQ` litr `extQ` litt `extQ` sourceText @@ -144,7 +145,7 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 _ -> parens $ text "SourceText" <+> text "blanked" epaAnchor :: EpaLocation -> SDoc - epaAnchor (EpaSpan r _) = parens $ text "EpaSpan" <+> realSrcSpan r + epaAnchor (EpaSpan s) = parens $ text "EpaSpan" <+> srcSpan s epaAnchor (EpaDelta d cs) = case ba of NoBlankEpAnnotations -> parens $ text "EpaDelta" <+> deltaPos d <+> showAstData' cs BlankEpAnnotations -> parens $ text "EpaDelta" <+> deltaPos d <+> text "blanked" @@ -266,6 +267,9 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 annotationNoEpAnns :: EpAnn NoEpAnns -> SDoc annotationNoEpAnns = annotation' (text "EpAnn NoEpAnns") + annotationListItem:: EpAnnS AnnListItem -> SDoc + annotationListItem = annotation'' (text "EpAnnS AnnListItem") + annotation' :: forall a .(Data a, Typeable a) => SDoc -> EpAnn a -> SDoc annotation' tag anns = case ba of @@ -273,10 +277,17 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 NoBlankEpAnnotations -> parens $ text (showConstr (toConstr anns)) $$ vcat (gmapQ showAstData' anns) + annotation'' :: forall a .(Data a, Typeable a) + => SDoc -> EpAnnS a -> SDoc + annotation'' tag anns = case ba of + BlankEpAnnotations -> parens (text "blanked:" <+> tag) + NoBlankEpAnnotations -> parens $ text (showConstr (toConstr anns)) + $$ vcat (gmapQ showAstData' anns) + -- ------------------------- - srcSpanAnnA :: SrcSpanAnn' (EpAnn AnnListItem) -> SDoc - srcSpanAnnA = locatedAnn'' (text "SrcSpanAnnA") + srcSpanAnnA :: (EpAnnS AnnListItem) -> SDoc + srcSpanAnnA = locatedEpAnn'' (text "SrcSpanAnnA") srcSpanAnnL :: SrcSpanAnn' (EpAnn AnnList) -> SDoc srcSpanAnnL = locatedAnn'' (text "SrcSpanAnnL") @@ -287,8 +298,8 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 srcSpanAnnC :: SrcSpanAnn' (EpAnn AnnContext) -> SDoc srcSpanAnnC = locatedAnn'' (text "SrcSpanAnnC") - srcSpanAnnN :: SrcSpanAnn' (EpAnn NameAnn) -> SDoc - srcSpanAnnN = locatedAnn'' (text "SrcSpanAnnN") + srcSpanAnnN :: EpAnnS NameAnn -> SDoc + srcSpanAnnN = locatedEpAnn'' (text "SrcSpanAnnN") locatedAnn'' :: forall a. (Typeable a, Data a) => SDoc -> SrcSpanAnn' a -> SDoc @@ -304,6 +315,20 @@ showAstData bs ba a0 = blankLine $$ showAstData' a0 Nothing -> text "locatedAnn:unmatched" <+> tag <+> (parens $ text (showConstr (toConstr ss))) + locatedEpAnn'' :: forall a. (Typeable a, Data a) + => SDoc -> EpAnnS a -> SDoc + locatedEpAnn'' tag ss = parens $ + case cast ss of + Just (anns :: EpAnnS a) -> + case ba of + BlankEpAnnotations + -> parens (text "blanked:" <+> tag) + NoBlankEpAnnotations + -> parens $ text (showConstr (toConstr anns)) + $$ vcat (gmapQ showAstData' anns) + Nothing -> text "locatedEpAnn:unmatched" <+> tag + <+> (parens $ text (showConstr (toConstr ss))) + normalize_newlines :: String -> String normalize_newlines ('\\':'r':'\\':'n':xs) = '\\':'n':normalize_newlines xs diff --git a/compiler/GHC/Hs/Expr.hs b/compiler/GHC/Hs/Expr.hs index be7af5002a..b9b0e726a7 100644 --- a/compiler/GHC/Hs/Expr.hs +++ b/compiler/GHC/Hs/Expr.hs @@ -150,7 +150,7 @@ mkSyntaxExpr = SyntaxExprRn -- | Make a 'SyntaxExpr' from a 'Name' (the "rn" is because this is used in the -- renamer). mkRnSyntaxExpr :: Name -> SyntaxExprRn -mkRnSyntaxExpr name = SyntaxExprRn $ HsVar noExtField $ noLocA name +mkRnSyntaxExpr name = SyntaxExprRn $ HsVar noExtField $ noLocN name instance Outputable SyntaxExprRn where ppr (SyntaxExprRn expr) = ppr expr @@ -2188,13 +2188,13 @@ 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)) = SrcAnn NoEpAnns +type instance Anno (HsCmdTop (GhcPass p)) = EpAnnS NoEpAnns 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)))) = SrcAnn NoEpAnns -type instance Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = SrcAnn NoEpAnns +type instance Anno (GRHS (GhcPass p) (LocatedA (HsExpr (GhcPass p)))) = EpAnnS NoEpAnns +type instance Anno (GRHS (GhcPass p) (LocatedA (HsCmd (GhcPass p)))) = EpAnnS NoEpAnns type instance Anno (StmtLR (GhcPass pl) (GhcPass pr) (LocatedA (body (GhcPass pr)))) = SrcSpanAnnA type instance Anno (HsUntypedSplice (GhcPass p)) = SrcSpanAnnA @@ -2209,6 +2209,11 @@ type instance Anno FastString = SrcAnn NoEpAnns type instance Anno (DotFieldOcc (GhcPass p)) = SrcAnn NoEpAnns -instance (Anno a ~ SrcSpanAnn' (EpAnn an)) - => WrapXRec (GhcPass p) a where +instance (Anno + [LocatedA (StmtLR (GhcPass idL) (GhcPass idR) body)] ~ SrcAnn an, + IsPass idL, IsPass idR) + => WrapXRec (GhcPass idL) [LocatedA (StmtLR (GhcPass idL) (GhcPass idR) body)] where + wrapXRec = noLocI + +instance WrapXRec (GhcPass p) (HsType (GhcPass p)) where wrapXRec = noLocA diff --git a/compiler/GHC/Hs/Extension.hs b/compiler/GHC/Hs/Extension.hs index 8e73f60b85..cfc797335c 100644 --- a/compiler/GHC/Hs/Extension.hs +++ b/compiler/GHC/Hs/Extension.hs @@ -107,7 +107,7 @@ type instance Anno RdrName = SrcSpanAnnN type instance Anno Name = SrcSpanAnnN type instance Anno Id = SrcSpanAnnN -type IsSrcSpanAnn p a = ( Anno (IdGhcP p) ~ SrcSpanAnn' (EpAnn a), +type IsSrcSpanAnn p a = ( Anno (IdGhcP p) ~ EpAnnS NameAnn, IsPass p) instance UnXRec (GhcPass p) where diff --git a/compiler/GHC/Hs/Pat.hs b/compiler/GHC/Hs/Pat.hs index 3a40d15514..6bcecdced9 100644 --- a/compiler/GHC/Hs/Pat.hs +++ b/compiler/GHC/Hs/Pat.hs @@ -420,7 +420,7 @@ mkPrefixConPat :: DataCon -> [LPat GhcTc] -> [Type] -> LPat GhcTc -- Make a vanilla Prefix constructor pattern mkPrefixConPat dc pats tys - = noLocA $ ConPat { pat_con = noLocA (RealDataCon dc) + = noLocA $ ConPat { pat_con = noLocN (RealDataCon dc) , pat_args = PrefixCon [] pats , pat_con_ext = ConPatTc { cpt_tvs = [] diff --git a/compiler/GHC/Hs/Type.hs b/compiler/GHC/Hs/Type.hs index eb3a955269..c6bbfbd774 100644 --- a/compiler/GHC/Hs/Type.hs +++ b/compiler/GHC/Hs/Type.hs @@ -155,7 +155,7 @@ getBangStrictness _ = (HsSrcBang NoSourceText NoSrcUnpack NoSrcStrict) -} fromMaybeContext :: Maybe (LHsContext (GhcPass p)) -> HsContext (GhcPass p) -fromMaybeContext mctxt = unLoc $ fromMaybe (noLocA []) mctxt +fromMaybeContext mctxt = unLoc $ fromMaybe (noLocI []) mctxt type instance XHsForAllVis (GhcPass _) = EpAnnForallTy -- Location of 'forall' and '->' @@ -360,10 +360,10 @@ type instance XXTyLit (GhcPass _) = DataConCantHappen oneDataConHsTy :: HsType GhcRn -oneDataConHsTy = HsTyVar noAnn NotPromoted (noLocA oneDataConName) +oneDataConHsTy = HsTyVar noAnn NotPromoted (noLocN oneDataConName) manyDataConHsTy :: HsType GhcRn -manyDataConHsTy = HsTyVar noAnn NotPromoted (noLocA manyDataConName) +manyDataConHsTy = HsTyVar noAnn NotPromoted (noLocN manyDataConName) hsLinear :: a -> HsScaled (GhcPass p) a hsLinear = HsScaled (HsLinearArrow (HsPct1 noHsTok noHsUniTok)) @@ -442,7 +442,7 @@ hsAllLTyVarNames (HsQTvs { hsq_ext = kvs = kvs ++ hsLTyVarNames tvs hsLTyVarLocName :: LHsTyVarBndr flag (GhcPass p) -> LocatedN (IdP (GhcPass p)) -hsLTyVarLocName (L l a) = L (l2l l) (hsTyVarName a) +hsLTyVarLocName (L l a) = L (l2ll l) (hsTyVarName a) hsLTyVarLocNames :: LHsQTyVars (GhcPass p) -> [LocatedN (IdP (GhcPass p))] hsLTyVarLocNames qtvs = map hsLTyVarLocName (hsQTvExplicit qtvs) @@ -524,15 +524,15 @@ splitHsFunType ty = go ty = let (anns, cs, args, res) = splitHsFunType ty anns' = anns ++ annParen2AddEpAnn an - cs' = cs S.<> epAnnComments (ann l) S.<> epAnnComments an + cs' = cs S.<> s_comments l S.<> epAnnComments an in (anns', cs', args, res) go (L ll (HsFunTy (EpAnn _ _ cs) mult x y)) | (anns, csy, args, res) <- splitHsFunType y - = (anns, csy S.<> epAnnComments (ann ll), HsScaled mult x':args, res) + = (anns, csy S.<> s_comments ll, HsScaled mult x':args, res) where L l t = x - x' = L (addCommentsToSrcAnn l cs) t + x' = L (addCommentsToEpAnnS l cs) t go other = ([], emptyComments, [], other) @@ -1372,5 +1372,5 @@ type instance Anno (HsOuterTyVarBndrs _ (GhcPass _)) = SrcSpanAnnA type instance Anno HsIPName = SrcAnn NoEpAnns type instance Anno (ConDeclField (GhcPass p)) = SrcSpanAnnA -type instance Anno (FieldOcc (GhcPass p)) = SrcAnn NoEpAnns -type instance Anno (AmbiguousFieldOcc (GhcPass p)) = SrcAnn NoEpAnns +type instance Anno (FieldOcc (GhcPass p)) = EpAnnS NoEpAnns +type instance Anno (AmbiguousFieldOcc (GhcPass p)) = EpAnnS NoEpAnns diff --git a/compiler/GHC/Hs/Utils.hs b/compiler/GHC/Hs/Utils.hs index 008469b458..a407c7d16e 100644 --- a/compiler/GHC/Hs/Utils.hs +++ b/compiler/GHC/Hs/Utils.hs @@ -181,7 +181,7 @@ mkHsPar e = L (getLoc e) (gHsPar e) mkSimpleMatch :: (Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA, Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) - ~ SrcAnn NoEpAnns) + ~ EpAnnS NoEpAnns) => HsMatchContext (GhcPass p) -> [LPat (GhcPass p)] -> LocatedA (body (GhcPass p)) -> LMatch (GhcPass p) (LocatedA (body (GhcPass p))) @@ -195,14 +195,14 @@ mkSimpleMatch ctxt pats rhs (pat:_) -> combineSrcSpansA (getLoc pat) (getLoc rhs) unguardedGRHSs :: Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) - ~ SrcAnn NoEpAnns + ~ EpAnnS NoEpAnns => SrcSpan -> LocatedA (body (GhcPass p)) -> EpAnn GrhsAnn -> GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) unguardedGRHSs loc rhs an = GRHSs emptyComments (unguardedRHS an loc rhs) emptyLocalBinds unguardedRHS :: Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) - ~ SrcAnn NoEpAnns + ~ EpAnnS NoEpAnns => EpAnn GrhsAnn -> SrcSpan -> LocatedA (body (GhcPass p)) -> [LGRHS (GhcPass p) (LocatedA (body (GhcPass p)))] unguardedRHS an loc rhs = [L (noAnnSrcSpan loc) (GRHS an [] rhs)] @@ -218,7 +218,7 @@ mkMatchGroup :: AnnoBody p body -> LocatedL [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] -> MatchGroup (GhcPass p) (LocatedA (body (GhcPass p))) mkMatchGroup origin matches = MG { mg_ext = origin - , mg_alts = matches } + , mg_alts = matches } mkLamCaseMatchGroup :: AnnoBody p body => Origin @@ -230,10 +230,10 @@ mkLamCaseMatchGroup origin lc_variant (L l matches) where fixCtxt (L a match) = L a match{m_ctxt = LamCaseAlt lc_variant} mkLocatedList :: Semigroup a - => [GenLocated (SrcAnn a) e2] -> LocatedAn an [GenLocated (SrcAnn a) e2] + => [LocatedAnS a e2] -> LocatedL [LocatedAnS a e2] mkLocatedList ms = case nonEmpty ms of - Nothing -> noLocA [] - Just ms1 -> L (noAnnSrcSpan $ locA $ combineLocsA (NE.head ms1) (NE.last ms1)) ms + Nothing -> noLocI [] + Just ms1 -> L (noAnnSrcSpanI $ locA $ combineLocsA (NE.head ms1) (NE.last ms1)) ms mkHsApp :: LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) -> LHsExpr (GhcPass id) mkHsApp e1 e2 = addCLocAA e1 e2 (HsApp noComments e1 e2) @@ -272,7 +272,7 @@ mkHsLam :: (IsPass p, XMG (GhcPass p) (LHsExpr (GhcPass p)) ~ Origin) mkHsLam pats body = mkHsPar (L (getLoc body) (HsLam noExtField matches)) where matches = mkMatchGroup Generated - (noLocA [mkSimpleMatch LambdaExpr pats' body]) + (noLocI [mkSimpleMatch LambdaExpr pats' body]) pats' = map (parenthesizePat appPrec) pats mkHsLams :: [TyVar] -> [EvVar] -> LHsExpr GhcTc -> LHsExpr GhcTc @@ -282,7 +282,7 @@ mkHsLams tyvars dicts expr = mkLHsWrap (mkWpTyLams tyvars -- |A simple case alternative with a single pattern, no binds, no guards; -- pre-typechecking mkHsCaseAlt :: (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) - ~ SrcAnn NoEpAnns, + ~ EpAnnS NoEpAnns, Anno (Match (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA) => LPat (GhcPass p) -> (LocatedA (body (GhcPass p))) @@ -292,7 +292,7 @@ mkHsCaseAlt pat expr nlHsTyApp :: Id -> [Type] -> LHsExpr GhcTc nlHsTyApp fun_id tys - = noLocA (mkHsWrap (mkWpTyApps tys) (HsVar noExtField (noLocA fun_id))) + = noLocA (mkHsWrap (mkWpTyApps tys) (HsVar noExtField (noLocN fun_id))) nlHsTyApps :: Id -> [Type] -> [LHsExpr GhcTc] -> LHsExpr GhcTc nlHsTyApps fun_id tys xs = foldl' nlHsApp (nlHsTyApp fun_id tys) xs @@ -342,23 +342,38 @@ mkRnBindStmt :: LPat GhcRn -> LocatedA (bodyR GhcRn) mkTcBindStmt :: LPat GhcTc -> LocatedA (bodyR GhcTc) -> StmtLR GhcTc GhcTc (LocatedA (bodyR GhcTc)) -emptyRecStmt :: (Anno [GenLocated +emptyRecStmt :: forall idL bodyR . + (Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) - (StmtLR (GhcPass idL) GhcPs bodyR)] - ~ SrcSpanAnnL) + (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL, + Anno [LocatedA (StmtLR (GhcPass idL) (GhcPass 'Parsed) bodyR)] ~ SrcSpanAnnL, + WrapXRec GhcPs [GenLocated + (Anno (StmtLR (GhcPass idL) (GhcPass 'Parsed) bodyR)) + (StmtLR (GhcPass idL) (GhcPass 'Parsed) bodyR)], + IsPass idL) => StmtLR (GhcPass idL) GhcPs bodyR -emptyRecStmtName :: (Anno [GenLocated +emptyRecStmtName :: forall bodyR . + (Anno [GenLocated (Anno (StmtLR GhcRn GhcRn bodyR)) - (StmtLR GhcRn GhcRn bodyR)] - ~ SrcSpanAnnL) + (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL, + Anno [LocatedA (StmtLR GhcRn GhcRn bodyR)] ~ SrcSpanAnnL, + WrapXRec GhcRn [LStmtLR GhcRn GhcRn bodyR] + ) => StmtLR GhcRn GhcRn bodyR emptyRecStmtId :: Stmt GhcTc (LocatedA (HsCmd GhcTc)) mkRecStmt :: forall (idL :: Pass) bodyR. - (Anno [GenLocated + (WrapXRec GhcPs [LocatedA (StmtLR (GhcPass idL) GhcPs bodyR)], + Anno [LocatedA (StmtLR (GhcPass idL) GhcPs bodyR)] ~ SrcSpanAnnL, + WrapXRec GhcPs [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) + (StmtLR (GhcPass idL) GhcPs bodyR)], + IsPass idL, + + Anno [GenLocated (Anno (StmtLR (GhcPass idL) GhcPs bodyR)) (StmtLR (GhcPass idL) GhcPs bodyR)] - ~ SrcSpanAnnL) + ~ SrcSpanAnnL + ) => EpAnn AnnList -> LocatedL [LStmtLR (GhcPass idL) GhcPs bodyR] -> StmtLR (GhcPass idL) GhcPs bodyR @@ -427,7 +442,11 @@ mkTcBindStmt pat body = BindStmt (XBindStmtTc { xbstc_bindOp = noSyntaxExpr, xbstc_failOp = Nothing }) pat body emptyRecStmt' :: forall idL idR body . - (WrapXRec (GhcPass idR) [LStmtLR (GhcPass idL) (GhcPass idR) body], IsPass idR) + (Anno [LocatedA (StmtLR (GhcPass idL) (GhcPass idR) body)] ~ SrcSpanAnnL, + WrapXRec (GhcPass idR) [GenLocated (Anno (StmtLR (GhcPass idL) (GhcPass idR) body)) + (StmtLR (GhcPass idL) (GhcPass idR) body)], + + IsPass idL, IsPass idR) => XRecStmt (GhcPass idL) (GhcPass idR) body -> StmtLR (GhcPass idL) (GhcPass idR) body emptyRecStmt' tyVal = @@ -458,7 +477,7 @@ mkLetStmt anns binds = LetStmt anns binds -- | A useful function for building @OpApps@. The operator is always a -- variable, and we don't know the fixity yet. mkHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> HsExpr GhcPs -mkHsOpApp e1 op e2 = OpApp noAnn e1 (noLocA (HsVar noExtField (noLocA op))) e2 +mkHsOpApp e1 op e2 = OpApp noAnn e1 (noLocA (HsVar noExtField (noLocN op))) e2 mkHsString :: String -> HsLit (GhcPass p) mkHsString s = HsString NoSourceText (mkFastString s) @@ -485,11 +504,11 @@ mkConLikeTc con = XExpr (ConLikeTc con [] []) nlHsVar :: IsSrcSpanAnn p a => IdP (GhcPass p) -> LHsExpr (GhcPass p) -nlHsVar n = noLocA (HsVar noExtField (noLocA n)) +nlHsVar n = noLocA (HsVar noExtField (noLocN n)) nl_HsVar :: IsSrcSpanAnn p a => IdP (GhcPass p) -> HsExpr (GhcPass p) -nl_HsVar n = HsVar noExtField (noLocA n) +nl_HsVar n = HsVar noExtField (noLocN n) -- | NB: Only for 'LHsExpr' 'Id'. nlHsDataCon :: DataCon -> LHsExpr GhcTc @@ -503,7 +522,7 @@ nlHsIntLit n = noLocA (HsLit noComments (HsInt noExtField (mkIntegralLit n))) nlVarPat :: IsSrcSpanAnn p a => IdP (GhcPass p) -> LPat (GhcPass p) -nlVarPat n = noLocA (VarPat noExtField (noLocA n)) +nlVarPat n = noLocA (VarPat noExtField (noLocN n)) nlLitPat :: HsLit GhcPs -> LPat GhcPs nlLitPat l = noLocA (LitPat noExtField l) @@ -528,8 +547,8 @@ nlHsApps f xs = foldl' nlHsApp (nlHsVar f) xs nlHsVarApps :: IsSrcSpanAnn p a => IdP (GhcPass p) -> [IdP (GhcPass p)] -> LHsExpr (GhcPass p) -nlHsVarApps f xs = noLocA (foldl' mk (HsVar noExtField (noLocA f)) - (map ((HsVar noExtField) . noLocA) xs)) +nlHsVarApps f xs = noLocA (foldl' mk (HsVar noExtField (noLocN f)) + (map ((HsVar noExtField) . noLocN) xs)) where mk f a = HsApp noComments (noLocA f) (noLocA a) @@ -541,7 +560,7 @@ nlConVarPatName con vars = nlConPatName con (map nlVarPat vars) nlInfixConPat :: RdrName -> LPat GhcPs -> LPat GhcPs -> LPat GhcPs nlInfixConPat con l r = noLocA $ ConPat - { pat_con = noLocA con + { pat_con = noLocN con , pat_args = InfixCon (parenthesizePat opPrec l) (parenthesizePat opPrec r) , pat_con_ext = noAnn @@ -550,28 +569,28 @@ nlInfixConPat con l r = noLocA $ ConPat nlConPat :: RdrName -> [LPat GhcPs] -> LPat GhcPs nlConPat con pats = noLocA $ ConPat { pat_con_ext = noAnn - , pat_con = noLocA con + , pat_con = noLocN con , pat_args = PrefixCon [] (map (parenthesizePat appPrec) pats) } nlConPatName :: Name -> [LPat GhcRn] -> LPat GhcRn nlConPatName con pats = noLocA $ ConPat { pat_con_ext = noExtField - , pat_con = noLocA con + , pat_con = noLocN con , pat_args = PrefixCon [] (map (parenthesizePat appPrec) pats) } nlNullaryConPat :: RdrName -> LPat GhcPs nlNullaryConPat con = noLocA $ ConPat { pat_con_ext = noAnn - , pat_con = noLocA con + , pat_con = noLocN con , pat_args = PrefixCon [] [] } nlWildConPat :: DataCon -> LPat GhcPs nlWildConPat con = noLocA $ ConPat { pat_con_ext = noAnn - , pat_con = noLocA $ getRdrName con + , pat_con = noLocN $ getRdrName con , pat_args = PrefixCon [] $ replicate (dataConSourceArity con) nlWildPat @@ -587,7 +606,7 @@ nlWildPatName = noLocA (WildPat noExtField ) nlHsDo :: HsDoFlavour -> [LStmt GhcPs (LHsExpr GhcPs)] -> LHsExpr GhcPs -nlHsDo ctxt stmts = noLocA (mkHsDo ctxt (noLocA stmts)) +nlHsDo ctxt stmts = noLocA (mkHsDo ctxt (noLocI stmts)) nlHsOpApp :: LHsExpr GhcPs -> IdP GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs nlHsOpApp e1 op e2 = noLocA (mkHsOpApp e1 op e2) @@ -599,7 +618,7 @@ nlHsCase :: LHsExpr GhcPs -> [LMatch GhcPs (LHsExpr GhcPs)] nlList :: [LHsExpr GhcPs] -> LHsExpr GhcPs -- AZ:Is this used? -nlHsLam match = noLocA (HsLam noExtField (mkMatchGroup Generated (noLocA [match]))) +nlHsLam match = noLocA (HsLam noExtField (mkMatchGroup Generated (noLocI [match]))) nlHsPar e = noLocA (gHsPar e) -- nlHsIf should generate if-expressions which are NOT subject to @@ -608,7 +627,7 @@ nlHsIf :: LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs -> LHsExpr GhcPs nlHsIf cond true false = noLocA (HsIf noAnn cond true false) nlHsCase expr matches - = noLocA (HsCase noAnn expr (mkMatchGroup Generated (noLocA matches))) + = noLocA (HsCase noAnn expr (mkMatchGroup Generated (noLocI matches))) nlList exprs = noLocA (ExplicitList noAnn exprs) nlHsAppTy :: LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) @@ -618,7 +637,7 @@ nlHsFunTy :: LHsType (GhcPass p) -> LHsType (GhcPass p) -> LHsType (GhcPass p) nlHsParTy :: LHsType (GhcPass p) -> LHsType (GhcPass p) nlHsAppTy f t = noLocA (HsAppTy noExtField f (parenthesizeHsType appPrec t)) -nlHsTyVar p x = noLocA (HsTyVar noAnn p (noLocA x)) +nlHsTyVar p x = noLocA (HsTyVar noAnn p (noLocN x)) nlHsFunTy a b = noLocA (HsFunTy noAnn (HsUnrestrictedArrow noHsUniTok) (parenthesizeHsType funPrec a) b) nlHsParTy t = noLocA (HsParTy noAnn t) @@ -629,7 +648,7 @@ nlHsTyConApp :: IsSrcSpanAnn p a nlHsTyConApp prom fixity tycon tys | Infix <- fixity , HsValArg ty1 : HsValArg ty2 : rest <- tys - = foldl' mk_app (noLocA $ HsOpTy noAnn prom ty1 (noLocA tycon) ty2) rest + = foldl' mk_app (noLocA $ HsOpTy noAnn prom ty1 (noLocN tycon) ty2) rest | otherwise = foldl' mk_app (nlHsTyVar prom tycon) tys where @@ -803,7 +822,7 @@ mkFunBind :: Origin -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -- ^ Not infix, with place holders for coercion and free vars mkFunBind origin fn ms = FunBind { fun_id = fn - , fun_matches = mkMatchGroup origin (noLocA ms) + , fun_matches = mkMatchGroup origin (noLocI ms) , fun_ext = noExtField } @@ -811,7 +830,7 @@ mkTopFunBind :: Origin -> LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn -- ^ In Name-land, with empty bind_fvs mkTopFunBind origin fn ms = FunBind { fun_id = fn - , fun_matches = mkMatchGroup origin (noLocA ms) + , fun_matches = mkMatchGroup origin (noLocI ms) , fun_ext = emptyNameSet -- NB: closed -- binding } @@ -867,8 +886,8 @@ spanHsLocaLBinds (HsIPBinds _ (IPBinds _ bs)) mkSimpleGeneratedFunBind :: SrcSpan -> RdrName -> [LPat GhcPs] -> LHsExpr GhcPs -> LHsBind GhcPs mkSimpleGeneratedFunBind loc fun pats expr - = L (noAnnSrcSpan loc) $ mkFunBind Generated (L (noAnnSrcSpan loc) fun) - [mkMatch (mkPrefixFunRhs (L (noAnnSrcSpan loc) fun)) pats expr + = L (noAnnSrcSpan loc) $ mkFunBind Generated (L (noAnnSrcSpanN loc) fun) + [mkMatch (mkPrefixFunRhs (L (noAnnSrcSpanN loc) fun)) pats expr emptyLocalBinds] -- | Make a prefix, non-strict function 'HsMatchContext' @@ -1440,7 +1459,7 @@ hsForeignDeclsBinders :: forall p a. (UnXRec (GhcPass p), IsSrcSpanAnn p a) => [LForeignDecl (GhcPass p)] -> [LIdP (GhcPass p)] -- ^ See Note [SrcSpan for binders] hsForeignDeclsBinders foreign_decls - = [ L (noAnnSrcSpan (locA decl_loc)) n + = [ L (noAnnSrcSpanN (locA decl_loc)) n | L decl_loc (ForeignImport { fd_name = L _ n }) <- foreign_decls] @@ -1740,6 +1759,6 @@ lPatImplicits = hs_lpat , let pat_explicit = maybe True ((i<) . unRecFieldsDotDot . unLoc) (rec_dotdot fs)] - err_loc = maybe (getLocA n) getLoc (rec_dotdot fs) + err_loc = maybe (getLocN n) getLoc (rec_dotdot fs) details _ (InfixCon p1 p2) = hs_lpat p1 ++ hs_lpat p2 diff --git a/compiler/GHC/HsToCore/Arrows.hs b/compiler/GHC/HsToCore/Arrows.hs index cc757a94e3..6f4796290e 100644 --- a/compiler/GHC/HsToCore/Arrows.hs +++ b/compiler/GHC/HsToCore/Arrows.hs @@ -810,7 +810,7 @@ dsCases ids local_vars stack_id stack_ty res_ty -- implemented as `arr \case {}`. Nothing -> ([], void_ty,) . do_arr ids void_ty res_ty <$> dsExpr (HsLamCase EpAnnNotUsed LamCase - (MG { mg_alts = noLocA [] + (MG { mg_alts = noLocI [] , mg_ext = MatchGroupTc [Scaled ManyTy void_ty] res_ty Generated })) diff --git a/compiler/GHC/HsToCore/Docs.hs b/compiler/GHC/HsToCore/Docs.hs index f162dadaf5..f142817730 100644 --- a/compiler/GHC/HsToCore/Docs.hs +++ b/compiler/GHC/HsToCore/Docs.hs @@ -249,9 +249,12 @@ mkMaps env instances decls = -> ( [(Name, [HsDoc GhcRn])] , [(Name, IntMap (HsDoc GhcRn))] ) - mappings (L (SrcSpanAnn _ (RealSrcSpan l _)) decl, doc) = + mappings (L (EpAnnS anc _ _ ) decl, doc) = (dm, am) where + l = case anc of + EpaSpan (RealSrcSpan s _) -> Just s + _ -> Nothing args = declTypeDocs decl subs :: [(Name, [HsDoc GhcRn], IntMap (HsDoc GhcRn))] @@ -263,14 +266,14 @@ mkMaps env instances decls = ns = names l decl dm = [(n, d) | (n, d) <- zip ns (repeat doc) ++ zip subNs subDocs, not $ all (isEmptyDocString . hsDocString) d] am = [(n, args) | n <- ns] ++ zip subNs subArgs - mappings (L (SrcSpanAnn _ (UnhelpfulSpan _)) _, _) = ([], []) instanceMap :: Map RealSrcSpan Name instanceMap = M.fromList [(l, n) | n <- instances, RealSrcSpan l _ <- [getSrcSpan n] ] - names :: RealSrcSpan -> HsDecl GhcRn -> [Name] + names :: Maybe RealSrcSpan -> HsDecl GhcRn -> [Name] names _ (InstD _ d) = maybeToList $ lookupSrcSpan (getInstLoc d) instanceMap - names l (DerivD {}) = maybeToList (M.lookup l instanceMap) -- See Note [1]. + names (Just l) (DerivD {}) = maybeToList (M.lookup l instanceMap) -- See Note [1]. + names Nothing (DerivD {}) = [] names _ decl = getMainDeclBinder env decl {- @@ -327,12 +330,12 @@ getInstLoc = \case -- type instance Foo Int = Bool -- ^^^ DataFamInstD _ (DataFamInstDecl - { dfid_eqn = FamEqn { feqn_tycon = L l _ }}) -> locA l + { dfid_eqn = FamEqn { feqn_tycon = L l _ }}) -> locN l -- Since CoAxioms' Names refer to the whole line for type family instances -- in particular, we need to dig a bit deeper to pull out the entire -- equation. This does not happen for data family instances, for some reason. TyFamInstD _ (TyFamInstDecl - { tfid_eqn = FamEqn { feqn_tycon = L l _ }}) -> locA l + { tfid_eqn = FamEqn { feqn_tycon = L l _ }}) -> locN l -- | Get all subordinate declarations inside a declaration, and their docs. -- A subordinate declaration is something like the associate type or data @@ -347,10 +350,10 @@ subordinates env instMap decl = case decl of DataFamInstDecl { dfid_eqn = FamEqn { feqn_tycon = L l _ , feqn_rhs = defn }} <- unLoc <$> cid_datafam_insts d - [ (n, [], IM.empty) | Just n <- [lookupSrcSpan (locA l) instMap] ] ++ dataSubs defn + [ (n, [], IM.empty) | Just n <- [lookupSrcSpan (locN l) instMap] ] ++ dataSubs defn ty_fams = do TyFamInstDecl { tfid_eqn = FamEqn { feqn_tycon = L l _ } } <- unLoc <$> cid_tyfam_insts d - [ (n, [], IM.empty) | Just n <- [lookupSrcSpan (locA l) instMap] ] + [ (n, [], IM.empty) | Just n <- [lookupSrcSpan (locN l) instMap] ] in data_fams ++ ty_fams InstD _ (DataFamInstD _ (DataFamInstDecl d)) @@ -503,18 +506,19 @@ ungroup group_ = -- | Collect docs and attach them to the right declarations. -- -- A declaration may have multiple doc strings attached to it. -collectDocs :: forall p. UnXRec p => [LHsDecl p] -> [(LHsDecl p, [HsDoc p])] +-- collectDocs :: forall p. UnXRec p => [LHsDecl p] -> [(LHsDecl p, [HsDoc p])] +collectDocs :: [LHsDecl GhcRn] -> [(LHsDecl GhcRn, [HsDoc GhcRn])] -- ^ This is an example. collectDocs = go [] Nothing where go docs mprev decls = case (decls, mprev) of - ((unXRec @p -> DocD _ (DocCommentNext s)) : ds, Nothing) -> go (unLoc s:docs) Nothing ds - ((unXRec @p -> DocD _ (DocCommentNext s)) : ds, Just prev) -> finished prev docs $ go [unLoc s] Nothing ds - ((unXRec @p -> DocD _ (DocCommentPrev s)) : ds, mprev) -> go (unLoc s:docs) mprev ds - (d : ds, Nothing) -> go docs (Just d) ds - (d : ds, Just prev) -> finished prev docs $ go [] (Just d) ds - ([] , Nothing) -> [] - ([] , Just prev) -> finished prev docs [] + ((L _ (DocD _ (DocCommentNext s))) : ds, Nothing) -> go (unLoc s:docs) Nothing ds + ((L _ (DocD _ (DocCommentNext s))) : ds, Just prev) -> finished prev docs $ go [unLoc s] Nothing ds + ((L _ (DocD _ (DocCommentPrev s))) : ds, mprev) -> go (unLoc s:docs) mprev ds + (d : ds, Nothing) -> go docs (Just d) ds + (d : ds, Just prev) -> finished prev docs $ go [] (Just d) ds + ([] , Nothing) -> [] + ([] , Just prev) -> finished prev docs [] finished decl docs rest = (decl, reverse docs) : rest diff --git a/compiler/GHC/HsToCore/Expr.hs b/compiler/GHC/HsToCore/Expr.hs index 6a0bee9089..00e4784360 100644 --- a/compiler/GHC/HsToCore/Expr.hs +++ b/compiler/GHC/HsToCore/Expr.hs @@ -711,7 +711,7 @@ dsDo ctx stmts ; rhss' <- sequence rhss - ; body' <- dsLExpr $ noLocA $ HsDo body_ty ctx (noLocA stmts) + ; body' <- dsLExpr $ noLocA $ HsDo body_ty ctx (noLocI stmts) ; let match_args (pat, fail_op) (vs,body) = putSrcSpanDs (getLocA pat) $ @@ -756,14 +756,14 @@ dsDo ctx stmts rets = map noLocA rec_rets mfix_app = nlHsSyntaxApps mfix_op [mfix_arg] mfix_arg = noLocA $ HsLam noExtField - (MG { mg_alts = noLocA [mkSimpleMatch + (MG { mg_alts = noLocI [mkSimpleMatch LambdaExpr [mfix_pat] body] , mg_ext = MatchGroupTc [unrestricted tup_ty] body_ty Generated }) mfix_pat = noLocA $ LazyPat noExtField $ mkBigLHsPatTupId rec_tup_pats body = noLocA $ HsDo body_ty - ctx (noLocA (rec_stmts ++ [ret_stmt])) + ctx (noLocI (rec_stmts ++ [ret_stmt])) ret_app = nlHsSyntaxApps return_op [mkBigLHsTupId rets] ret_stmt = noLocA $ mkLastStmt ret_app -- This LastStmt will be desugared with dsDo, diff --git a/compiler/GHC/HsToCore/Match/Literal.hs b/compiler/GHC/HsToCore/Match/Literal.hs index 1c21f2a5e6..7d49b35f8d 100644 --- a/compiler/GHC/HsToCore/Match/Literal.hs +++ b/compiler/GHC/HsToCore/Match/Literal.hs @@ -575,7 +575,7 @@ tidyNPat (OverLit (OverLitTc False _ ty) val) mb_neg _eq outer_ty _ -> Nothing tidyNPat over_lit mb_neg eq outer_ty - = NPat outer_ty (noLocA over_lit) mb_neg eq + = NPat outer_ty (noLocI over_lit) mb_neg eq {- ************************************************************************ diff --git a/compiler/GHC/HsToCore/Monad.hs b/compiler/GHC/HsToCore/Monad.hs index 1edcde6924..9f85713798 100644 --- a/compiler/GHC/HsToCore/Monad.hs +++ b/compiler/GHC/HsToCore/Monad.hs @@ -22,7 +22,7 @@ module GHC.HsToCore.Monad ( duplicateLocalDs, newSysLocalDs, newSysLocalsDs, newUniqueId, newFailLocalDs, newPredVarDs, - getSrcSpanDs, putSrcSpanDs, putSrcSpanDsA, + getSrcSpanDs, putSrcSpanDs, putSrcSpanDsA, putSrcSpanDsI, mkNamePprCtxDs, newUnique, UniqSupply, newUniqueSupply, @@ -429,9 +429,12 @@ putSrcSpanDs (UnhelpfulSpan {}) thing_inside putSrcSpanDs (RealSrcSpan real_span _) thing_inside = updLclEnv (\ env -> env {dsl_loc = real_span}) thing_inside -putSrcSpanDsA :: SrcSpanAnn' ann -> DsM a -> DsM a +putSrcSpanDsA :: EpAnnS ann -> DsM a -> DsM a putSrcSpanDsA loc = putSrcSpanDs (locA loc) +putSrcSpanDsI :: SrcSpanAnn' ann -> DsM a -> DsM a +putSrcSpanDsI loc = putSrcSpanDs (locI loc) + -- | Emit a diagnostic for the current source location. In case the diagnostic is a warning, -- the latter will be ignored and discarded if the relevant 'WarningFlag' is not set in the DynFlags. -- See Note [Discarding Messages] in 'GHC.Types.Error'. diff --git a/compiler/GHC/HsToCore/Quote.hs b/compiler/GHC/HsToCore/Quote.hs index 75a7121548..c5420f37cc 100644 --- a/compiler/GHC/HsToCore/Quote.hs +++ b/compiler/GHC/HsToCore/Quote.hs @@ -1463,7 +1463,7 @@ repMaybeLTy m = do k_ty <- wrapName kindTyConName repMaybeT k_ty repLTy m -repRole :: LocatedAn NoEpAnns (Maybe Role) -> MetaM (Core TH.Role) +repRole :: LocatedAnS NoEpAnns (Maybe Role) -> MetaM (Core TH.Role) repRole (L _ (Just Nominal)) = rep2_nw nominalRName [] repRole (L _ (Just Representational)) = rep2_nw representationalRName [] repRole (L _ (Just Phantom)) = rep2_nw phantomRName [] @@ -1510,7 +1510,7 @@ repE (HsVar _ (L _ x)) = repE (HsIPVar _ n) = rep_implicit_param_name n >>= repImplicitParamVar repE (HsOverLabel _ _ s) = repOverLabel s -repE (HsRecSel _ (FieldOcc x _)) = repE (HsVar noExtField (noLocA x)) +repE (HsRecSel _ (FieldOcc x _)) = repE (HsVar noExtField (noLocN x)) -- Remember, we're desugaring renamer output here, so -- HsOverlit can definitely occur diff --git a/compiler/GHC/HsToCore/Ticks.hs b/compiler/GHC/HsToCore/Ticks.hs index 8c0227df80..2fe1787420 100644 --- a/compiler/GHC/HsToCore/Ticks.hs +++ b/compiler/GHC/HsToCore/Ticks.hs @@ -723,7 +723,7 @@ addTickStmt isGuard stmt@(RecStmt {}) ; ret' <- addTickSyntaxExpr hpcSrcSpan (recS_ret_fn stmt) ; mfix' <- addTickSyntaxExpr hpcSrcSpan (recS_mfix_fn stmt) ; bind' <- addTickSyntaxExpr hpcSrcSpan (recS_bind_fn stmt) - ; return (stmt { recS_stmts = noLocA stmts', recS_ret_fn = ret' + ; return (stmt { recS_stmts = noLocI stmts', recS_ret_fn = ret' , recS_mfix_fn = mfix', recS_bind_fn = bind' }) } addTick :: Maybe (Bool -> BoxLabel) -> LHsExpr GhcTc -> TM (LHsExpr GhcTc) @@ -937,7 +937,7 @@ addTickCmdStmt stmt@(RecStmt {}) ; ret' <- addTickSyntaxExpr hpcSrcSpan (recS_ret_fn stmt) ; mfix' <- addTickSyntaxExpr hpcSrcSpan (recS_mfix_fn stmt) ; bind' <- addTickSyntaxExpr hpcSrcSpan (recS_bind_fn stmt) - ; return (stmt { recS_stmts = noLocA stmts', recS_ret_fn = ret' + ; return (stmt { recS_stmts = noLocI stmts', recS_ret_fn = ret' , recS_mfix_fn = mfix', recS_bind_fn = bind' }) } addTickCmdStmt ApplicativeStmt{} = panic "ToDo: addTickCmdStmt ApplicativeLastStmt" diff --git a/compiler/GHC/Iface/Ext/Ast.hs b/compiler/GHC/Iface/Ext/Ast.hs index 24a68e63c4..199f4c9efe 100644 --- a/compiler/GHC/Iface/Ext/Ast.hs +++ b/compiler/GHC/Iface/Ext/Ast.hs @@ -398,14 +398,14 @@ processGrp grp = concatM , toHie $ hs_docs grp ] -getRealSpanA :: SrcSpanAnn' ann -> Maybe Span +getRealSpanA :: EpAnnS ann -> Maybe Span getRealSpanA la = getRealSpan (locA la) getRealSpan :: SrcSpan -> Maybe Span getRealSpan (RealSrcSpan sp _) = Just sp getRealSpan _ = Nothing -grhss_span :: (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcAnn NoEpAnns) +grhss_span :: (Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) ~ EpAnnS NoEpAnns) => GRHSs (GhcPass p) (LocatedA (body (GhcPass p))) -> SrcSpan grhss_span (GRHSs _ xs bs) = foldl' combineSrcSpans (spanHsLocaLBinds bs) (map getLocA xs) @@ -555,7 +555,7 @@ instance HasLoc (LocatedA a) where loc (L la _) = locA la instance HasLoc (LocatedN a) where - loc (L la _) = locA la + loc (L la _) = locN la instance HasLoc a => HasLoc [a] where loc [] = noSrcSpan @@ -610,15 +610,15 @@ instance (ToHie a) => ToHie (Maybe a) where toHie = maybe (pure []) toHie instance ToHie (IEContext (LocatedA ModuleName)) where - toHie (IEC c (L (SrcSpanAnn _ (RealSrcSpan span _)) mname)) = do + toHie (IEC c (L (EpAnnS (EpaSpan (RealSrcSpan span _)) _ _) mname)) = do org <- ask pure $ [Node (mkSourcedNodeInfo org $ NodeInfo S.empty [] idents) span []] where details = mempty{identInfo = S.singleton (IEThing c)} idents = M.singleton (Left mname) details - toHie _ = pure [] + toHie (IEC _ (L (EpAnnS _ _ _) _)) = pure [] instance ToHie (Context (Located a)) => ToHie (Context (LocatedN a)) where - toHie (C c (L l a)) = toHie (C c (L (locA l) a)) + toHie (C c (L l a)) = toHie (C c (L (locN l) a)) instance ToHie (Context (Located a)) => ToHie (Context (LocatedA a)) where toHie (C c (L l a)) = toHie (C c (L (locA l) a)) @@ -839,7 +839,7 @@ type AnnoBody p body , Anno [LocatedA (Match (GhcPass p) (LocatedA (body (GhcPass p))))] ~ SrcSpanAnnL , Anno (GRHS (GhcPass p) (LocatedA (body (GhcPass p)))) - ~ SrcAnn NoEpAnns + ~ EpAnnS NoEpAnns , Anno (StmtLR (GhcPass p) (GhcPass p) (LocatedA (body (GhcPass p)))) ~ SrcSpanAnnA , Data (body (GhcPass p)) @@ -897,7 +897,7 @@ instance ( HiePass p toHie mg = case mg of MG{ mg_alts = (L span alts) } -> local (setOrigin origin) $ concatM - [ locOnly (locA span) + [ locOnly (locI span) , toHie alts ] where origin = case hiePass @p of @@ -1091,7 +1091,7 @@ instance ( ToHie (LocatedA (body (GhcPass p))) instance ( ToHie (LocatedA (body (GhcPass p))) , HiePass p , AnnoBody p body - ) => ToHie (LocatedAn NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) where + ) => ToHie (LocatedAnS NoEpAnns (GRHS (GhcPass p) (LocatedA (body (GhcPass p))))) where toHie (L span g) = concatM $ makeNodeA g span : case g of GRHS _ guards body -> [ toHie $ listScopes (mkLScopeA body) guards @@ -1106,7 +1106,7 @@ instance HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) where ] HsUnboundVar _ _ -> [] -- there is an unbound name here, but that causes trouble HsRecSel _ fld -> - [ toHie $ RFC RecFieldOcc Nothing (L (l2l mspan:: SrcAnn NoEpAnns) fld) + [ toHie $ RFC RecFieldOcc Nothing (L (l2l mspan:: EpAnnS NoEpAnns) fld) ] HsOverLabel {} -> [] HsIPVar _ _ -> [] @@ -1168,7 +1168,7 @@ instance HiePass p => ToHie (LocatedA (HsExpr (GhcPass p))) where , toHie expr ] HsDo _ _ (L ispan stmts) -> - [ locOnly (locA ispan) + [ locOnly (locI ispan) , toHie $ listScopes NoScope stmts ] ExplicitList _ exprs -> @@ -1374,14 +1374,14 @@ instance ( ToHie (RFContext label) , toHie expr ] -instance HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (FieldOcc (GhcPass p)))) where +instance HiePass p => ToHie (RFContext (LocatedAnS NoEpAnns (FieldOcc (GhcPass p)))) where toHie (RFC c rhs (L nspan f)) = concatM $ case f of FieldOcc fld _ -> case hiePass @p of HieRn -> [toHie $ C (RecField c rhs) (L (locA nspan) fld)] HieTc -> [toHie $ C (RecField c rhs) (L (locA nspan) fld)] -instance HiePass p => ToHie (RFContext (LocatedAn NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) where +instance HiePass p => ToHie (RFContext (LocatedAnS NoEpAnns (AmbiguousFieldOcc (GhcPass p)))) where toHie (RFC c rhs (L nspan afo)) = concatM $ case afo of Unambiguous fld _ -> case hiePass @p of @@ -1411,7 +1411,7 @@ instance ToHie (HsConDeclGADTDetails GhcRn) where toHie (PrefixConGADT args) = toHie args toHie (RecConGADT rec _) = toHie rec -instance HiePass p => ToHie (LocatedAn NoEpAnns (HsCmdTop (GhcPass p))) where +instance HiePass p => ToHie (LocatedAnS NoEpAnns (HsCmdTop (GhcPass p))) where toHie (L span top) = concatM $ makeNodeA top span : case top of HsCmdTop _ cmd -> [ toHie cmd @@ -1454,7 +1454,7 @@ instance HiePass p => ToHie (LocatedA (HsCmd (GhcPass p))) where , toHie cmd' ] HsCmdDo _ (L ispan stmts) -> - [ locOnly (locA ispan) + [ locOnly (locI ispan) , toHie $ listScopes NoScope stmts ] XCmd _ -> [] @@ -1487,11 +1487,11 @@ instance ToHie (LocatedA (TyClDecl GhcRn)) where , toHie defn ] where - quant_scope = mkLScopeA $ fromMaybe (noLocA []) $ dd_ctxt defn + quant_scope = mkLScopeI $ fromMaybe (noLocI []) $ dd_ctxt defn rhs_scope = sig_sc `combineScopes` con_sc `combineScopes` deriv_sc sig_sc = maybe NoScope mkLScopeA $ dd_kindSig defn con_sc = foldr combineScopes NoScope $ mkLScopeA <$> dd_cons defn - deriv_sc = foldr combineScopes NoScope $ mkLScopeA <$> dd_derivs defn + deriv_sc = foldr combineScopes NoScope $ mkLScopeI <$> dd_derivs defn ClassDecl { tcdCtxt = context , tcdLName = name , tcdTyVars = vars @@ -1512,7 +1512,7 @@ instance ToHie (LocatedA (TyClDecl GhcRn)) where , toHie deftyps ] where - context_scope = mkLScopeA $ fromMaybe (noLocA []) context + context_scope = mkLScopeI $ fromMaybe (noLocI []) context rhs_scope = foldl1' combineScopes $ map mkScope [ loc deps, loc sigs, loc (bagToList meths), loc typs, loc deftyps] @@ -1527,8 +1527,8 @@ instance ToHie (LocatedA (FamilyDecl GhcRn)) where ] where rhsSpan = sigSpan `combineScopes` injSpan - sigSpan = mkScope $ getLocA sig - injSpan = maybe NoScope (mkScope . getLocA) inj + sigSpan = mkScope $ getLocI sig + injSpan = maybe NoScope (mkScope . getLocI) inj instance ToHie (FamilyInfo GhcRn) where toHie (ClosedTypeFamily (Just eqns)) = concatM $ @@ -1539,8 +1539,8 @@ instance ToHie (FamilyInfo GhcRn) where go (L l ib) = TS (ResolvedScopes [mkScopeA l]) ib toHie _ = pure [] -instance ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) where - toHie (RS sc (L span sig)) = concatM $ makeNodeA sig span : case sig of +instance ToHie (RScoped (LocatedAn NoEpAnns (FamilyResultSig GhcRn))) where + toHie (RS sc (L span sig)) = concatM $ makeNodeI sig span : case sig of NoSig _ -> [] KindSig _ k -> @@ -1577,7 +1577,7 @@ instance (ToHie rhs, HasLoc rhs) rhsScope = mkScope (loc rhs) instance ToHie (LocatedAn NoEpAnns (InjectivityAnn GhcRn)) where - toHie (L span ann) = concatM $ makeNodeA ann span : case ann of + toHie (L span ann) = concatM $ makeNodeI ann span : case ann of InjectivityAnn _ lhs rhs -> [ toHie $ C Use lhs , toHie $ map (C Use) rhs @@ -1598,26 +1598,26 @@ instance ToHie (Located [LocatedAn NoEpAnns (HsDerivingClause GhcRn)]) where ] instance ToHie (LocatedAn NoEpAnns (HsDerivingClause GhcRn)) where - toHie (L span cl) = concatM $ makeNodeA cl span : case cl of + toHie (L span cl) = concatM $ makeNodeI cl span : case cl of HsDerivingClause _ strat dct -> - [ toHie (RS (mkLScopeA dct) <$> strat) + [ toHie (RS (mkLScopeI dct) <$> strat) , toHie dct ] instance ToHie (LocatedC (DerivClauseTys GhcRn)) where - toHie (L span dct) = concatM $ makeNodeA dct span : case dct of + toHie (L span dct) = concatM $ makeNodeI dct span : case dct of DctSingle _ ty -> [ toHie $ TS (ResolvedScopes []) ty ] DctMulti _ tys -> [ toHie $ map (TS (ResolvedScopes [])) tys ] instance ToHie (RScoped (LocatedAn NoEpAnns (DerivStrategy GhcRn))) where - toHie (RS sc (L span strat)) = concatM $ makeNodeA strat span : case strat of + toHie (RS sc (L span strat)) = concatM $ makeNodeI strat span : case strat of StockStrategy _ -> [] AnyclassStrategy _ -> [] NewtypeStrategy _ -> [] ViaStrategy s -> [ toHie (TS (ResolvedScopes [sc]) s) ] instance ToHie (LocatedP OverlapMode) where - toHie (L span _) = locOnly (locA span) + toHie (L span _) = locOnly (locI span) instance ToHie a => ToHie (HsScaled GhcRn a) where toHie (HsScaled w t) = concatM [toHie (arrowToHsType w), toHie t] @@ -1641,10 +1641,10 @@ instance ToHie (LocatedA (ConDecl GhcRn)) where ] where rhsScope = combineScopes argsScope tyScope - ctxScope = maybe NoScope mkLScopeA ctx + ctxScope = maybe NoScope mkLScopeI ctx argsScope = case args of PrefixConGADT xs -> scaled_args_scope xs - RecConGADT x _ -> mkLScopeA x + RecConGADT x _ -> mkLScopeI x tyScope = mkLScopeA typ resScope = ResolvedScopes [ctxScope, rhsScope] ConDeclH98 { con_name = name, con_ex_tvs = qvars @@ -1658,17 +1658,17 @@ instance ToHie (LocatedA (ConDecl GhcRn)) where ] where rhsScope = combineScopes ctxScope argsScope - ctxScope = maybe NoScope mkLScopeA ctx + ctxScope = maybe NoScope mkLScopeI ctx argsScope = case dets of PrefixCon _ xs -> scaled_args_scope xs InfixCon a b -> scaled_args_scope [a, b] - RecCon x -> mkLScopeA x + RecCon x -> mkLScopeI x where scaled_args_scope :: [HsScaled GhcRn (LHsType GhcRn)] -> Scope scaled_args_scope = foldr combineScopes NoScope . map (mkLScopeA . hsScaledThing) instance ToHie (LocatedL [LocatedA (ConDeclField GhcRn)]) where toHie (L span decls) = concatM $ - [ locOnly (locA span) + [ locOnly (locI span) , toHie decls ] @@ -1733,7 +1733,7 @@ instance HiePass p => ToHie (SigContext (LocatedA (Sig (GhcPass p)))) where ] SCCFunSig _ name mtxt -> [ toHie $ (C Use) name - , maybe (pure []) (locOnly . getLocA) mtxt + , maybe (pure []) (locOnly . getLocI) mtxt ] CompleteMatchSig _ (L ispan names) typ -> [ locOnly ispan @@ -1860,7 +1860,7 @@ instance ToHie (TScoped (LHsQTyVars GhcRn)) where instance ToHie (LocatedC [LocatedA (HsType GhcRn)]) where toHie (L span tys) = concatM $ - [ locOnly (locA span) + [ locOnly (locI span) , toHie tys ] @@ -1909,7 +1909,7 @@ instance ToHie PendingTcSplice where toHie (PendingTcSplice _ e) = toHie e instance ToHie (LBooleanFormula (LocatedN Name)) where - toHie (L span form) = concatM $ makeNode form (locA span) : case form of + toHie (L span form) = concatM $ makeNode form (locI span) : case form of Var a -> [ toHie $ C Use a ] @@ -1923,8 +1923,8 @@ instance ToHie (LBooleanFormula (LocatedN Name)) where [ toHie f ] -instance ToHie (LocatedAn NoEpAnns HsIPName) where - toHie (L span e) = makeNodeA e span +instance ToHie (LocatedAn NoEpAnns HsIPName) where + toHie (L span e) = makeNodeI e span instance HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) where toHie (L span sp) = concatM $ makeNodeA sp span : case sp of @@ -1932,7 +1932,7 @@ instance HiePass p => ToHie (LocatedA (HsUntypedSplice (GhcPass p))) where [ toHie expr ] HsQuasiQuote _ _ ispanFs -> - [ locOnly (getLocA ispanFs) + [ locOnly (getLocI ispanFs) ] instance ToHie (LocatedA (RoleAnnotDecl GhcRn)) where @@ -2062,19 +2062,19 @@ instance ToHie (LocatedA (RuleDecls GhcRn)) where instance ToHie (LocatedA (RuleDecl GhcRn)) where toHie (L span r@(HsRule _ rname _ tybndrs bndrs exprA exprB)) = concatM [ makeNodeA r span - , locOnly $ getLocA rname + , locOnly $ getLocI rname , toHie $ fmap (tvScopes (ResolvedScopes []) scope) tybndrs , toHie $ map (RS $ mkScope (locA span)) bndrs , toHie exprA , toHie exprB ] where scope = bndrs_sc `combineScopes` exprA_sc `combineScopes` exprB_sc - bndrs_sc = maybe NoScope mkLScopeA (listToMaybe bndrs) + bndrs_sc = maybe NoScope mkLScopeI (listToMaybe bndrs) exprA_sc = mkLScopeA exprA exprB_sc = mkLScopeA exprB instance ToHie (RScoped (LocatedAn NoEpAnns (RuleBndr GhcRn))) where - toHie (RS sc (L span bndr)) = concatM $ makeNodeA bndr span : case bndr of + toHie (RS sc (L span bndr)) = concatM $ makeNodeI bndr span : case bndr of RuleBndr _ var -> [ toHie $ C (ValBind RegularBind sc Nothing) var ] @@ -2092,7 +2092,7 @@ instance ToHie (LocatedA (ImportDecl GhcRn)) where ] where goIE (hiding, (L sp liens)) = concatM $ - [ locOnly (locA sp) + [ locOnly (locI sp) , toHie $ map (IEC c) liens ] where diff --git a/compiler/GHC/Iface/Ext/Utils.hs b/compiler/GHC/Iface/Ext/Utils.hs index 105e13acd9..a0e5571193 100644 --- a/compiler/GHC/Iface/Ext/Utils.hs +++ b/compiler/GHC/Iface/Ext/Utils.hs @@ -527,7 +527,7 @@ locOnly (RealSrcSpan span _) = do pure [Node e span []] locOnly _ = pure [] -mkScopeA :: SrcSpanAnn' ann -> Scope +mkScopeA :: EpAnnS ann -> Scope mkScopeA l = mkScope (locA l) mkScope :: SrcSpan -> Scope @@ -537,11 +537,14 @@ mkScope _ = NoScope mkLScope :: Located a -> Scope mkLScope = mkScope . getLoc -mkLScopeA :: GenLocated (SrcSpanAnn' a) e -> Scope +mkLScopeA :: LocatedAnS a e -> Scope mkLScopeA = mkScope . locA . getLoc +mkLScopeI :: GenLocated (SrcAnn a) e -> Scope +mkLScopeI = mkScope . locI . getLoc + mkLScopeN :: LocatedN a -> Scope -mkLScopeN = mkScope . getLocA +mkLScopeN = mkScope . getLocN combineScopes :: Scope -> Scope -> Scope combineScopes ModuleScope _ = ModuleScope @@ -557,11 +560,19 @@ mkSourcedNodeInfo org ni = SourcedNodeInfo $ M.singleton org ni {-# INLINEABLE makeNodeA #-} makeNodeA :: (Monad m, Data a) - => a -- ^ helps fill in 'nodeAnnotations' (with 'Data') - -> SrcSpanAnn' ann -- ^ return an empty list if this is unhelpful + => a -- ^ helps fill in 'nodeAnnotations' (with 'Data') + -> EpAnnS ann -- ^ return an empty list if this is unhelpful -> ReaderT NodeOrigin m [HieAST b] makeNodeA x spn = makeNode x (locA spn) +{-# INLINEABLE makeNodeI #-} +makeNodeI + :: (Monad m, Data a) + => a -- ^ helps fill in 'nodeAnnotations' (with 'Data') + -> SrcAnn ann -- ^ return an empty list if this is unhelpful + -> ReaderT NodeOrigin m [HieAST b] +makeNodeI x spn = makeNode x (locI spn) + {-# INLINEABLE makeNode #-} makeNode :: (Monad m, Data a) diff --git a/compiler/GHC/IfaceToCore.hs b/compiler/GHC/IfaceToCore.hs index 2a81b9c2a0..47b9246ad1 100644 --- a/compiler/GHC/IfaceToCore.hs +++ b/compiler/GHC/IfaceToCore.hs @@ -291,7 +291,7 @@ mergeIfaceDecl d1 d2 (mkNameEnv [ (n, op) | op@(IfaceClassOp n _ _) <- ops2 ]) in d1 { ifBody = (ifBody d1) { ifSigs = ops, - ifMinDef = BF.mkOr [noLocA bf1, noLocA bf2] + ifMinDef = BF.mkOr [noLocI bf1, noLocI bf2] } } `withRolesFrom` d2 -- It doesn't matter; we'll check for consistency later when diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y index d95d9d1512..a7a2880c15 100644 --- a/compiler/GHC/Parser.y +++ b/compiler/GHC/Parser.y @@ -886,7 +886,7 @@ unitdecl :: { LHsUnitDecl PackageName } signature :: { Located (HsModule GhcPs) } : 'signature' modid maybemodwarning maybeexports 'where' body {% fileSrcSpan >>= \ loc -> - acs (\cs-> (L loc (HsModule (XModulePs + acs (\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) @@ -918,10 +918,10 @@ implicit_top :: { () } maybemodwarning :: { Maybe (LocatedP (WarningTxt GhcPs)) } : '{-# DEPRECATED' strings '#-}' - {% fmap Just $ amsrp (sLL $1 $> $ DeprecatedTxt (sL1 $1 $ getDEPRECATED_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $2)) + {% fmap Just $ amsrp (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 (sL1 $1 $ getWARNING_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $3)) + {% fmap Just $ amsrp (sLL $1 $> $ WarningTxt $2 (getWARNING_PRAGs $1) (map stringLiteralToHsDocWst $ snd $ unLoc $3)) (AnnPragma (mo $1) (mc $4) (fst $ unLoc $3))} | {- empty -} { Nothing } @@ -1362,18 +1362,18 @@ overlap_pragma :: { Maybe (LocatedP OverlapMode) } | {- 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' {% acsI (\cs -> sL1 $1 (StockStrategy (EpAnn (glR $1) [mj AnnStock $1] cs))) } + | 'anyclass' {% acsI (\cs -> sL1 $1 (AnyclassStrategy (EpAnn (glR $1) [mj AnnAnyclass $1] cs))) } + | 'newtype' {% acsI (\cs -> sL1 $1 (NewtypeStrategy (EpAnn (glR $1) [mj AnnNewtype $1] cs))) } deriv_strategy_via :: { LDerivStrategy GhcPs } - : 'via' sigktype {% acsA (\cs -> sLLlA $1 $> (ViaStrategy (XViaStrategyPs (EpAnn (glR $1) [mj AnnVia $1] cs) + : 'via' sigktype {% acsI (\cs -> sLLlA $1 $> (ViaStrategy (XViaStrategyPs (EpAnn (glR $1) [mj AnnVia $1] cs) $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 $ acsI (\cs -> sL1 $1 (StockStrategy (EpAnn (glR $1) [mj AnnStock $1] cs))) } + | 'anyclass' {% fmap Just $ acsI (\cs -> sL1 $1 (AnyclassStrategy (EpAnn (glR $1) [mj AnnAnyclass $1] cs))) } + | 'newtype' {% fmap Just $ acsI (\cs -> sL1 $1 (NewtypeStrategy (EpAnn (glR $1) [mj AnnNewtype $1] cs))) } | deriv_strategy_via { Just $1 } | {- empty -} { Nothing } @@ -1381,12 +1381,12 @@ deriv_standalone_strategy :: { Maybe (LDerivStrategy GhcPs) } opt_injective_info :: { Located ([AddEpAnn], Maybe (LInjectivityAnn GhcPs)) } : {- empty -} { noLoc ([], Nothing) } - | '|' injectivity_cond { sLL $1 (reLoc $>) ([mj AnnVbar $1] + | '|' injectivity_cond { sLL $1 (reLocI $>) ([mj AnnVbar $1] , Just ($2)) } injectivity_cond :: { LInjectivityAnn GhcPs } : tyvarid '->' inj_varids - {% acsA (\cs -> sLL (reLocN $1) $> (InjectivityAnn (EpAnn (glNR $1) [mu AnnRarrow $2] cs) $1 (reverse (unLoc $3)))) } + {% acsI (\cs -> sLL (reLocN $1) $> (InjectivityAnn (EpAnn (glNR $1) [mu AnnRarrow $2] cs) $1 (reverse (unLoc $3)))) } inj_varids :: { Located [LocatedN RdrName] } : inj_varids tyvarid { sLL $1 (reLocN $>) ($2 : unLoc $1) } @@ -1423,7 +1423,7 @@ ty_fam_inst_eqns :: { Located [LTyFamInstEqn GhcPs] } (h:t) -> do h' <- addTrailingSemiA h (gl $2) return (sLL $1 $> (h':t)) } - | ty_fam_inst_eqn { sLLAA $1 $> [$1] } + | ty_fam_inst_eqn { sL1 (reLoc $1) $ [$1] } | {- empty -} { noLoc [] } ty_fam_inst_eqn :: { LTyFamInstEqn GhcPs } @@ -1527,24 +1527,24 @@ opt_kind_sig :: { Located ([AddEpAnn], Maybe (LHsKind GhcPs)) } | '::' kind { sLL $1 (reLoc $>) ([mu AnnDcolon $1], Just $2) } opt_datafam_kind_sig :: { Located ([AddEpAnn], LFamilyResultSig GhcPs) } - : { noLoc ([] , noLocA (NoSig noExtField) )} - | '::' kind { sLL $1 (reLoc $>) ([mu AnnDcolon $1], sLLa $1 (reLoc $>) (KindSig noExtField $2))} + : { noLoc ([] , noLocI (NoSig noExtField) )} + | '::' kind { sLL $1 (reLoc $>) ([mu AnnDcolon $1], sLLi $1 (reLoc $>) (KindSig noExtField $2))} opt_tyfam_kind_sig :: { Located ([AddEpAnn], LFamilyResultSig GhcPs) } - : { noLoc ([] , noLocA (NoSig noExtField) )} - | '::' kind { sLL $1 (reLoc $>) ([mu AnnDcolon $1], sLLa $1 (reLoc $>) (KindSig noExtField $2))} + : { noLoc ([] , noLocI (NoSig noExtField) )} + | '::' kind { sLL $1 (reLoc $>) ([mu AnnDcolon $1], sLLi $1 (reLoc $>) (KindSig noExtField $2))} | '=' tv_bndr {% do { tvb <- fromSpecTyVarBndr $2 - ; return $ sLL $1 (reLoc $>) ([mj AnnEqual $1], sLLa $1 (reLoc $>) (TyVarSig noExtField tvb))} } + ; return $ sLL $1 (reLoc $>) ([mj AnnEqual $1], sLLi $1 (reLoc $>) (TyVarSig noExtField tvb))} } opt_at_kind_inj_sig :: { Located ([AddEpAnn], ( LFamilyResultSig GhcPs , Maybe (LInjectivityAnn GhcPs)))} - : { noLoc ([], (noLocA (NoSig noExtField), Nothing)) } + : { noLoc ([], (noLocI (NoSig noExtField), Nothing)) } | '::' kind { sLL $1 (reLoc $>) ( [mu AnnDcolon $1] - , (sL1a (reLoc $>) (KindSig noExtField $2), Nothing)) } + , (sL1i (reLoc $>) (KindSig noExtField $2), Nothing)) } | '=' tv_bndr_no_braces '|' injectivity_cond {% do { tvb <- fromSpecTyVarBndr $2 - ; return $ sLL $1 (reLoc $>) ([mj AnnEqual $1, mj AnnVbar $3] - , (sLLa $1 (reLoc $2) (TyVarSig noExtField tvb), Just $4))} } + ; return $ sLL $1 (reLocI $>) ([mj AnnEqual $1, mj AnnVbar $3] + , (sLLi $1 (reLoc $2) (TyVarSig noExtField tvb), Just $4))} } -- tycl_hdr parses the header of a class or data type decl, -- which takes the form @@ -1554,7 +1554,7 @@ 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 -> (sLLAA $1 $> (Just (addTrailingDarrowC $1 $2 cs), $3))) } + : context '=>' type {% acs (\cs -> (sLL (reLocI $1) (reLoc $>) (Just (addTrailingDarrowC $1 $2 cs), $3))) } | type { sL1A $1 (Nothing, $1) } datafam_inst_hdr :: { Located (Maybe (LHsContext GhcPs), HsOuterFamEqnTyVarBndrs GhcPs, LHsType GhcPs) } @@ -1571,7 +1571,7 @@ datafam_inst_hdr :: { Located (Maybe (LHsContext GhcPs), HsOuterFamEqnTyVarBndrs ; cs <- getCommentsFor loc ; return (sL loc (Nothing, mkHsOuterExplicit (EpAnn (glR $1) (mu AnnForall $1, mj AnnDot $3) cs) tvbs, $4)) } } - | context '=>' type {% acs (\cs -> (sLLAA $1 $>(Just (addTrailingDarrowC $1 $2 cs), mkHsOuterImplicit, $3))) } + | context '=>' type {% acs (\cs -> (sLL (reLocI $1) (reLoc $>) (Just (addTrailingDarrowC $1 $2 cs), mkHsOuterImplicit, $3))) } | type { sL1A $1 (Nothing, mkHsOuterImplicit, $1) } @@ -1603,7 +1603,7 @@ stand_alone_deriving :: { LDerivDecl GhcPs } role_annot :: { LRoleAnnotDecl GhcPs } role_annot : 'type' 'role' oqtycon maybe_roles - {% mkRoleAnnotDecl (comb3N $1 $4 $3) $3 (reverse (unLoc $4)) + {% mkRoleAnnotDecl (comb3A $1 $4 $3) $3 (reverse (unLoc $4)) [mj AnnType $1,mj AnnRole $2] } -- Reversed! @@ -1638,7 +1638,7 @@ pattern_synonym_decl :: { LHsDecl GhcPs } | 'pattern' pattern_synonym_lhs '<-' pat where_decls {% do { let (name, args, as) = $2 ; mg <- mkPatSynMatchGroup name $5 - ; acsA (\cs -> sLL $1 (reLoc $>) . ValD noExtField $ + ; acsA (\cs -> sLL $1 (reLocI $>) . ValD noExtField $ mkPatSynBind name args $4 (ExplicitBidirectional mg) (EpAnn (glR $1) (as ++ [mj AnnPattern $1,mu AnnLarrow $3]) cs)) }} @@ -1659,9 +1659,9 @@ cvars1 :: { [RecordPatSynField GhcPs] } where_decls :: { LocatedL (OrdList (LHsDecl GhcPs)) } : 'where' '{' decls '}' {% amsrl (sLL $1 $> (snd $ unLoc $3)) - (AnnList (Just $ glR $3) (Just $ moc $2) (Just $ mcc $4) [mj AnnWhere $1] (fst $ unLoc $3)) } + (AnnList (glRM $3) (Just $ moc $2) (Just $ mcc $4) [mj AnnWhere $1] (fst $ unLoc $3)) } | 'where' vocurly decls close {% amsrl (sLL $1 $3 (snd $ unLoc $3)) - (AnnList (Just $ glR $3) Nothing Nothing [mj AnnWhere $1] (fst $ unLoc $3))} + (AnnList (glRM $3) Nothing Nothing [mj AnnWhere $1] (fst $ unLoc $3))} pattern_synonym_sig :: { LSig GhcPs } : 'pattern' con_list '::' sigtype @@ -1798,9 +1798,9 @@ decls :: { Located ([TrailingAnn], OrdList (LHsDecl GhcPs)) } | {- empty -} { noLoc ([],nilOL) } decllist :: { Located (AnnList,Located (OrdList (LHsDecl GhcPs))) } - : '{' decls '}' { sLL $1 $> (AnnList (Just $ glR $2) (Just $ moc $1) (Just $ mcc $3) [] (fst $ unLoc $2) + : '{' decls '}' { sLL $1 $> (AnnList (glRM $2) (Just $ moc $1) (Just $ mcc $3) [] (fst $ unLoc $2) ,sL1 $2 $ snd $ unLoc $2) } - | vocurly decls close { L (gl $2) (AnnList (Just $ glR $2) Nothing Nothing [] (fst $ unLoc $2) + | vocurly decls close { L (gl $2) (AnnList (glRM $2) Nothing Nothing [] (fst $ unLoc $2) ,sL1 $2 $ snd $ unLoc $2) } -- Binding groups other than those of class and instance declarations @@ -1816,7 +1816,7 @@ binds :: { Located (HsLocalBinds GhcPs) } $ HsIPBinds (EpAnn (glR $1) (AnnList (Just$ glR $2) (Just $ moc $1) (Just $ mcc $3) [] []) cs) (IPBinds noExtField (reverse $ unLoc $2)))) } | vocurly dbinds close {% acs (\cs -> (L (gl $2) - $ HsIPBinds (EpAnn (glR $1) (AnnList (Just $ glR $2) Nothing Nothing [] []) cs) (IPBinds noExtField (reverse $ unLoc $2)))) } + $ HsIPBinds (EpAnn (glR $1) (AnnList (glRM $2) Nothing Nothing [] []) cs) (IPBinds noExtField (reverse $ unLoc $2)))) } wherebinds :: { Maybe (Located (HsLocalBinds GhcPs, Maybe EpAnnComments )) } @@ -1850,7 +1850,7 @@ rule :: { LRuleDecl GhcPs } runPV (unECP $6) >>= \ $6 -> acsA (\cs -> (sLLlA $1 $> $ HsRule { rd_ext = (EpAnn (glR $1) ((fstOf3 $3) (mj AnnEqual $5 : (fst $2))) cs, getSTRINGs $1) - , rd_name = L (noAnnSrcSpan $ gl $1) (getSTRING $1) + , rd_name = L (noAnnSrcSpanI $ gl $1) (getSTRING $1) , rd_act = (snd $2) `orElse` AlwaysActive , rd_tyvs = sndOf3 $3, rd_tmvs = thdOf3 $3 , rd_lhs = $4, rd_rhs = $6 })) } @@ -1909,8 +1909,8 @@ rule_vars :: { [LRuleTyTmVar] } | {- empty -} { [] } rule_var :: { LRuleTyTmVar } - : varid { sL1l $1 (RuleTyTmVar noAnn $1 Nothing) } - | '(' varid '::' ctype ')' {% acsA (\cs -> sLL $1 $> (RuleTyTmVar (EpAnn (glR $1) [mop $1,mu AnnDcolon $3,mcp $5] cs) $2 (Just $4))) } + : varid { sL1ln $1 (RuleTyTmVar noAnn $1 Nothing) } + | '(' varid '::' ctype ')' {% acsI (\cs -> sLL $1 $> (RuleTyTmVar (EpAnn (glR $1) [mop $1,mu AnnDcolon $3,mcp $5] cs) $2 (Just $4))) } {- Note [Parsing explicit foralls in Rules] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1963,7 +1963,7 @@ warning :: { OrdList (LWarnDecl GhcPs) } : warning_category namelist strings {% fmap unitOL $ acsA (\cs -> sLL $2 $> (Warning (EpAnn (glR $2) (fst $ unLoc $3) cs) (unLoc $2) - (WarningTxt $1 (noLoc NoSourceText) $ map stringLiteralToHsDocWst $ snd $ unLoc $3))) } + (WarningTxt $1 NoSourceText $ map stringLiteralToHsDocWst $ snd $ unLoc $3))) } deprecations :: { OrdList (LWarnDecl GhcPs) } : deprecations ';' deprecation @@ -1986,7 +1986,7 @@ deprecations :: { OrdList (LWarnDecl GhcPs) } deprecation :: { OrdList (LWarnDecl GhcPs) } : namelist strings {% fmap unitOL $ acsA (\cs -> sLL $1 $> $ (Warning (EpAnn (glR $1) (fst $ unLoc $2) cs) (unLoc $1) - (DeprecatedTxt (noLoc NoSourceText) $ map stringLiteralToHsDocWst $ snd $ unLoc $2))) } + (DeprecatedTxt NoSourceText $ map stringLiteralToHsDocWst $ snd $ unLoc $2))) } strings :: { Located ([AddEpAnn],[Located StringLiteral]) } : STRING { sL1 $1 ([],[L (gl $1) (getStringLiteral $1)]) } @@ -2079,7 +2079,7 @@ 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 -> sLLAA $1 $> $ mkHsImplicitSigType $ + | ctype '::' kind {% acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ mkHsImplicitSigType $ sLLa (reLoc $1) (reLoc $>) $ HsKindSig (EpAnn (glAR $1) [mu AnnDcolon $2] cs) $1 $3) } -- Like ctype, but for types that obey the forall-or-nothing rule. @@ -2120,7 +2120,7 @@ forall_telescope :: { Located (HsForAllTelescope GhcPs) } -- A ktype is a ctype, possibly with a kind annotation ktype :: { LHsType GhcPs } : ctype { $1 } - | ctype '::' kind {% acsA (\cs -> sLLAA $1 $> $ HsKindSig (EpAnn (glAR $1) [mu AnnDcolon $2] cs) $1 $3) } + | ctype '::' kind {% acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ HsKindSig (EpAnn (glAR $1) [mu AnnDcolon $2] cs) $1 $3) } -- A ctype is a for-all type ctype :: { LHsType GhcPs } @@ -2128,12 +2128,12 @@ ctype :: { LHsType GhcPs } HsForAllTy { hst_tele = unLoc $1 , hst_xforall = noExtField , hst_body = $2 } } - | context '=>' ctype {% acsA (\cs -> (sLL (reLoc $1) (reLoc $>) $ + | context '=>' ctype {% acsA (\cs -> (sLL (reLocI $1) (reLoc $>) $ HsQualTy { hst_ctxt = addTrailingDarrowC $1 $2 cs , hst_xqual = NoExtField , hst_body = $3 })) } - | ipvar '::' ctype {% acsA (\cs -> sLL $1 (reLoc $>) (HsIParamTy (EpAnn (glR $1) [mu AnnDcolon $2] cs) (reLocA $1) $3)) } + | ipvar '::' ctype {% acsA (\cs -> sLL $1 (reLoc $>) (HsIParamTy (EpAnn (glR $1) [mu AnnDcolon $2] cs) (reLocE $1) $3)) } | type { $1 } ---------------------- @@ -2190,7 +2190,7 @@ infixtype :: { forall b. DisambTD b => PV (LocatedA b) } | ftype tyop infixtype { $1 >>= \ $1 -> $3 >>= \ $3 -> do { let (op, prom) = $2 - ; when (looksLikeMult $1 op $3) $ hintLinear (getLocA op) + ; when (looksLikeMult $1 op $3) $ hintLinear (getLocN op) ; mkHsOpTyPV prom $1 op $3 } } | unpackedness infixtype { $2 >>= \ $2 -> mkUnpackednessPV $1 $2 } @@ -2210,10 +2210,10 @@ tyarg :: { LHsType GhcPs } tyop :: { (LocatedN RdrName, PromotionFlag) } : qtyconop { ($1, NotPromoted) } | tyvarop { ($1, NotPromoted) } - | SIMPLEQUOTE qconop {% do { op <- amsrn (sLL $1 (reLoc $>) (unLoc $2)) + | SIMPLEQUOTE qconop {% do { op <- amsrn (sLL $1 (reLocN $>) (unLoc $2)) (NameAnnQuote (glAA $1) (gl $2) []) ; return (op, IsPromoted) } } - | SIMPLEQUOTE varop {% do { op <- amsrn (sLL $1 (reLoc $>) (unLoc $2)) + | SIMPLEQUOTE varop {% do { op <- amsrn (sLL $1 (reLocN $>) (unLoc $2)) (NameAnnQuote (glAA $1) (gl $2) []) ; return (op, IsPromoted) } } @@ -2228,7 +2228,7 @@ atype :: { LHsType GhcPs } | PREFIX_TILDE atype {% acsA (\cs -> sLLlA $1 $> (mkBangTy (EpAnn (glR $1) [mj AnnTilde $1] cs) SrcLazy $2)) } | PREFIX_BANG atype {% acsA (\cs -> sLLlA $1 $> (mkBangTy (EpAnn (glR $1) [mj AnnBang $1] cs) SrcStrict $2)) } - | '{' fielddecls '}' {% do { decls <- acsA (\cs -> (sLL $1 $> $ HsRecTy (EpAnn (glR $1) (AnnList (Just $ listAsAnchor $2) (Just $ moc $1) (Just $ mcc $3) [] []) cs) $2)) + | '{' fielddecls '}' {% do { decls <- acsA (\cs -> (sLL $1 $> $ HsRecTy (EpAnn (glR $1) (AnnList (listAsAnchorM $2) (Just $ moc $1) (Just $ mcc $3) [] []) cs) $2)) ; checkRecordSyntax decls }} -- Constructor sigs only | '(' ')' {% acsA (\cs -> sLL $1 $> $ HsTupleTy (EpAnn (glR $1) (AnnParen AnnParens (glAA $1) (glAA $2)) cs) @@ -2422,8 +2422,8 @@ constrs1 :: { Located [LConDecl GhcPs] } constr :: { LConDecl GhcPs } : forall context '=>' constr_stuff {% acsA (\cs -> let (con,details) = unLoc $4 in - (L (comb4 $1 (reLoc $2) $3 $4) (mkConDeclH98 - (EpAnn (spanAsAnchor (comb4 $1 (reLoc $2) $3 $4)) + (L (comb4 $1 (reLocI $2) $3 $4) (mkConDeclH98 + (EpAnn (spanAsAnchor (comb4 $1 (reLocI $2) $3 $4)) (mu AnnDarrow $3:(fst $ unLoc $1)) cs) con (snd $ unLoc $1) @@ -2470,23 +2470,23 @@ maybe_derivings :: { Located (HsDeriving GhcPs) } -- A list of one or more deriving clauses at the end of a datatype derivings :: { Located (HsDeriving GhcPs) } - : derivings deriving { sLL $1 (reLoc $>) ($2 : unLoc $1) } -- AZ: order? - | deriving { sL1 (reLoc $>) [$1] } + : derivings deriving { sLL $1 (reLocI $>) ($2 : unLoc $1) } -- AZ: order? + | deriving { sL1 (reLocI $>) [$1] } -- The outer Located is just to allow the caller to -- know the rightmost extremity of the 'deriving' clause deriving :: { LHsDerivingClause GhcPs } : 'deriving' deriv_clause_types - {% let { full_loc = comb2A $1 $> } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) Nothing $2) } + {% let { full_loc = comb2 $1 (reLocI $>) } + in acsI (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) Nothing $2) } | 'deriving' deriv_strategy_no_via deriv_clause_types - {% let { full_loc = comb2A $1 $> } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) (Just $2) $3) } + {% let { full_loc = comb2 $1 (reLocI $>) } + in acsI (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) (Just $2) $3) } | 'deriving' deriv_clause_types deriv_strategy_via - {% let { full_loc = comb2 $1 (reLoc $>) } - in acsA (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) (Just $3) $2) } + {% let { full_loc = comb2 $1 (reLocI $>) } + in acsI (\cs -> L full_loc $ HsDerivingClause (EpAnn (glR $1) [mj AnnDeriving $1] cs) (Just $3) $2) } deriv_clause_types :: { LDerivClauseTys GhcPs } : qtycon { let { tc = sL1 (reLocL $1) $ mkHsImplicitSigType $ @@ -2526,7 +2526,7 @@ decl_no_th :: { LHsDecl GhcPs } : sigdecl { $1 } | infixexp opt_sig rhs {% runPV (unECP $1) >>= \ $1 -> - do { let { l = comb2Al $1 $> } + do { let { l = comb2 (reLoc $1) $> } ; r <- checkValDef l $1 $2 $3; -- Depending upon what the pattern looks like we might get either -- a FunBind or PatBind back from checkValDef. See Note @@ -2568,7 +2568,7 @@ sigdecl :: { LHsDecl GhcPs } infixexp '::' sigtype {% do { $1 <- runPV (unECP $1) ; v <- checkValSigLhs $1 - ; acsA (\cs -> (sLLAl $1 (reLoc $>) $ SigD noExtField $ + ; acsA (\cs -> (sLL (reLoc $1) (reLoc $>) $ SigD noExtField $ TypeSig (EpAnn (glAR $1) (AnnSig (mu AnnDcolon $2) []) cs) [v] (mkHsWildCardBndrs $3)))} } | var ',' sig_vars '::' sigtype @@ -2613,7 +2613,7 @@ sigdecl :: { LHsDecl GhcPs } | '{-# SCC' qvar STRING '#-}' {% do { scc <- getSCC $3 ; let str_lit = StringLiteral (getSTRINGs $3) scc Nothing - ; acsA (\cs -> sLL $1 $> (SigD noExtField (SCCFunSig ((EpAnn (glR $1) [mo $1, mc $4] cs), (getSCC_PRAGs $1)) $2 (Just ( sL1a $3 str_lit))))) }} + ; acsA (\cs -> sLL $1 $> (SigD noExtField (SCCFunSig ((EpAnn (glR $1) [mo $1, mc $4] cs), (getSCC_PRAGs $1)) $2 (Just ( sL1i $3 str_lit))))) }} | '{-# SPECIALISE' activation qvar '::' sigtypes1 '#-}' {% acsA (\cs -> @@ -2653,38 +2653,38 @@ quasiquote :: { Located (HsUntypedSplice GhcPs) } : TH_QUASIQUOTE { let { loc = getLoc $1 ; ITquasiQuote (quoter, quote, quoteSpan) = unLoc $1 ; quoterId = mkUnqual varName quoter } - in sL1 $1 (HsQuasiQuote noExtField quoterId (L (noAnnSrcSpan (mkSrcSpanPs quoteSpan)) quote)) } + in sL1 $1 (HsQuasiQuote noExtField quoterId (L (noAnnSrcSpanI (mkSrcSpanPs quoteSpan)) quote)) } | TH_QQUASIQUOTE { let { loc = getLoc $1 ; ITqQuasiQuote (qual, quoter, quote, quoteSpan) = unLoc $1 ; quoterId = mkQual varName (qual, quoter) } - in sL1 $1 (HsQuasiQuote noExtField quoterId (L (noAnnSrcSpan (mkSrcSpanPs quoteSpan)) quote)) } + in sL1 $1 (HsQuasiQuote noExtField quoterId (L (noAnnSrcSpanI (mkSrcSpanPs quoteSpan)) quote)) } exp :: { ECP } : infixexp '::' ctype { ECP $ unECP $1 >>= \ $1 -> rejectPragmaPV $1 >> - mkHsTySigPV (noAnnSrcSpan $ comb2Al $1 (reLoc $>)) $1 $3 + mkHsTySigPV (noAnnSrcSpan $ comb2 (reLoc $1) (reLoc $>)) $1 $3 [(mu AnnDcolon $2)] } | infixexp '-<' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLLAA $1 $> $ HsCmdArrApp (EpAnn (glAR $1) (mu Annlarrowtail $2) cs) $1 $3 + acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ HsCmdArrApp (EpAnn (glAR $1) (mu Annlarrowtail $2) cs) $1 $3 HsFirstOrderApp True) } | infixexp '>-' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLLAA $1 $> $ HsCmdArrApp (EpAnn (glAR $1) (mu Annrarrowtail $2) cs) $3 $1 + acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ HsCmdArrApp (EpAnn (glAR $1) (mu Annrarrowtail $2) cs) $3 $1 HsFirstOrderApp False) } | infixexp '-<<' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLLAA $1 $> $ HsCmdArrApp (EpAnn (glAR $1) (mu AnnLarrowtail $2) cs) $1 $3 + acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ HsCmdArrApp (EpAnn (glAR $1) (mu AnnLarrowtail $2) cs) $1 $3 HsHigherOrderApp True) } | infixexp '>>-' exp {% runPV (unECP $1) >>= \ $1 -> runPV (unECP $3) >>= \ $3 -> fmap ecpFromCmd $ - acsA (\cs -> sLLAA $1 $> $ HsCmdArrApp (EpAnn (glAR $1) (mu AnnRarrowtail $2) cs) $3 $1 + acsA (\cs -> sLL (reLoc $1) (reLoc $>) $ HsCmdArrApp (EpAnn (glAR $1) (mu AnnRarrowtail $2) cs) $3 $1 HsHigherOrderApp False) } -- See Note [%shift: exp -> infixexp] | infixexp %shift { $1 } @@ -2824,8 +2824,8 @@ aexp :: { ECP } { ECP $ unECP $4 >>= \ $4 -> mkHsLamPV (comb2 $1 (reLoc $>)) (\cs -> mkMatchGroup FromSource - (reLocA $ sLLlA $1 $> - [reLocA $ sLLlA $1 $> + (reLocE $ sLL $1 (reLoc $>) + [reLocA $ sLL $1 (reLoc $>) $ Match { m_ext = EpAnn (glR $1) [mj AnnLam $1] cs , m_ctxt = LambdaExpr , m_pats = $2 @@ -2835,10 +2835,10 @@ aexp :: { ECP } mkHsLetPV (comb2A $1 $>) (hsTok $1) (unLoc $2) (hsTok $3) $4 } | '\\' 'lcase' altslist(pats1) { ECP $ $3 >>= \ $3 -> - mkHsLamCasePV (comb2 $1 (reLoc $>)) LamCase $3 [mj AnnLam $1,mj AnnCase $2] } + mkHsLamCasePV (comb2 $1 (reLocI $>)) LamCase $3 [mj AnnLam $1,mj AnnCase $2] } | '\\' 'lcases' altslist(apats) { ECP $ $3 >>= \ $3 -> - mkHsLamCasePV (comb2 $1 (reLoc $>)) LamCases $3 [mj AnnLam $1,mj AnnCases $2] } + mkHsLamCasePV (comb2 $1 (reLocI $>)) LamCases $3 [mj AnnLam $1,mj AnnCases $2] } | 'if' exp optSemi 'then' exp optSemi 'else' exp {% runPV (unECP $2) >>= \ ($2 :: LHsExpr GhcPs) -> return $ ECP $ @@ -2859,24 +2859,24 @@ aexp :: { ECP } | 'case' exp 'of' altslist(pats1) {% runPV (unECP $2) >>= \ ($2 :: LHsExpr GhcPs) -> return $ ECP $ $4 >>= \ $4 -> - mkHsCasePV (comb3 $1 $3 (reLoc $4)) $2 $4 + mkHsCasePV (comb3 $1 $3 (reLocI $4)) $2 $4 (EpAnnHsCase (glAA $1) (glAA $3) []) } -- QualifiedDo. | DO stmtlist {% do hintQualifiedDo $1 return $ ECP $ $2 >>= \ $2 -> - mkHsDoPV (comb2A $1 $2) + mkHsDoPV (comb2 $1 (reLocI $2)) (fmap mkModuleNameFS (getDO $1)) $2 - (AnnList (Just $ glAR $2) Nothing Nothing [mj AnnDo $1] []) } + (AnnList (Just $ glIR $2) Nothing Nothing [mj AnnDo $1] []) } | MDO stmtlist {% hintQualifiedDo $1 >> runPV $2 >>= \ $2 -> fmap ecpFromExp $ - acsA (\cs -> L (comb2A $1 $2) + acsA (\cs -> L (comb2 $1 (reLocI $2)) (mkHsDoAnns (MDoExpr $ fmap mkModuleNameFS (getMDO $1)) $2 - (EpAnn (glR $1) (AnnList (Just $ glAR $2) Nothing Nothing [mj AnnMdo $1] []) cs) )) } + (EpAnn (glR $1) (AnnList (Just $ glIR $2) Nothing Nothing [mj AnnMdo $1] []) cs) )) } | 'proc' aexp '->' exp {% (checkPattern <=< runPV) (unECP $2) >>= \ p -> runPV (unECP $4) >>= \ $4@cmd -> @@ -2898,8 +2898,8 @@ aexp1 :: { ECP } | aexp1 TIGHT_INFIX_PROJ field {% runPV (unECP $1) >>= \ $1 -> fmap ecpFromExp $ acsa (\cs -> - let fl = sLLa $2 (reLoc $>) (DotFieldOcc ((EpAnn (glR $2) (AnnFieldLabel (Just $ glAA $2)) emptyComments)) $3) in - mkRdrGetField (noAnnSrcSpan $ comb2 (reLoc $1) (reLoc $>)) $1 fl (EpAnn (glAR $1) NoEpAnns cs)) } + let fl = sLLi $2 (reLocN $>) (DotFieldOcc ((EpAnn (glR $2) (AnnFieldLabel (Just $ glAA $2)) emptyComments)) $3) in + mkRdrGetField (noAnnSrcSpan $ comb2 (reLoc $1) (reLocN $>)) $1 fl (EpAnn (glAR $1) NoEpAnns cs)) } | aexp2 { $1 } @@ -2977,15 +2977,15 @@ aexp2 :: { ECP } -- arrow notation extension | '(|' aexp cmdargs '|)' {% runPV (unECP $2) >>= \ $2 -> fmap ecpFromCmd $ - acsA (\cs -> sLL $1 $> $ HsCmdArrForm (EpAnn (glR $1) (AnnList (Just $ glR $1) (Just $ mu AnnOpenB $1) (Just $ mu AnnCloseB $4) [] []) cs) $2 Prefix + acsA (\cs -> sLL $1 $> $ HsCmdArrForm (EpAnn (glR $1) (AnnList (glRM $1) (Just $ mu AnnOpenB $1) (Just $ mu AnnCloseB $4) [] []) cs) $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 (reLoc $>) ((sLLa $2 (reLoc $>) $ DotFieldOcc (EpAnn (glR $1) (AnnFieldLabel (Just $ glAA $2)) cs) $3) `NE.cons` unLoc $1)) } - | PREFIX_PROJ field {% acs (\cs -> sLL $1 (reLoc $>) ((sLLa $1 (reLoc $>) $ DotFieldOcc (EpAnn (glR $1) (AnnFieldLabel (Just $ glAA $1)) cs) $2) :| [])) } + {% acs (\cs -> sLL $1 (reLocN $>) ((sLLi $2 (reLocN $>) $ DotFieldOcc (EpAnn (glR $1) (AnnFieldLabel (Just $ glAA $2)) cs) $3) `NE.cons` unLoc $1)) } + | PREFIX_PROJ field {% acs (\cs -> sLL $1 (reLocN $>) ((sLLi $1 (reLocN $>) $ DotFieldOcc (EpAnn (glR $1) (AnnFieldLabel (Just $ glAA $1)) cs) $2) :| [])) } splice_exp :: { LHsExpr GhcPs } : splice_untyped { fmap (HsUntypedSplice noAnn) (reLocA $1) } @@ -3045,12 +3045,12 @@ texp :: { ECP } runPV (rejectPragmaPV $1) >> runPV $2 >>= \ $2 -> return $ ecpFromExp $ - reLocA $ sLL (reLoc $1) (reLocN $>) $ SectionL noAnn $1 (n2l $2) } + reLocA $ sLL (reLoc $1) (reLocN $>) $ SectionL noAnn $1 (la2la $2) } | qopm infixexp { ECP $ superInfixOp $ unECP $2 >>= \ $2 -> $1 >>= \ $1 -> - pvA $ mkHsSectionR_PV (comb2 (reLocN $1) (reLoc $>)) (n2l $1) $2 } + pvA $ mkHsSectionR_PV (comb2 (reLocN $1) (reLoc $>)) (la2la $1) $2 } -- View patterns get parenthesized above | exp '->' texp { ECP $ @@ -3243,12 +3243,12 @@ guardquals1 :: { Located [LStmt GhcPs (LHsExpr GhcPs)] } altslist(PATS) :: { forall b. DisambECP b => PV (LocatedL [LMatch GhcPs (LocatedA b)]) } : '{' alts(PATS) '}' { $2 >>= \ $2 -> amsrl (sLL $1 $> (reverse (snd $ unLoc $2))) - (AnnList (Just $ glR $2) (Just $ moc $1) (Just $ mcc $3) (fst $ unLoc $2) []) } + (AnnList (glRM $2) (Just $ moc $1) (Just $ mcc $3) (fst $ unLoc $2) []) } | vocurly alts(PATS) close { $2 >>= \ $2 -> amsrl (L (getLoc $2) (reverse (snd $ unLoc $2))) - (AnnList (Just $ glR $2) Nothing Nothing (fst $ unLoc $2) []) } + (AnnList (glRM $2) Nothing Nothing (fst $ unLoc $2) []) } | '{' '}' { amsrl (sLL $1 $> []) (AnnList Nothing (Just $ moc $1) (Just $ mcc $2) [] []) } - | vocurly close { return $ noLocA [] } + | vocurly close { return $ noLocI [] } alts(PATS) :: { forall b. DisambECP b => PV (Located ([AddEpAnn],[LMatch GhcPs (LocatedA b)])) } : alts1(PATS) { $1 >>= \ $1 -> return $ @@ -3343,9 +3343,9 @@ 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 (Just $ stmtsAnchor $2) (Just $ moc $1) (Just $ mcc $3) (fromOL $ fst $ unLoc $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 - (L (stmtsLoc $2) (reverse $ snd $ unLoc $2)) (AnnList (Just $ stmtsAnchor $2) Nothing Nothing (fromOL $ fst $ unLoc $2) []) } + (L (stmtsLoc $2) (reverse $ snd $ unLoc $2)) (AnnList (stmtsAnchor $2) Nothing Nothing (fromOL $ fst $ unLoc $2) []) } -- do { ;; s ; s ; ; s ;; } -- The last Stmt should be an expression, but that's hard to enforce @@ -3387,7 +3387,7 @@ 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 (reLoc $>) $ mkRecStmt + acsA (\cs -> (sLL $1 (reLocI $>) $ mkRecStmt (EpAnn (glR $1) (hsDoAnn $1 $2 AnnRec) cs) $2)) } @@ -3419,13 +3419,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 (reLocN $1) (reLoc $>) $ HsFieldBind (EpAnn (glNR $1) [mj AnnEqual $2] cs) (sL1l $1 $ mkFieldOcc $1) $3 False) } + fmap Left $ acsA (\cs -> sLL (reLocN $1) (reLoc $>) $ HsFieldBind (EpAnn (glNR $1) [mj AnnEqual $2] cs) (reLocA $ sL1 (reLoc $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 -> sL1a (reLocN $1) $ HsFieldBind (EpAnn (glNR $1) [] cs) (sL1l $1 $ mkFieldOcc $1) rhs True) } + fmap Left $ acsa (\cs -> sL1a (reLocN $1) $ HsFieldBind (EpAnn (glNR $1) [] cs) (reLocA $ sL1 (reLoc $1) $ mkFieldOcc $1) rhs True) } -- In the punning case, use a place-holder -- The renamer fills in the final value @@ -3433,15 +3433,15 @@ fbind :: { forall b. DisambECP b => PV (Fbind b) } -- AZ: need to pull out the let block into a helper | field TIGHT_INFIX_PROJ fieldToUpdate '=' texp { do - let top = sL1 (la2la $1) $ DotFieldOcc noAnn $1 + let top = sL1 (n2l $1) $ DotFieldOcc noAnn $1 ((L lf (DotFieldOcc _ f)):t) = reverse (unLoc $3) - lf' = comb2 $2 (reLoc $ L lf ()) - fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t + lf' = comb2 $2 (reLocI $ L lf ()) + fields = top : L (noAnnSrcSpanI lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t final = last fields - l = comb2 (reLoc $1) $3 + l = comb2 (reLocN $1) $3 isPun = False $5 <- unECP $5 - fmap Right $ mkHsProjUpdatePV (comb2 (reLoc $1) (reLoc $5)) (L l fields) $5 isPun + fmap Right $ mkHsProjUpdatePV (comb2 (reLocN $1) (reLoc $5)) (L l fields) $5 isPun [mj AnnEqual $4] } @@ -3449,24 +3449,24 @@ fbind :: { forall b. DisambECP b => PV (Fbind b) } -- AZ: need to pull out the let block into a helper | field TIGHT_INFIX_PROJ fieldToUpdate { do - let top = sL1 (la2la $1) $ DotFieldOcc noAnn $1 + let top = sL1 (n2l $1) $ DotFieldOcc noAnn $1 ((L lf (DotFieldOcc _ f)):t) = reverse (unLoc $3) - lf' = comb2 $2 (reLoc $ L lf ()) - fields = top : L (noAnnSrcSpan lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t + lf' = comb2 $2 (reLocI $ L lf ()) + fields = top : L (noAnnSrcSpanI lf') (DotFieldOcc (EpAnn (spanAsAnchor lf') (AnnFieldLabel (Just $ glAA $2)) emptyComments) f) : t final = last fields - l = comb2 (reLoc $1) $3 + l = comb2 (reLocN $1) $3 isPun = True - var <- mkHsVarPV (L (noAnnSrcSpan $ getLocA final) (mkRdrUnqual . mkVarOccFS . field_label . unLoc . dfoLabel . unLoc $ final)) + var <- mkHsVarPV (L (noAnnSrcSpanN $ getLocI final) (mkRdrUnqual . mkVarOccFS . field_label . unLoc . dfoLabel . unLoc $ final)) fmap Right $ mkHsProjUpdatePV l (L l fields) var isPun [] } 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 (reLoc $>) ((sLLa $2 (reLoc $>) (DotFieldOcc (EpAnn (glR $2) (AnnFieldLabel $ Just $ glAA $2) cs) $3)) : unLoc $1)) } - | field {% getCommentsFor (getLocA $1) >>= \cs -> - return (sL1 (reLoc $1) [sL1a (reLoc $1) (DotFieldOcc (EpAnn (glNR $1) (AnnFieldLabel Nothing) cs) $1)]) } + : fieldToUpdate TIGHT_INFIX_PROJ field {% getCommentsFor (getLocN $3) >>= \cs -> + return (sLL $1 (reLocN $>) ((sLLi $2 (reLocN $>) (DotFieldOcc (EpAnn (glR $2) (AnnFieldLabel $ Just $ glAA $2) cs) $3)) : unLoc $1)) } + | field {% getCommentsFor (getLocN $1) >>= \cs -> + return (sL1 (reLocN $1) [sL1i (reLocN $1) (DotFieldOcc (EpAnn (glNR $1) (AnnFieldLabel Nothing) cs) $1)]) } ----------------------------------------------------------------------------- -- Implicit Parameter Bindings @@ -3487,7 +3487,7 @@ dbinds :: { Located [LIPBind GhcPs] } -- reversed dbind :: { LIPBind GhcPs } dbind : ipvar '=' exp {% runPV (unECP $3) >>= \ $3 -> - acsA (\cs -> sLLlA $1 $> (IPBind (EpAnn (glR $1) [mj AnnEqual $2] cs) (reLocA $1) $3)) } + acsA (\cs -> sLLlA $1 $> (IPBind (EpAnn (glR $1) [mj AnnEqual $2] cs) (reLocE $1) $3)) } ipvar :: { Located HsIPName } : IPDUPVARID { sL1 $1 (HsIPName (getIPDUPVARID $1)) } @@ -3503,17 +3503,17 @@ overloaded_label :: { Located (SourceText, FastString) } name_boolformula_opt :: { LBooleanFormula (LocatedN RdrName) } : name_boolformula { $1 } - | {- empty -} { noLocA mkTrue } + | {- empty -} { noLocI mkTrue } name_boolformula :: { LBooleanFormula (LocatedN RdrName) } : name_boolformula_and { $1 } | name_boolformula_and '|' name_boolformula {% do { h <- addTrailingVbarL $1 (gl $2) - ; return (reLocA $ sLLAA $1 $> (Or [h,$3])) } } + ; return (reLocE $ sLLAA $1 $> (Or [h,$3])) } } name_boolformula_and :: { LBooleanFormula (LocatedN RdrName) } : name_boolformula_and_list - { reLocA $ sLLAA (head $1) (last $1) (And ($1)) } + { reLocE $ sLLAA (head $1) (last $1) (And ($1)) } name_boolformula_and_list :: { [LBooleanFormula (LocatedN RdrName)] } : name_boolformula_atom { [$1] } @@ -3524,7 +3524,7 @@ name_boolformula_and_list :: { [LBooleanFormula (LocatedN RdrName)] } name_boolformula_atom :: { LBooleanFormula (LocatedN RdrName) } : '(' name_boolformula ')' {% amsrl (sLL $1 $> (Parens $2)) (AnnList Nothing (Just (mop $1)) (Just (mcp $3)) [] []) } - | name_var { reLocA $ sL1N $1 (Var $1) } + | name_var { reLocE $ sL1N $1 (Var $1) } namelist :: { Located [LocatedN RdrName] } namelist : name_var { sL1N $1 [$1] } @@ -4011,26 +4011,22 @@ comb2 :: Located a -> Located b -> SrcSpan comb2 a b = a `seq` b `seq` combineLocs a b -- Utilities for combining source spans -comb2A :: Located a -> LocatedAn t b -> SrcSpan +comb2A :: (Monoid t) => Located a -> LocatedAnS t b -> SrcSpan comb2A a b = a `seq` b `seq` combineLocs a (reLoc b) comb2N :: Located a -> LocatedN b -> SrcSpan comb2N a b = a `seq` b `seq` combineLocs a (reLocN b) comb2Al :: LocatedAn t a -> Located b -> SrcSpan -comb2Al a b = a `seq` b `seq` combineLocs (reLoc a) b +comb2Al a b = a `seq` b `seq` combineLocs (reLocI a) b comb3 :: Located a -> Located b -> Located c -> SrcSpan comb3 a b c = a `seq` b `seq` c `seq` combineSrcSpans (getLoc a) (combineSrcSpans (getLoc b) (getLoc c)) -comb3A :: Located a -> Located b -> LocatedAn t c -> SrcSpan +comb3A :: Located a -> Located b -> LocatedN c -> SrcSpan comb3A a b c = a `seq` b `seq` c `seq` - combineSrcSpans (getLoc a) (combineSrcSpans (getLoc b) (getLocA c)) - -comb3N :: Located a -> Located b -> LocatedN c -> SrcSpan -comb3N a b c = a `seq` b `seq` c `seq` - combineSrcSpans (getLoc a) (combineSrcSpans (getLoc b) (getLocA c)) + combineSrcSpans (getLoc a) (combineSrcSpans (getLoc b) (getLocN c)) comb4 :: Located a -> Located b -> Located c -> Located d -> SrcSpan comb4 a b c d = a `seq` b `seq` c `seq` d `seq` @@ -4059,49 +4055,75 @@ sL1 :: GenLocated l a -> b -> GenLocated l b sL1 x = sL (getLoc x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1A #-} -sL1A :: LocatedAn t a -> b -> Located b +-- sL1A :: LocatedAn t a -> b -> Located b +sL1A :: LocatedAnS t a -> b -> Located b sL1A x = sL (getLocA x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1N #-} sL1N :: LocatedN a -> b -> Located b -sL1N x = sL (getLocA x) -- #define sL1 sL (getLoc $1) +sL1N x = sL (getLocN x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1a #-} -sL1a :: Located a -> b -> LocatedAn t b +-- sL1a :: Located a -> b -> LocatedAn t b +sL1a :: (Monoid t) => Located a -> b -> LocatedAnS t b sL1a x = sL (noAnnSrcSpan $ getLoc x) -- #define sL1 sL (getLoc $1) +{-# INLINE sL1i #-} +sL1i :: Located a -> b -> LocatedAn t b +sL1i x = sL (noAnnSrcSpanI $ getLoc x) -- #define sL1 sL (getLoc $1) + + {-# INLINE sL1l #-} sL1l :: LocatedAn t a -> b -> LocatedAn u b -sL1l x = sL (l2l $ getLoc x) -- #define sL1 sL (getLoc $1) +sL1l x = sL (l2li $ getLoc x) -- #define sL1 sL (getLoc $1) + +{-# INLINE sL1ln #-} +sL1ln :: LocatedN a -> b -> LocatedAn u b +sL1ln x = sL (noAnnSrcSpanI $ getLocN x) -- #define sL1 sL (getLoc $1) {-# INLINE sL1n #-} sL1n :: Located a -> b -> LocatedN b -sL1n x = L (noAnnSrcSpan $ getLoc x) -- #define sL1 sL (getLoc $1) +sL1n x = L (noAnnSrcSpanN $ getLoc x) -- #define sL1 sL (getLoc $1) {-# INLINE sLL #-} sLL :: Located a -> Located b -> c -> Located c sLL x y = sL (comb2 x y) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLa #-} -sLLa :: Located a -> Located b -> c -> LocatedAn t c +-- sLLa :: Located a -> Located b -> c -> LocatedAn t c +sLLa :: (Monoid t) => Located a -> Located b -> c -> LocatedAnS t c sLLa x y = sL (noAnnSrcSpan $ comb2 x y) -- #define LL sL (comb2 $1 $>) +{-# INLINE sLLi #-} +sLLi :: Located a -> Located b -> c -> LocatedAn t c +sLLi x y = sL (noAnnSrcSpanI $ comb2 x y) -- #define LL sL (comb2 $1 $>) + {-# INLINE sLLlA #-} -sLLlA :: Located a -> LocatedAn t b -> c -> Located c +-- sLLlA :: Located a -> LocatedAn t b -> c -> Located c +sLLlA :: (Monoid t) => Located a -> LocatedAnS t b -> c -> Located c sLLlA x y = sL (comb2A x y) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLAl #-} -sLLAl :: LocatedAn t a -> Located b -> c -> Located c -sLLAl x y = sL (comb2A y x) -- #define LL sL (comb2 $1 $>) +sLLAl :: (Monoid t) => LocatedAnS t a -> Located b -> c -> Located c +sLLAl x y = sL (comb2 y (reLoc x)) -- #define LL sL (comb2 $1 $>) + +{-# INLINE sLLIl #-} +sLLIl :: LocatedAn t a -> Located b -> c -> Located c +sLLIl x y = sL (comb2 y (reLocI x)) -- #define LL sL (comb2 $1 $>) {-# INLINE sLLAsl #-} -sLLAsl :: [LocatedAn t a] -> Located b -> c -> Located c +sLLAsl :: (Monoid t) => [LocatedAnS t a] -> Located b -> c -> Located c sLLAsl [] = sL1 sLLAsl (x:_) = sLLAl x +{-# INLINE sLLIsl #-} +sLLIsl :: [LocatedAn t a] -> Located b -> c -> Located c +sLLIsl [] = sL1 +sLLIsl (x:_) = sLLIl x + {-# INLINE sLLAA #-} sLLAA :: LocatedAn t a -> LocatedAn u b -> c -> Located c -sLLAA x y = sL (comb2 (reLoc y) (reLoc x)) -- #define LL sL (comb2 $1 $>) +sLLAA x y = sL (comb2 (reLocI y) (reLocI x)) -- #define LL sL (comb2 $1 $>) {- Note [Adding location info] @@ -4161,7 +4183,7 @@ looksLikeMult ty1 l_op ty2 | Unqual op_name <- unLoc l_op , occNameFS op_name == fsLit "%" , Strict.Just ty1_pos <- getBufSpan (getLocA ty1) - , Strict.Just pct_pos <- getBufSpan (getLocA l_op) + , Strict.Just pct_pos <- getBufSpan (getLocN l_op) , Strict.Just ty2_pos <- getBufSpan (getLocA ty2) , bufSpanEnd ty1_pos /= bufSpanStart pct_pos , bufSpanEnd pct_pos == bufSpanStart ty2_pos @@ -4253,32 +4275,42 @@ toUnicode t = if isUnicode t then UnicodeSyntax else NormalSyntax gl :: GenLocated l a -> l gl = getLoc -glA :: LocatedAn t a -> SrcSpan +glA :: LocatedAnS t a -> SrcSpan glA = getLocA +glI :: LocatedAn t a -> SrcSpan +glI = getLocI + glN :: LocatedN a -> SrcSpan -glN = getLocA +glN = getLocN glR :: Located a -> Anchor -glR la = Anchor (realSrcSpan $ getLoc la) UnchangedAnchor +glR la = spanAsAnchor$ getLoc la + +glRM :: Located a -> Maybe Anchor +glRM (L (RealSrcSpan la mb) _) = Just $ EpaSpan (RealSrcSpan la mb) +glRM _ = Nothing glAA :: Located a -> EpaLocation glAA = srcSpan2e . getLoc glRR :: Located a -> RealSrcSpan -glRR = realSrcSpan . getLoc +glRR = realSrcSpan "glRR" . getLoc -glAR :: LocatedAn t a -> Anchor -glAR la = Anchor (realSrcSpan $ getLocA la) UnchangedAnchor +glAR :: LocatedAnS t a -> Anchor +glAR la = spanAsAnchor $ getLocA la + +glIR :: LocatedAn t a -> Anchor +glIR la = spanAsAnchor $ getLocI la glNR :: LocatedN a -> Anchor -glNR ln = Anchor (realSrcSpan $ getLocA ln) UnchangedAnchor +glNR ln = spanAsAnchor $ getLocN ln glNRR :: LocatedN a -> EpaLocation -glNRR = srcSpan2e . getLocA +glNRR = srcSpan2e . getLocN anc :: RealSrcSpan -> Anchor -anc r = Anchor r UnchangedAnchor +anc r = EpaSpan (RealSrcSpan r Strict.Nothing) acs :: MonadP m => (EpAnnComments -> Located a) -> m (Located a) acs a = do @@ -4298,16 +4330,20 @@ acsFinal a = do Strict.Just (pos `Strict.And` gap) -> Just (pos,gap) return (a (cs Semi.<> csf) ce) - -acsa :: MonadP m => (EpAnnComments -> LocatedAn t a) -> m (LocatedAn t a) +-- acsa :: MonadP m => (EpAnnComments -> LocatedAn t a) -> m (LocatedAn t a) +acsa :: (Monoid t, MonadP m) => (EpAnnComments -> LocatedAnS t a) -> m (LocatedAnS t a) acsa a = do let (L l _) = a emptyComments cs <- getCommentsFor (locA l) return (a cs) -acsA :: MonadP m => (EpAnnComments -> Located a) -> m (LocatedAn t a) +-- acsA :: MonadP m => (EpAnnComments -> Located a) -> m (LocatedAn t a) +acsA :: (Monoid t, MonadP m) => (EpAnnComments -> Located a) -> m (LocatedAnS t a) acsA a = reLocA <$> acs a +acsI :: MonadP m => (EpAnnComments -> Located a) -> m (LocatedAn t a) +acsI a = reLocE <$> acs a + acsExpr :: (EpAnnComments -> LHsExpr GhcPs) -> P ECP acsExpr a = do { expr :: (LHsExpr GhcPs) <- runPV $ acsa a ; return (ecpFromExp $ expr) } @@ -4340,8 +4376,7 @@ amsrp a@(L l _) bs = do amsrn :: MonadP m => Located a -> NameAnn -> m (LocatedN a) amsrn (L l a) an = do cs <- getCommentsFor l - let ann = (EpAnn (spanAsAnchor l) an cs) - return (L (SrcSpanAnn ann l) a) + return (L (EpAnnS (spanAsAnchor l) an cs) a) -- |Synonyms for AddEpAnn versions of AnnOpen and AnnClose mo,mc :: Located Token -> AddEpAnn @@ -4364,17 +4399,21 @@ mos,mcs :: Located Token -> AddEpAnn mos ll = mj AnnOpenS ll mcs ll = mj AnnCloseS ll -pvA :: MonadP m => m (Located a) -> m (LocatedAn t a) +pvA :: (Monoid t) => MonadP m => m (Located a) -> m (LocatedAnS t a) pvA a = do { av <- a ; return (reLocA av) } +pvI :: MonadP m => m (Located a) -> m (LocatedAn t a) +pvI a = do { av <- a + ; return (reLocE av) } + pvN :: MonadP m => m (Located a) -> m (LocatedN a) pvN a = do { (L l av) <- a - ; return (L (noAnnSrcSpan l) av) } + ; return (L (noAnnSrcSpanN l) av) } pvL :: MonadP m => m (LocatedAn t a) -> m (Located a) pvL a = do { av <- a - ; return (reLoc av) } + ; return (reLocI av) } -- | Parse a Haskell module with Haddock comments. -- This is done in two steps: @@ -4388,16 +4427,19 @@ pvL a = do { av <- a parseModule :: P (Located (HsModule GhcPs)) parseModule = parseModuleNoHaddock >>= addHaddockToModule -commentsA :: (Monoid ann) => SrcSpan -> EpAnnComments -> SrcSpanAnn' (EpAnn ann) -commentsA loc cs = SrcSpanAnn (EpAnn (Anchor (rs loc) UnchangedAnchor) mempty cs) loc +commentsA :: (Monoid ann) => SrcSpan -> EpAnnComments -> (EpAnnS ann) +commentsA loc cs = (EpAnnS (spanAsAnchor loc) mempty cs) + +commentsI :: (Monoid ann) => SrcSpan -> EpAnnComments -> SrcSpanAnn' (EpAnn ann) +commentsI loc cs = SrcSpanAnn (EpAnn (spanAsAnchor loc) mempty cs) loc -- | 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 :: (Monoid ann) => LocatedAn ann a -> P (LocatedAn ann a) +commentsPA :: (Monoid ann) => LocatedAnS ann a -> P (LocatedAnS ann a) commentsPA la@(L l a) = do cs <- getPriorCommentsFor (getLocA la) - return (L (addCommentsToSrcAnn l cs) a) + return (L (addCommentsToEpAnnS l cs) a) rs :: SrcSpan -> RealSrcSpan rs (RealSrcSpan l _) = l @@ -4405,12 +4447,21 @@ 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)] [] + = case locI ll of + RealSrcSpan lll _ -> AnnList (Just$ realSpanAsAnchor lll) Nothing Nothing [AddEpAnn kw (srcSpan2e l)] [] + _ -> AnnList Nothing Nothing Nothing [AddEpAnn kw (srcSpan2e l)] [] -listAsAnchor :: [LocatedAn t a] -> Anchor +listAsAnchor :: [LocatedAnS t a] -> Anchor listAsAnchor [] = spanAsAnchor noSrcSpan listAsAnchor (L l _:_) = spanAsAnchor (locA l) +listAsAnchorM :: [LocatedAnS t a] -> Maybe Anchor +listAsAnchorM [] = Nothing +listAsAnchorM (L l _:_) = + case locA l of + RealSrcSpan ll _ -> Just $ realSpanAsAnchor ll + _ -> Nothing + hsTok :: Located Token -> LHsToken tok GhcPs hsTok (L l _) = L (mkTokenLocation l) HsTok @@ -4438,15 +4489,15 @@ addTrailingCommaA :: MonadP m => LocatedA a -> SrcSpan -> m (LocatedA a) addTrailingCommaA la span = addTrailingAnnA la span AddCommaAnn addTrailingAnnA :: MonadP m => LocatedA a -> SrcSpan -> (EpaLocation -> TrailingAnn) -> m (LocatedA a) -addTrailingAnnA (L (SrcSpanAnn anns l) a) ss ta = do +addTrailingAnnA (L anns a) ss ta = do -- cs <- getCommentsFor l let cs = emptyComments -- AZ:TODO: generalise updating comments into an annotation let anns' = if isZeroWidthSpan ss then anns - else addTrailingAnnToA l (ta (srcSpan2e ss)) cs anns - return (L (SrcSpanAnn anns' l) a) + else addTrailingAnnToA (ta (srcSpan2e ss)) cs anns + return (L anns' a) -- ------------------------------------- @@ -4466,14 +4517,15 @@ addTrailingAnnL (L (SrcSpanAnn anns l) a) ta = do -- Mostly use to add AnnComma, special case it to NOP if adding a zero-width annotation addTrailingCommaN :: MonadP m => LocatedN a -> SrcSpan -> m (LocatedN a) -addTrailingCommaN (L (SrcSpanAnn anns l) a) span = do +addTrailingCommaN (L anns a) span = do + let l = locN anns -- cs <- getCommentsFor l let cs = emptyComments -- AZ:TODO: generalise updating comments into an annotation let anns' = if isZeroWidthSpan span then anns else addTrailingCommaToN l anns (srcSpan2e span) - return (L (SrcSpanAnn anns' l) a) + return (L anns' a) addTrailingCommaS :: Located StringLiteral -> EpaLocation -> Located StringLiteral addTrailingCommaS (L l sl) span = L l (sl { sl_tc = Just (epaLocationRealSrcSpan span) }) diff --git a/compiler/GHC/Parser/Annotation.hs b/compiler/GHC/Parser/Annotation.hs index f4e1a06198..51cf2deac7 100644 --- a/compiler/GHC/Parser/Annotation.hs +++ b/compiler/GHC/Parser/Annotation.hs @@ -14,12 +14,17 @@ module GHC.Parser.Annotation ( -- * In-tree Exact Print Annotations AddEpAnn(..), EpaLocation(..), epaLocationRealSrcSpan, epaLocationFromSrcAnn, + epaLocationFromEpAnnS, TokenLocation(..), getTokenSrcSpan, DeltaPos(..), deltaPos, getDeltaLine, - EpAnn(..), Anchor(..), AnchorOperation(..), + EpAnn(..), Anchor, AnchorOperation(..), + anchor, anchor_op, + EpAnnS(..), spanAsAnchor, realSpanAsAnchor, + spanFromAnchor, + noSpanAnchor, noAnn, -- ** Comments in Annotations @@ -32,6 +37,7 @@ module GHC.Parser.Annotation ( LocatedA, LocatedL, LocatedC, LocatedN, LocatedAn, LocatedP, SrcSpanAnnA, SrcSpanAnnL, SrcSpanAnnP, SrcSpanAnnC, SrcSpanAnnN, SrcSpanAnn'(..), SrcAnn, + LocatedAnS, -- ** Annotation data types used in 'GenLocated' @@ -41,7 +47,7 @@ module GHC.Parser.Annotation ( AnnContext(..), NameAnn(..), NameAdornment(..), NoEpAnns(..), - AnnSortKey(..), + AnnSortKey(..), DeclTag(..), -- ** Trailing annotations in lists TrailingAnn(..), trailingAnnToAddEpAnn, @@ -49,15 +55,18 @@ module GHC.Parser.Annotation ( -- ** Utilities for converting between different 'GenLocated' when -- ** we do not care about the annotations. - la2na, na2la, n2l, l2n, l2l, la2la, - reLoc, reLocA, reLocL, reLocC, reLocN, + la2na, l2l, l2li, l2ll, nn2la, nn2li, l2ln, + n2l, l2n, la2la, la2li, + reLoc, reLocI, reLocA, reLocE, reLocL, reLocC, reLocN, + locN, locA, srcSpan2e, la2e, realSrcSpan, -- ** Building up annotations extraToAnnList, reAnn, reAnnL, reAnnC, - addAnns, addAnnsA, widenSpan, widenAnchor, widenAnchorR, widenLocatedAn, + addAnns, addAnnsA, widenSpan, widenAnchor, widenAnchorS, widenLocatedAn, + widenEpAnnS, -- ** Querying annotations getLocAnn, @@ -66,22 +75,27 @@ module GHC.Parser.Annotation ( epAnnComments, -- ** Working with locations of annotations - sortLocatedA, - mapLocA, - combineLocsA, - combineSrcSpansA, - addCLocA, addCLocAA, + sortLocatedA, sortLocatedI, + mapLocA, mapLocI, + combineLocsA, combineLocsI, + combineSrcSpansA, combineSrcSpansI, + addCLocA, addCLocAA, addCLocI, addCLocII, -- ** Constructing 'GenLocated' annotation types when we do not care -- about annotations. noLocA, getLocA, - noSrcSpanA, - noAnnSrcSpan, + noLocN, getLocN, + noLocI, getLocI, + noSrcSpanA, noSrcSpanN, noSrcSpanI, + noAnnSrcSpan, noAnnSrcSpanN, noAnnSrcSpanI, -- ** Working with comments in annotations - noComments, comment, addCommentsToSrcAnn, setCommentsSrcAnn, + noComments, comment, addCommentsToSrcAnn, + setCommentsSrcAnn, setCommentsEpAnnS, + addCommentsToEpAnnS, addCommentsToEpAnn, setCommentsEpAnn, - transferAnnsA, commentsOnlyA, removeCommentsA, + transferAnnsA, commentsOnlyA, commentsOnlyI, + removeCommentsA, removeCommentsI, placeholderRealSpan, ) where @@ -368,12 +382,6 @@ data EpaCommentTok = | EpaDocOptions String -- ^ doc options (prune, ignore-exports, etc) | EpaLineComment String -- ^ comment starting by "--" | EpaBlockComment String -- ^ comment in {- -} - | EpaEofComment -- ^ empty comment, capturing - -- location of EOF - - -- See #19697 for a discussion of EpaEofComment's use and how it - -- should be removed in favour of capturing it in the location for - -- 'Located HsModule' in the parser. deriving (Eq, Data, Show) -- Note: these are based on the Token versions, but the Token type is @@ -404,9 +412,9 @@ data AddEpAnn = AddEpAnn AnnKeywordId EpaLocation deriving (Data,Eq) -- in the @'EpaDelta'@ variant captures any comments between the prior -- output and the thing being marked here, since we cannot otherwise -- sort the relative order. -data EpaLocation = EpaSpan !RealSrcSpan !(Strict.Maybe BufSpan) +data EpaLocation = EpaSpan !SrcSpan | EpaDelta !DeltaPos ![LEpaComment] - deriving (Data,Eq) + deriving (Data,Eq,Show) -- | Tokens embedded in the AST have an EpaLocation, unless they come from -- generated code (e.g. by TH). @@ -416,7 +424,7 @@ data TokenLocation = NoTokenLoc | TokenLoc !EpaLocation getTokenSrcSpan :: TokenLocation -> SrcSpan getTokenSrcSpan NoTokenLoc = noSrcSpan getTokenSrcSpan (TokenLoc EpaDelta{}) = noSrcSpan -getTokenSrcSpan (TokenLoc (EpaSpan rspan mbufpos)) = RealSrcSpan rspan mbufpos +getTokenSrcSpan (TokenLoc (EpaSpan span)) = span instance Outputable a => Outputable (GenLocated TokenLocation a) where ppr (L _ x) = ppr x @@ -453,15 +461,19 @@ getDeltaLine (DifferentLine r _) = r -- 'EpaLocation'. The parser will never insert a 'DeltaPos', so the -- partial function is safe. epaLocationRealSrcSpan :: EpaLocation -> RealSrcSpan -epaLocationRealSrcSpan (EpaSpan r _) = r -epaLocationRealSrcSpan (EpaDelta _ _) = panic "epaLocationRealSrcSpan" +epaLocationRealSrcSpan (EpaSpan (RealSrcSpan r _)) = r +epaLocationRealSrcSpan _ = panic "epaLocationRealSrcSpan" epaLocationFromSrcAnn :: SrcAnn ann -> EpaLocation -epaLocationFromSrcAnn (SrcSpanAnn EpAnnNotUsed l) = EpaSpan (realSrcSpan l) Strict.Nothing -epaLocationFromSrcAnn (SrcSpanAnn (EpAnn anc _ _) _) = EpaSpan (anchor anc) Strict.Nothing +epaLocationFromSrcAnn (SrcSpanAnn EpAnnNotUsed l) = spanAsAnchor l +epaLocationFromSrcAnn (SrcSpanAnn (EpAnn anc _ _) _) = anc + +epaLocationFromEpAnnS :: EpAnnS ann -> EpaLocation +epaLocationFromEpAnnS (EpAnnS anc _ _) = anc + instance Outputable EpaLocation where - ppr (EpaSpan r _) = text "EpaSpan" <+> ppr r + ppr (EpaSpan ss) = text "EpaSpan" <+> ppr ss ppr (EpaDelta d cs) = text "EpaDelta" <+> ppr d <+> ppr cs instance Outputable AddEpAnn where @@ -523,12 +535,35 @@ data EpAnn ann -- the element relative to its container. If it is moved, that -- relationship is tracked in the 'anchor_op' instead. -data Anchor = Anchor { anchor :: RealSrcSpan - -- ^ Base location for the start of - -- the syntactic element holding - -- the annotations. - , anchor_op :: AnchorOperation } - deriving (Data, Eq, Show) +-- AZ: This is a temporary type until we get rid of EpAnnNotUsed, at +-- which time it replaces EpAnn +data EpAnnS ann + = EpAnnS { s_entry :: !Anchor + -- ^ Base location for the start of the syntactic element + -- holding the annotations. + , s_anns :: !ann -- ^ Annotations added by the Parser + , s_comments :: !EpAnnComments + -- ^ Comments enclosed in the SrcSpan of the element + -- this `EpAnn` is attached to + } deriving (Data, Eq, Functor) + +-- data Anchor = Anchor { anchor :: !RealSrcSpan +-- -- ^ Base location for the start of +-- -- the syntactic element holding +-- -- the annotations. +-- , anchor_op :: !AnchorOperation } +-- deriving (Data, Eq, Show) + +type Anchor = EpaLocation -- Transitional + +anchor :: Anchor -> RealSrcSpan +anchor (EpaSpan (RealSrcSpan r _)) = r +anchor _ = panic "anchor" +-- anchor (EpaDelta _ _) = placeholderRealSpan + +anchor_op :: Anchor -> AnchorOperation +anchor_op (EpaSpan _) = UnchangedAnchor +anchor_op (EpaDelta dp _) = MovedAnchor dp -- | If tools modify the parsed source, the 'MovedAnchor' variant can -- directly provide the spacing for this item relative to the previous @@ -541,10 +576,17 @@ data AnchorOperation = UnchangedAnchor spanAsAnchor :: SrcSpan -> Anchor -spanAsAnchor s = Anchor (realSrcSpan s) UnchangedAnchor +spanAsAnchor ss = EpaSpan ss realSpanAsAnchor :: RealSrcSpan -> Anchor -realSpanAsAnchor s = Anchor s UnchangedAnchor +realSpanAsAnchor s = EpaSpan (RealSrcSpan s Strict.Nothing) + +spanFromAnchor :: Anchor -> SrcSpan +spanFromAnchor (EpaSpan ss) = ss +spanFromAnchor (EpaDelta _ _) = UnhelpfulSpan (UnhelpfulOther (fsLit "spanFromAnchor")) + +noSpanAnchor :: Anchor +noSpanAnchor = EpaDelta (SameLine 0) [] -- --------------------------------------------------------------------- @@ -577,7 +619,7 @@ emptyComments = EpaComments [] -- Important that the fields are strict as these live inside L nodes which -- are live for a long time. -data SrcSpanAnn' a = SrcSpanAnn { ann :: !a, locA :: !SrcSpan } +data SrcSpanAnn' a = SrcSpanAnn { ann :: !a, locI :: !SrcSpan } deriving (Data, Eq) -- See Note [XRec and Anno in the AST] @@ -591,8 +633,8 @@ type LocatedL = GenLocated SrcSpanAnnL type LocatedP = GenLocated SrcSpanAnnP type LocatedC = GenLocated SrcSpanAnnC -type SrcSpanAnnA = SrcAnn AnnListItem -type SrcSpanAnnN = SrcAnn NameAnn +type SrcSpanAnnA = EpAnnS AnnListItem +type SrcSpanAnnN = EpAnnS NameAnn type SrcSpanAnnL = SrcAnn AnnList type SrcSpanAnnP = SrcAnn AnnPragma @@ -602,6 +644,8 @@ type SrcSpanAnnC = SrcAnn AnnContext -- parameterised annotation type. type LocatedAn an = GenLocated (SrcAnn an) +type LocatedAnS an = GenLocated (EpAnnS an) + {- Note [XRec and Anno in the AST] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -803,11 +847,28 @@ data AnnPragma -- SrcSpan is used purely as an index into the annotations, allowing -- transformations of the AST including the introduction of new Located -- items or re-arranging existing ones. -data AnnSortKey +data AnnSortKey a = NoAnnSortKey - | AnnSortKey [RealSrcSpan] + | AnnSortKey a deriving (Data, Eq) +data DeclTag + = TyClDTag + | InstDTag + | DerivDTag + | ValDTag + | SigDTag + | KindSigDTag + | DefDTag + | ForDTag + | WarningDTag + | AnnDTag + | RuleDTag + | SpliceDTag + | DocDTag + | RoleAnnotDTag + deriving (Eq,Data,Ord,Show) + -- --------------------------------------------------------------------- -- | Convert a 'TrailingAnn' to an 'AddEpAnn' @@ -830,22 +891,16 @@ addTrailingAnnToL _ t cs n = n { anns = addTrailing (anns n) -- | Helper function used in the parser to add a 'TrailingAnn' items -- to an existing annotation. -addTrailingAnnToA :: SrcSpan -> TrailingAnn -> EpAnnComments - -> EpAnn AnnListItem -> EpAnn AnnListItem -addTrailingAnnToA s t cs EpAnnNotUsed - = EpAnn (spanAsAnchor s) (AnnListItem [t]) cs -addTrailingAnnToA _ t cs n = n { anns = addTrailing (anns n) - , comments = comments n <> cs } - where +addTrailingAnnToA :: TrailingAnn -> EpAnnComments + -> EpAnnS AnnListItem -> EpAnnS AnnListItem +addTrailingAnnToA t cs (EpAnnS anc (AnnListItem ts) csa) = + EpAnnS anc (AnnListItem (ts ++ [t])) (csa <> cs) -- See Note [list append in addTrailing*] - addTrailing n = n { lann_trailing = lann_trailing n ++ [t] } -- | Helper function used in the parser to add a comma location to an -- existing annotation. -addTrailingCommaToN :: SrcSpan -> EpAnn NameAnn -> EpaLocation -> EpAnn NameAnn -addTrailingCommaToN s EpAnnNotUsed l - = EpAnn (spanAsAnchor s) (NameAnnTrailing [AddCommaAnn l]) emptyComments -addTrailingCommaToN _ n l = n { anns = addTrailing (anns n) l } +addTrailingCommaToN :: SrcSpan -> EpAnnS NameAnn -> EpaLocation -> EpAnnS NameAnn +addTrailingCommaToN _ n l = n { s_anns = addTrailing (s_anns n) l } where -- See Note [list append in addTrailing*] addTrailing :: NameAnn -> EpaLocation -> NameAnn @@ -876,64 +931,103 @@ knowing that in most cases the original list is empty. -- |Helper function (temporary) during transition of names -- Discards any annotations l2n :: LocatedAn a1 a2 -> LocatedN a2 -l2n (L la a) = L (noAnnSrcSpan (locA la)) a +l2n (L la a) = L (noAnnSrcSpanN (locI la)) a -n2l :: LocatedN a -> LocatedA a -n2l (L la a) = L (na2la la) a +n2l :: LocatedAnS ann1 a -> LocatedAn ann a +n2l (L la a) = L (nn2la la) a + +la2la :: (Monoid ann) => LocatedAnS ann1 a -> LocatedAnS ann a +la2la (L (EpAnnS anc _ cs) a) = L (EpAnnS anc mempty cs) a -- |Helper function (temporary) during transition of names -- Discards any annotations la2na :: SrcSpanAnn' a -> SrcSpanAnnN -la2na l = noAnnSrcSpan (locA l) +la2na l = noAnnSrcSpanN (locI l) -- |Helper function (temporary) during transition of names -- Discards any annotations -la2la :: LocatedAn ann1 a2 -> LocatedAn ann2 a2 -la2la (L la a) = L (noAnnSrcSpan (locA la)) a +la2li :: LocatedAn ann1 a2 -> LocatedAn ann2 a2 +la2li (L la a) = L (noAnnSrcSpanI (locI la)) a -l2l :: SrcSpanAnn' a -> SrcAnn ann +-- |Helper function (temporary) during transition of names +-- Discards any annotations +l2l :: (Monoid ann) => EpAnnS a -> EpAnnS ann l2l l = noAnnSrcSpan (locA l) -- |Helper function (temporary) during transition of names -- Discards any annotations -na2la :: SrcSpanAnn' a -> SrcAnn ann -na2la l = noAnnSrcSpan (locA l) +l2li :: SrcSpanAnn' a -> SrcAnn ann +l2li l = noAnnSrcSpanI (locI l) + +-- |Helper function (temporary) during transition of names +-- Discards any annotations +l2ln :: (Monoid ann) => SrcSpanAnn' a -> EpAnnS ann +l2ln l = noAnnSrcSpan (locI l) -reLoc :: LocatedAn a e -> Located e -reLoc (L (SrcSpanAnn _ l) a) = L l a +l2ll :: (Monoid b) => EpAnnS a -> EpAnnS b +l2ll l = noAnnSrcSpan (locA l) -reLocA :: Located e -> LocatedAn ann e -reLocA (L l a) = (L (SrcSpanAnn EpAnnNotUsed l) a) +-- |Helper function (temporary) during transition of names +-- Discards any annotations +nn2la :: EpAnnS a -> SrcAnn ann +nn2la l = noAnnSrcSpanI (locN l) + +-- |Helper function (temporary) during transition of names +-- Discards any annotations +nn2li :: EpAnnS NameAnn -> EpAnnS AnnListItem +nn2li (EpAnnS anc _ cs) = EpAnnS anc (AnnListItem []) cs + +-- TODO:AZ merge locN into locA +locN :: EpAnnS ann -> SrcSpan +locN a = spanFromAnchor $ s_entry a + +locA :: EpAnnS ann -> SrcSpan +locA a = spanFromAnchor $ s_entry a + +reLoc :: LocatedAnS ann e -> Located e +reLoc (L la a) = L (spanFromAnchor $ s_entry la ) a + +reLocI :: LocatedAn a e -> Located e +reLocI (L (SrcSpanAnn _ l) a) = L l a + +reLocE :: Located e -> LocatedAn ann e +reLocE (L l a) = (L (SrcSpanAnn EpAnnNotUsed l) a) + +reLocA :: (Monoid ann) => Located e -> LocatedAnS ann e +reLocA (L l a) = (L (noAnnSrcSpan l) a) reLocL :: LocatedN e -> LocatedA e -reLocL (L l a) = (L (na2la l) a) +reLocL (L l a) = (L (nn2li l) a) reLocC :: LocatedN e -> LocatedC e -reLocC (L l a) = (L (na2la l) a) +reLocC (L l a) = (L (nn2la l) a) reLocN :: LocatedN a -> Located a -reLocN (L (SrcSpanAnn _ l) a) = L l a +reLocN (L ln a) = L (locN ln) a -- --------------------------------------------------------------------- -realSrcSpan :: SrcSpan -> RealSrcSpan -realSrcSpan (RealSrcSpan s _) = s -realSrcSpan _ = mkRealSrcSpan l l -- AZ temporary +realSrcSpan :: String -> SrcSpan -> RealSrcSpan +realSrcSpan _ (RealSrcSpan s _mb) = s +realSrcSpan src s = mkRealSrcSpan l l where - l = mkRealSrcLoc (fsLit "foo") (-1) (-1) + l = seq s $ error $ ("realSrcSpan:from:" ++ show src) + +la2r :: EpAnnS a -> RealSrcSpan +la2r l = realSrcSpan "la2r" (locA l) srcSpan2e :: SrcSpan -> EpaLocation -srcSpan2e (RealSrcSpan s mb) = EpaSpan s mb -srcSpan2e span = EpaSpan (realSrcSpan span) Strict.Nothing +srcSpan2e ss@(RealSrcSpan _ _) = EpaSpan ss +srcSpan2e span = EpaSpan (RealSrcSpan (realSrcSpan "srcSpan2e" span) Strict.Nothing) la2e :: SrcSpanAnn' a -> EpaLocation -la2e = srcSpan2e . locA +la2e = srcSpan2e . locI extraToAnnList :: AnnList -> [AddEpAnn] -> AnnList extraToAnnList (AnnList a o c e t) as = AnnList a o c (e++as) t reAnn :: [TrailingAnn] -> EpAnnComments -> Located a -> LocatedA a -reAnn anns cs (L l a) = L (SrcSpanAnn (EpAnn (spanAsAnchor l) (AnnListItem anns) cs) l) a +reAnn anns cs (L l a) = L (EpAnnS (spanAsAnchor l) (AnnListItem anns) cs) a reAnnC :: AnnContext -> EpAnnComments -> Located a -> LocatedC a reAnnC anns cs (L l a) = L (SrcSpanAnn (EpAnn (spanAsAnchor l) anns cs) l) a @@ -942,21 +1036,46 @@ reAnnL :: ann -> EpAnnComments -> Located e -> GenLocated (SrcAnn ann) e reAnnL anns cs (L l a) = L (SrcSpanAnn (EpAnn (spanAsAnchor l) anns cs) l) a getLocAnn :: Located a -> SrcSpanAnnA -getLocAnn (L l _) = SrcSpanAnn EpAnnNotUsed l +getLocAnn (L l _) = EpAnnS (spanAsAnchor l) (AnnListItem []) emptyComments + +getLocI :: GenLocated (SrcSpanAnn' a) e -> SrcSpan +getLocI (L (SrcSpanAnn _ l) _) = l + +noLocI :: a -> LocatedAn an a +noLocI = L (SrcSpanAnn EpAnnNotUsed noSrcSpan) + +-- noLocA :: a -> LocatedA a +noLocA :: (Monoid ann) => a -> LocatedAnS ann a +noLocA = L (EpAnnS (spanAsAnchor noSrcSpan) mempty emptyComments) + +-- AZ:TODO merge getLocN and getLocA +getLocA :: LocatedAnS a e -> SrcSpan +getLocA (L (EpAnnS anc _ _) _) = spanFromAnchor anc +getLocN :: LocatedAnS an a -> SrcSpan +getLocN (L l _) = locN l -getLocA :: GenLocated (SrcSpanAnn' a) e -> SrcSpan -getLocA (L (SrcSpanAnn _ l) _) = l +noLocN :: a -> LocatedN a +noLocN = L (noAnnSrcSpanN noSrcSpan) -noLocA :: a -> LocatedAn an a -noLocA = L (SrcSpanAnn EpAnnNotUsed noSrcSpan) +noAnnSrcSpanI :: SrcSpan -> SrcAnn ann +noAnnSrcSpanI l = SrcSpanAnn EpAnnNotUsed l -noAnnSrcSpan :: SrcSpan -> SrcAnn ann -noAnnSrcSpan l = SrcSpanAnn EpAnnNotUsed l +noAnnSrcSpanN :: SrcSpan -> EpAnnS NameAnn +noAnnSrcSpanN l = EpAnnS (spanAsAnchor l) mempty emptyComments -noSrcSpanA :: SrcAnn ann +noAnnSrcSpan :: (Monoid ann) => SrcSpan -> EpAnnS ann +noAnnSrcSpan l = EpAnnS (spanAsAnchor l) mempty emptyComments + +noSrcSpanA :: (Monoid ann) => EpAnnS ann noSrcSpanA = noAnnSrcSpan noSrcSpan +noSrcSpanI :: SrcAnn ann +noSrcSpanI = noAnnSrcSpanI noSrcSpan + +noSrcSpanN :: EpAnnS NameAnn +noSrcSpanN = noAnnSrcSpanN noSrcSpan + -- | Short form for 'EpAnnNotUsed' noAnn :: EpAnn a noAnn = EpAnnNotUsed @@ -967,18 +1086,12 @@ addAnns (EpAnn l as1 cs) as2 cs2 = EpAnn (widenAnchor l (as1 ++ as2)) (as1 ++ as2) (cs <> cs2) addAnns EpAnnNotUsed [] (EpaComments []) = EpAnnNotUsed addAnns EpAnnNotUsed [] (EpaCommentsBalanced [] []) = EpAnnNotUsed -addAnns EpAnnNotUsed as cs = EpAnn (Anchor placeholderRealSpan UnchangedAnchor) as cs +addAnns EpAnnNotUsed as cs = EpAnn (widenAnchor noSpanAnchor as) as cs -- AZ:TODO use widenSpan here too addAnnsA :: SrcSpanAnnA -> [TrailingAnn] -> EpAnnComments -> SrcSpanAnnA -addAnnsA (SrcSpanAnn (EpAnn l as1 cs) loc) as2 cs2 - = SrcSpanAnn (EpAnn l (AnnListItem (lann_trailing as1 ++ as2)) (cs <> cs2)) loc -addAnnsA (SrcSpanAnn EpAnnNotUsed loc) [] (EpaComments []) - = SrcSpanAnn EpAnnNotUsed loc -addAnnsA (SrcSpanAnn EpAnnNotUsed loc) [] (EpaCommentsBalanced [] []) - = SrcSpanAnn EpAnnNotUsed loc -addAnnsA (SrcSpanAnn EpAnnNotUsed loc) as cs - = SrcSpanAnn (EpAnn (spanAsAnchor loc) (AnnListItem as) cs) loc +addAnnsA (EpAnnS l as1 cs) as2 cs2 + = (EpAnnS l (AnnListItem (lann_trailing as1 ++ as2)) (cs <> cs2)) -- | The annotations need to all come after the anchor. Make sure -- this is the case. @@ -986,7 +1099,7 @@ widenSpan :: SrcSpan -> [AddEpAnn] -> SrcSpan widenSpan s as = foldl combineSrcSpans s (go as) where go [] = [] - go (AddEpAnn _ (EpaSpan s mb):rest) = RealSrcSpan s mb : go rest + go (AddEpAnn _ (EpaSpan ss):rest) = ss : go rest go (AddEpAnn _ (EpaDelta _ _):rest) = go rest -- | The annotations need to all come after the anchor. Make sure @@ -995,18 +1108,51 @@ widenRealSpan :: RealSrcSpan -> [AddEpAnn] -> RealSrcSpan widenRealSpan s as = foldl combineRealSrcSpans s (go as) where go [] = [] - go (AddEpAnn _ (EpaSpan s _):rest) = s : go rest - go (AddEpAnn _ (EpaDelta _ _):rest) = go rest + go (AddEpAnn _ (EpaSpan (RealSrcSpan s _)):rest) = s : go rest + go (AddEpAnn _ _ :rest) = go rest -widenAnchor :: Anchor -> [AddEpAnn] -> Anchor -widenAnchor (Anchor s op) as = Anchor (widenRealSpan s as) op +realSpanFromAnns :: [AddEpAnn] -> Strict.Maybe RealSrcSpan +realSpanFromAnns as = go Strict.Nothing as + where + combine Strict.Nothing r = Strict.Just r + combine (Strict.Just l) r = Strict.Just $ combineRealSrcSpans l r -widenAnchorR :: Anchor -> RealSrcSpan -> Anchor -widenAnchorR (Anchor s op) r = Anchor (combineRealSrcSpans s r) op + go acc [] = acc + go acc (AddEpAnn _ (EpaSpan (RealSrcSpan s _b)):rest) = go (combine acc s) rest + go acc (AddEpAnn _ _ :rest) = go acc rest + +bufSpanFromAnns :: [AddEpAnn] -> Strict.Maybe BufSpan +bufSpanFromAnns as = go Strict.Nothing as + where + combine Strict.Nothing r = Strict.Just r + combine (Strict.Just l) r = Strict.Just $ combineBufSpans l r + + go acc [] = acc + go acc (AddEpAnn _ (EpaSpan (RealSrcSpan _ (Strict.Just mb))):rest) = go (combine acc mb) rest + go acc (AddEpAnn _ _:rest) = go acc rest + + +widenAnchor :: Anchor -> [AddEpAnn] -> Anchor +widenAnchor (EpaSpan (RealSrcSpan s mb)) as + = EpaSpan (RealSrcSpan (widenRealSpan s as) (liftA2 combineBufSpans mb (bufSpanFromAnns as))) +widenAnchor (EpaSpan us) _ = EpaSpan us +widenAnchor a@(EpaDelta _ _) as = case (realSpanFromAnns as) of + Strict.Nothing -> a + Strict.Just r -> EpaSpan (RealSrcSpan r Strict.Nothing) + +widenAnchorS :: Anchor -> SrcSpan -> Anchor +widenAnchorS (EpaSpan (RealSrcSpan s mbe)) (RealSrcSpan r mbr) + = EpaSpan (RealSrcSpan (combineRealSrcSpans s r) (liftA2 combineBufSpans mbe mbr)) +widenAnchorS (EpaSpan us) _ = EpaSpan us +widenAnchorS (EpaDelta _ _) (RealSrcSpan r mb) = EpaSpan (RealSrcSpan r mb) +widenAnchorS anc _ = anc widenLocatedAn :: SrcSpanAnn' an -> [AddEpAnn] -> SrcSpanAnn' an widenLocatedAn (SrcSpanAnn a l) as = SrcSpanAnn a (widenSpan l as) +widenEpAnnS :: EpAnnS an -> [AddEpAnn] -> EpAnnS an +widenEpAnnS (EpAnnS anc an cs) as = EpAnnS (widenAnchor anc as) an cs + epAnnAnnsL :: EpAnn a -> [a] epAnnAnnsL EpAnnNotUsed = [] epAnnAnnsL (EpAnn _ anns _) = [anns] @@ -1027,32 +1173,53 @@ epAnnComments EpAnnNotUsed = EpaComments [] epAnnComments (EpAnn _ _ cs) = cs -- --------------------------------------------------------------------- --- sortLocatedA :: [LocatedA a] -> [LocatedA a] -sortLocatedA :: [GenLocated (SrcSpanAnn' a) e] -> [GenLocated (SrcSpanAnn' a) e] +sortLocatedA :: [LocatedAnS a e] -> [LocatedAnS a e] sortLocatedA = sortBy (leftmost_smallest `on` getLocA) -mapLocA :: (a -> b) -> GenLocated SrcSpan a -> GenLocated (SrcAnn ann) b +sortLocatedI :: [GenLocated (SrcSpanAnn' a) e] -> [GenLocated (SrcSpanAnn' a) e] +sortLocatedI = sortBy (leftmost_smallest `on` getLocI) + +mapLocA :: (Monoid ann) => (a -> b) -> GenLocated SrcSpan a -> LocatedAnS ann b mapLocA f (L l a) = L (noAnnSrcSpan l) (f a) +mapLocI :: (a -> b) -> GenLocated SrcSpan a -> GenLocated (SrcAnn ann) b +mapLocI f (L l a) = L (noAnnSrcSpanI l) (f a) + -- AZ:TODO: move this somewhere sane -combineLocsA :: Semigroup a => GenLocated (SrcAnn a) e1 -> GenLocated (SrcAnn a) e2 -> SrcAnn a +combineLocsA :: Semigroup a => LocatedAnS a e1 -> LocatedAnS a e2 -> EpAnnS a combineLocsA (L a _) (L b _) = combineSrcSpansA a b -combineSrcSpansA :: Semigroup a => SrcAnn a -> SrcAnn a -> SrcAnn a -combineSrcSpansA (SrcSpanAnn aa la) (SrcSpanAnn ab lb) +combineLocsI :: Semigroup a => GenLocated (SrcAnn a) e1 -> GenLocated (SrcAnn a) e2 -> SrcAnn a +combineLocsI (L a _) (L b _) = combineSrcSpansI a b + + +combineSrcSpansA :: Semigroup a => EpAnnS a -> EpAnnS a -> EpAnnS a +combineSrcSpansA aa ab = aa <> ab + +combineSrcSpansI :: Semigroup a => SrcAnn a -> SrcAnn a -> SrcAnn a +combineSrcSpansI (SrcSpanAnn aa la) (SrcSpanAnn ab lb) = case SrcSpanAnn (aa <> ab) (combineSrcSpans la lb) of SrcSpanAnn EpAnnNotUsed l -> SrcSpanAnn EpAnnNotUsed l SrcSpanAnn (EpAnn anc an cs) l -> - SrcSpanAnn (EpAnn (widenAnchorR anc (realSrcSpan l)) an cs) l + SrcSpanAnn (EpAnn (widenAnchorS anc l) an cs) l + -- | Combine locations from two 'Located' things and add them to a third thing -addCLocA :: GenLocated (SrcSpanAnn' a) e1 -> GenLocated SrcSpan e2 -> e3 -> GenLocated (SrcAnn ann) e3 +addCLocA :: (Monoid ann) + => LocatedAnS a e1 -> GenLocated SrcSpan e2 -> e3 -> LocatedAnS ann e3 addCLocA a b c = L (noAnnSrcSpan $ combineSrcSpans (locA $ getLoc a) (getLoc b)) c -addCLocAA :: GenLocated (SrcSpanAnn' a1) e1 -> GenLocated (SrcSpanAnn' a2) e2 -> e3 -> GenLocated (SrcAnn ann) e3 +-- | Combine locations from two 'Located' things and add them to a third thing +addCLocI :: GenLocated (SrcSpanAnn' a) e1 -> GenLocated SrcSpan e2 -> e3 -> GenLocated (SrcAnn ann) e3 +addCLocI a b c = L (noAnnSrcSpanI $ combineSrcSpans (locI $ getLoc a) (getLoc b)) c + +addCLocAA :: LocatedAnS a1 e1 -> LocatedAnS a2 e2 -> e3 -> LocatedAnS AnnListItem e3 addCLocAA a b c = L (noAnnSrcSpan $ combineSrcSpans (locA $ getLoc a) (locA $ getLoc b)) c +addCLocII :: GenLocated (SrcSpanAnn' a1) e1 -> GenLocated (SrcSpanAnn' a2) e2 -> e3 -> GenLocated (SrcAnn ann) e3 +addCLocII a b c = L (noAnnSrcSpanI $ combineSrcSpans (locI $ getLoc a) (locI $ getLoc b)) c + -- --------------------------------------------------------------------- -- Utilities for manipulating EpAnnComments -- --------------------------------------------------------------------- @@ -1079,14 +1246,14 @@ data NoEpAnns = NoEpAnns deriving (Data,Eq,Ord) noComments ::EpAnnCO -noComments = EpAnn (Anchor placeholderRealSpan UnchangedAnchor) NoEpAnns emptyComments +noComments = EpAnn noSpanAnchor NoEpAnns emptyComments -- TODO:AZ get rid of this placeholderRealSpan :: RealSrcSpan placeholderRealSpan = realSrcLocSpan (mkRealSrcLoc (mkFastString "placeholder") (-1) (-1)) comment :: RealSrcSpan -> EpAnnComments -> EpAnnCO -comment loc cs = EpAnn (Anchor loc UnchangedAnchor) NoEpAnns cs +comment loc cs = EpAnn (EpaSpan (RealSrcSpan loc Strict.Nothing)) NoEpAnns cs -- --------------------------------------------------------------------- -- Utilities for managing comments in an `EpAnn a` structure. @@ -1096,24 +1263,35 @@ comment loc cs = EpAnn (Anchor loc UnchangedAnchor) NoEpAnns cs -- AST prior to exact printing the changed one. addCommentsToSrcAnn :: (Monoid ann) => SrcAnn ann -> EpAnnComments -> SrcAnn ann addCommentsToSrcAnn (SrcSpanAnn EpAnnNotUsed loc) cs - = SrcSpanAnn (EpAnn (Anchor (realSrcSpan loc) UnchangedAnchor) mempty cs) loc + = SrcSpanAnn (EpAnn (spanAsAnchor loc) mempty cs) loc addCommentsToSrcAnn (SrcSpanAnn (EpAnn a an cs) loc) cs' = SrcSpanAnn (EpAnn a an (cs <> cs')) loc +-- | Add additional comments to a 'SrcAnn', used for manipulating the +-- AST prior to exact printing the changed one. +addCommentsToEpAnnS :: (Monoid ann) => EpAnnS ann -> EpAnnComments -> EpAnnS ann +addCommentsToEpAnnS (EpAnnS a an cs) cs' = (EpAnnS a an (cs <> cs')) + -- | Replace any existing comments on a 'SrcAnn', used for manipulating the -- AST prior to exact printing the changed one. setCommentsSrcAnn :: (Monoid ann) => SrcAnn ann -> EpAnnComments -> SrcAnn ann setCommentsSrcAnn (SrcSpanAnn EpAnnNotUsed loc) cs - = SrcSpanAnn (EpAnn (Anchor (realSrcSpan loc) UnchangedAnchor) mempty cs) loc + = SrcSpanAnn (EpAnn (spanAsAnchor loc) mempty cs) loc setCommentsSrcAnn (SrcSpanAnn (EpAnn a an _) loc) cs = SrcSpanAnn (EpAnn a an cs) loc +-- | Replace any existing comments on a 'SrcAnn', used for manipulating the +-- AST prior to exact printing the changed one. +setCommentsEpAnnS :: EpAnnS ann -> EpAnnComments -> EpAnnS ann +setCommentsEpAnnS (EpAnnS a an _) cs = (EpAnnS a an cs) + + -- | Add additional comments, used for manipulating the -- AST prior to exact printing the changed one. addCommentsToEpAnn :: (Monoid a) => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a addCommentsToEpAnn loc EpAnnNotUsed cs - = EpAnn (Anchor (realSrcSpan loc) UnchangedAnchor) mempty cs + = EpAnn (spanAsAnchor loc) mempty cs addCommentsToEpAnn _ (EpAnn a an ocs) ncs = EpAnn a an (ocs <> ncs) -- | Replace any existing comments, used for manipulating the @@ -1121,32 +1299,34 @@ addCommentsToEpAnn _ (EpAnn a an ocs) ncs = EpAnn a an (ocs <> ncs) setCommentsEpAnn :: (Monoid a) => SrcSpan -> EpAnn a -> EpAnnComments -> EpAnn a setCommentsEpAnn loc EpAnnNotUsed cs - = EpAnn (Anchor (realSrcSpan loc) UnchangedAnchor) mempty cs + = EpAnn (spanAsAnchor loc) mempty cs setCommentsEpAnn _ (EpAnn a an _) cs = EpAnn a an cs -- | Transfer comments and trailing items from the annotations in the -- first 'SrcSpanAnnA' argument to those in the second. transferAnnsA :: SrcSpanAnnA -> SrcSpanAnnA -> (SrcSpanAnnA, SrcSpanAnnA) -transferAnnsA from@(SrcSpanAnn EpAnnNotUsed _) to = (from, to) -transferAnnsA (SrcSpanAnn (EpAnn a an cs) l) to - = ((SrcSpanAnn (EpAnn a mempty emptyComments) l), to') - where - to' = case to of - (SrcSpanAnn EpAnnNotUsed loc) - -> SrcSpanAnn (EpAnn (Anchor (realSrcSpan loc) UnchangedAnchor) an cs) loc - (SrcSpanAnn (EpAnn a an' cs') loc) - -> SrcSpanAnn (EpAnn a (an' <> an) (cs' <> cs)) loc +transferAnnsA (EpAnnS a an cs) (EpAnnS a' an' cs') + = (EpAnnS a mempty emptyComments, EpAnnS a' (an' <> an) (cs' <> cs)) + +-- | Remove the exact print annotations payload, leaving only the +-- anchor and comments. +commentsOnlyA :: Monoid ann => EpAnnS ann -> EpAnnS ann +commentsOnlyA (EpAnnS a _ cs) = (EpAnnS a mempty cs) -- | Remove the exact print annotations payload, leaving only the -- anchor and comments. -commentsOnlyA :: Monoid ann => SrcAnn ann -> SrcAnn ann -commentsOnlyA (SrcSpanAnn EpAnnNotUsed loc) = SrcSpanAnn EpAnnNotUsed loc -commentsOnlyA (SrcSpanAnn (EpAnn a _ cs) loc) = (SrcSpanAnn (EpAnn a mempty cs) loc) +commentsOnlyI :: Monoid ann => SrcAnn ann -> SrcAnn ann +commentsOnlyI (SrcSpanAnn EpAnnNotUsed loc) = SrcSpanAnn EpAnnNotUsed loc +commentsOnlyI (SrcSpanAnn (EpAnn a _ cs) loc) = (SrcSpanAnn (EpAnn a mempty cs) loc) + +-- | Remove the comments, leaving the exact print annotations payload +removeCommentsA :: EpAnnS ann -> EpAnnS ann +removeCommentsA (EpAnnS a an _) = (EpAnnS a an emptyComments) -- | Remove the comments, leaving the exact print annotations payload -removeCommentsA :: SrcAnn ann -> SrcAnn ann -removeCommentsA (SrcSpanAnn EpAnnNotUsed loc) = SrcSpanAnn EpAnnNotUsed loc -removeCommentsA (SrcSpanAnn (EpAnn a an _) loc) +removeCommentsI :: SrcAnn ann -> SrcAnn ann +removeCommentsI (SrcSpanAnn EpAnnNotUsed loc) = SrcSpanAnn EpAnnNotUsed loc +removeCommentsI (SrcSpanAnn (EpAnn a an _) loc) = (SrcSpanAnn (EpAnn a an emptyComments) loc) -- --------------------------------------------------------------------- @@ -1167,11 +1347,22 @@ instance (Semigroup a) => Semigroup (EpAnn a) where -- annotations must follow it. So we combine them which yields the -- largest span -instance Ord Anchor where - compare (Anchor s1 _) (Anchor s2 _) = compare s1 s2 +instance (Semigroup a) => Semigroup (EpAnnS a) where + (EpAnnS l1 a1 b1) <> (EpAnnS l2 a2 b2) = EpAnnS (l1 <> l2) (a1 <> a2) (b1 <> b2) + -- The critical part about the anchor is its left edge, and all + -- annotations must follow it. So we combine them which yields the + -- largest span + + +-- instance Ord Anchor where +-- compare (Anchor s1 _) (Anchor s2 _) = compare s1 s2 instance Semigroup Anchor where - Anchor r1 o1 <> Anchor r2 _ = Anchor (combineRealSrcSpans r1 r2) o1 + EpaSpan s1 <> EpaSpan s2 = EpaSpan (combineSrcSpans s1 s2) + EpaSpan s1 <> _ = EpaSpan s1 + _ <> EpaSpan s2 = EpaSpan s2 + EpaDelta dp1 cs1 <> EpaDelta _dp2 cs2 = EpaDelta dp1 (cs1<>cs2) + instance Semigroup EpAnnComments where EpaComments cs1 <> EpaComments cs2 = EpaComments (cs1 ++ cs2) @@ -1186,6 +1377,10 @@ instance (Monoid a) => Monoid (EpAnn a) where instance Semigroup NoEpAnns where _ <> _ = NoEpAnns +instance Monoid NoEpAnns where + mempty = NoEpAnns + + instance Semigroup AnnListItem where (AnnListItem l1) <> (AnnListItem l2) = AnnListItem (l1 <> l2) @@ -1212,12 +1407,12 @@ instance Monoid NameAnn where mempty = NameAnnTrailing [] -instance Semigroup AnnSortKey where +instance (Semigroup a) => Semigroup (AnnSortKey a) where NoAnnSortKey <> x = x x <> NoAnnSortKey = x AnnSortKey ls1 <> AnnSortKey ls2 = AnnSortKey (ls1 <> ls2) -instance Monoid AnnSortKey where +instance (Semigroup a) => Monoid (AnnSortKey a) where mempty = NoAnnSortKey instance (Outputable a) => Outputable (EpAnn a) where @@ -1227,9 +1422,6 @@ instance (Outputable a) => Outputable (EpAnn a) where instance Outputable NoEpAnns where ppr NoEpAnns = text "NoEpAnns" -instance Outputable Anchor where - ppr (Anchor a o) = text "Anchor" <+> ppr a <+> ppr o - instance Outputable AnchorOperation where ppr UnchangedAnchor = text "UnchangedAnchor" ppr (MovedAnchor d) = text "MovedAnchor" <+> ppr d @@ -1246,12 +1438,15 @@ instance Outputable EpAnnComments where ppr (EpaCommentsBalanced cs ts) = text "EpaCommentsBalanced" <+> ppr cs <+> ppr ts instance (NamedThing (Located a)) => NamedThing (LocatedAn an a) where + getName (L l a) = getName (L (locI l) a) + +instance (NamedThing (Located a)) => NamedThing (LocatedAnS an a) where getName (L l a) = getName (L (locA l) a) instance Outputable AnnContext where ppr (AnnContext a o c) = text "AnnContext" <+> ppr a <+> ppr o <+> ppr c -instance Outputable AnnSortKey where +instance (Outputable a) => Outputable (AnnSortKey a) where ppr NoAnnSortKey = text "NoAnnSortKey" ppr (AnnSortKey ls) = text "AnnSortKey" <+> ppr ls @@ -1265,11 +1460,23 @@ instance (Outputable a, Outputable e) => Outputable (GenLocated (SrcSpanAnn' a) e) where ppr = pprLocated +instance (Outputable a) => Outputable (EpAnnS a) where + ppr (EpAnnS anc an cs) = text "EpAnnS" <+> ppr anc <+> ppr an <+> ppr cs + +instance (Outputable a, Outputable e) + => Outputable (LocatedAnS a e) where + ppr = pprLocated + instance (Outputable a, OutputableBndr e) => OutputableBndr (GenLocated (SrcSpanAnn' a) e) where pprInfixOcc = pprInfixOcc . unLoc pprPrefixOcc = pprPrefixOcc . unLoc +instance (Outputable a, OutputableBndr e) + => OutputableBndr (LocatedAnS a e) where + pprInfixOcc = pprInfixOcc . unLoc + pprPrefixOcc = pprPrefixOcc . unLoc + instance Outputable AnnListItem where ppr (AnnListItem ts) = text "AnnListItem" <+> ppr ts diff --git a/compiler/GHC/Parser/HaddockLex.x b/compiler/GHC/Parser/HaddockLex.x index 52e67894b5..df281db933 100644 --- a/compiler/GHC/Parser/HaddockLex.x +++ b/compiler/GHC/Parser/HaddockLex.x @@ -187,7 +187,7 @@ validateIdentWith identParser mloc str0 = pstate = initParserState pflags buffer realSrcLc in case unP identParser pstate of POk _ name -> Just $ case mloc of - RealSrcSpan _ _ -> reLoc name + RealSrcSpan _ _ -> reLocN name UnhelpfulSpan _ -> L mloc (unLoc name) -- Preserve the original reason _ -> Nothing } diff --git a/compiler/GHC/Parser/Lexer.x b/compiler/GHC/Parser/Lexer.x index 380a30ca78..fd0aab174a 100644 --- a/compiler/GHC/Parser/Lexer.x +++ b/compiler/GHC/Parser/Lexer.x @@ -3643,7 +3643,8 @@ warn_unknown_prag prags span buf len buf2 = do -- 'AddEpAnn' values for the opening and closing bordering on the start -- and end of the span mkParensEpAnn :: RealSrcSpan -> (AddEpAnn, AddEpAnn) -mkParensEpAnn ss = (AddEpAnn AnnOpenP (EpaSpan lo Strict.Nothing),AddEpAnn AnnCloseP (EpaSpan lc Strict.Nothing)) +mkParensEpAnn ss = (AddEpAnn AnnOpenP (EpaSpan (RealSrcSpan lo Strict.Nothing)), + AddEpAnn AnnCloseP (EpaSpan (RealSrcSpan lc Strict.Nothing))) where f = srcSpanFile ss sl = srcSpanStartLine ss diff --git a/compiler/GHC/Parser/PostProcess.hs b/compiler/GHC/Parser/PostProcess.hs index 0b7053dcbb..470cd630a8 100644 --- a/compiler/GHC/Parser/PostProcess.hs +++ b/compiler/GHC/Parser/PostProcess.hs @@ -286,7 +286,7 @@ mkStandaloneKindSig loc lhs rhs anns = check_lhs_name v@(unLoc->name) = if isUnqual name && isTcOcc (rdrNameOcc name) then return v - else addFatalError $ mkPlainErrorMsgEnvelope (getLocA v) $ + else addFatalError $ mkPlainErrorMsgEnvelope (getLocN v) $ (PsErrUnexpectedQualifiedConstructor (unLoc v)) check_singular_lhs vs = case vs of @@ -337,21 +337,6 @@ mkDataFamInst loc new_or_data cType (mcxt, bndrs, tycl_hdr) , feqn_fixity = fixity , feqn_rhs = defn })))) } --- 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 anns' = addAnns (EpAnn (spanAsAnchor loc) ann cs) anns emptyComments --- ; defn <- mkDataDefn new_or_data cType mcxt ksig data_cons maybe_deriv --- ; return (L (noAnnSrcSpan loc) (DataFamInstD anns' (DataFamInstDecl --- (FamEqn { feqn_ext = anns' --- , feqn_tycon = tc --- , feqn_bndrs = bndrs --- , feqn_pats = tparams --- , feqn_fixity = fixity --- , feqn_rhs = defn })))) } - - mkTyFamInst :: SrcSpan -> TyFamInstEqn GhcPs @@ -404,15 +389,15 @@ mkSpliceDecl :: LHsExpr GhcPs -> P (LHsDecl GhcPs) mkSpliceDecl lexpr@(L loc expr) | HsUntypedSplice _ splice@(HsUntypedSpliceExpr {}) <- expr = do cs <- getCommentsFor (locA loc) - return $ L (addCommentsToSrcAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) + return $ L (addCommentsToEpAnnS loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) | HsUntypedSplice _ splice@(HsQuasiQuote {}) <- expr = do cs <- getCommentsFor (locA loc) - return $ L (addCommentsToSrcAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) + return $ L (addCommentsToEpAnnS loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc splice) DollarSplice) | otherwise = do cs <- getCommentsFor (locA loc) - return $ L (addCommentsToSrcAnn loc cs) $ SpliceD noExtField (SpliceDecl noExtField + return $ L (addCommentsToEpAnnS loc cs) $ SpliceD noExtField (SpliceDecl noExtField (L loc (HsUntypedSpliceExpr noAnn lexpr)) BareSplice) @@ -471,27 +456,30 @@ annBinds a cs (HsIPBinds an bs) = (HsIPBinds (add_where a an cs) bs, Nothing) annBinds _ cs (EmptyLocalBinds x) = (EmptyLocalBinds x, Just cs) add_where :: AddEpAnn -> EpAnn AnnList -> EpAnnComments -> EpAnn AnnList -add_where an@(AddEpAnn _ (EpaSpan rs _)) (EpAnn a (AnnList anc o c r t) cs) cs2 - | valid_anchor (anchor a) +add_where an@(AddEpAnn _ (EpaSpan (RealSrcSpan rs _))) (EpAnn a (AnnList anc o c r t) cs) cs2 + | valid_anchor a = EpAnn (widenAnchor a [an]) (AnnList anc o c (an:r) t) (cs Semi.<> cs2) | otherwise = EpAnn (patch_anchor rs a) (AnnList (fmap (patch_anchor rs) anc) o c (an:r) t) (cs Semi.<> cs2) -add_where an@(AddEpAnn _ (EpaSpan rs _)) EpAnnNotUsed cs - = EpAnn (Anchor rs UnchangedAnchor) - (AnnList (Just $ Anchor rs UnchangedAnchor) Nothing Nothing [an] []) cs -add_where (AddEpAnn _ (EpaDelta _ _)) _ _ = panic "add_where" +add_where an@(AddEpAnn _ (EpaSpan (RealSrcSpan rs mb))) EpAnnNotUsed cs + = EpAnn (EpaSpan (RealSrcSpan rs mb)) + (AnnList (Just $ EpaSpan (RealSrcSpan rs mb)) Nothing Nothing [an] []) cs +add_where (AddEpAnn _ _) _ _ = panic "add_where" -- EpaDelta should only be used for transformations -valid_anchor :: RealSrcSpan -> Bool -valid_anchor r = srcSpanStartLine r >= 0 +valid_anchor :: Anchor -> Bool +valid_anchor (EpaSpan _) = True +valid_anchor (EpaDelta _ _) = False -- If the decl list for where binds is empty, the anchor ends up -- invalid. In this case, use the parent one patch_anchor :: RealSrcSpan -> Anchor -> Anchor -patch_anchor r1 (Anchor r0 op) = Anchor r op +patch_anchor r (EpaDelta _ _) = EpaSpan (RealSrcSpan r Strict.Nothing) +patch_anchor r1 (EpaSpan (RealSrcSpan r0 mb)) = EpaSpan (RealSrcSpan r mb) where r = if srcSpanStartLine r0 < 0 then r1 else r0 +patch_anchor _ (EpaSpan ss) = EpaSpan ss fixValbindsAnn :: EpAnn AnnList -> EpAnn AnnList fixValbindsAnn EpAnnNotUsed = EpAnnNotUsed @@ -500,10 +488,11 @@ fixValbindsAnn (EpAnn anchor (AnnList ma o c r t) cs) -- | The 'Anchor' for a stmtlist is based on either the location or -- the first semicolon annotion. -stmtsAnchor :: Located (OrdList AddEpAnn,a) -> Anchor -stmtsAnchor (L l ((ConsOL (AddEpAnn _ (EpaSpan r _)) _), _)) - = widenAnchorR (Anchor (realSrcSpan l) UnchangedAnchor) r -stmtsAnchor (L l _) = Anchor (realSrcSpan l) UnchangedAnchor +stmtsAnchor :: Located (OrdList AddEpAnn,a) -> Maybe Anchor +stmtsAnchor (L (RealSrcSpan l mb) ((ConsOL (AddEpAnn _ (EpaSpan (RealSrcSpan r rb))) _), _)) + = Just $ widenAnchorS (EpaSpan (RealSrcSpan l mb)) (RealSrcSpan r rb) +stmtsAnchor (L (RealSrcSpan l mb) _) = Just $ EpaSpan (RealSrcSpan l mb) +stmtsAnchor _ = Nothing stmtsLoc :: Located (OrdList AddEpAnn,a) -> SrcSpan stmtsLoc (L l ((ConsOL aa _), _)) @@ -675,7 +664,7 @@ tyConToDataCon (L loc tc) = return (L loc (setRdrNameSpace tc srcDataName)) | otherwise - = Left $ mkPlainErrorMsgEnvelope (locA loc) $ (PsErrNotADataCon tc) + = Left $ mkPlainErrorMsgEnvelope (locN loc) $ (PsErrNotADataCon tc) where occ = rdrNameOcc tc @@ -684,7 +673,7 @@ mkPatSynMatchGroup :: LocatedN RdrName -> P (MatchGroup GhcPs (LHsExpr GhcPs)) mkPatSynMatchGroup (L loc patsyn_name) (L ld decls) = do { matches <- mapM fromDecl (fromOL decls) - ; when (null matches) (wrongNumberErr (locA loc)) + ; when (null matches) (wrongNumberErr (locN loc)) ; return $ mkMatchGroup FromSource (L ld matches) } where fromDecl (L loc decl@(ValD _ (PatBind _ @@ -772,7 +761,7 @@ mkGadtDecl loc names dcol ty = do return noHsUniTok return ( RecConGADT (L (SrcSpanAnn an' (locA loc')) rf) arr, res_ty - , [], epAnnComments (ann ll)) + , [], s_comments ll) _ -> do let (anns, cs, arg_types, res_type) = splitHsFunType body_ty return (PrefixConGADT arg_types, res_type, anns, cs) @@ -900,7 +889,7 @@ checkTyVars pp_what equals_or_where tc tparms -> P (LHsTyVarBndr () GhcPs) chkParens ops cps cs (L l (HsParTy an ty)) = let - (o,c) = mkParensEpAnn (realSrcSpan $ locA l) + (o,c) = mkParensEpAnn (realSrcSpan "checkTyVars" $ locA l) in chkParens (o:ops) (c:cps) (cs Semi.<> epAnnComments an) ty chkParens ops cps cs ty = chk ops cps cs ty @@ -912,14 +901,14 @@ checkTyVars pp_what equals_or_where tc tparms = let an = (reverse ops) ++ cps in - return (L (widenLocatedAn (l Semi.<> annt) an) + return (L (widenEpAnnS (l Semi.<> annt) an) (KindedTyVar (addAnns (annk Semi.<> ann) an cs) () (L lv tv) k)) chk ops cps cs (L l (HsTyVar ann _ (L ltv tv))) | isRdrTyVar tv = let an = (reverse ops) ++ cps in - return (L (widenLocatedAn l an) + return (L (widenEpAnnS l an) (UserTyVar (addAnns ann an cs) () (L ltv tv))) chk _ _ _ t@(L loc _) = addFatalError $ mkPlainErrorMsgEnvelope (locA loc) $ @@ -935,7 +924,7 @@ checkDatatypeContext :: Maybe (LHsContext GhcPs) -> P () checkDatatypeContext Nothing = return () checkDatatypeContext (Just c) = do allowed <- getBit DatatypeContextsBit - unless allowed $ addError $ mkPlainErrorMsgEnvelope (getLocA c) $ + unless allowed $ addError $ mkPlainErrorMsgEnvelope (getLocI c) $ (PsErrIllegalDataTypeContext c) type LRuleTyTmVar = LocatedAn NoEpAnns RuleTyTmVar @@ -952,10 +941,11 @@ mkRuleBndrs = fmap (fmap cvt_one) -- turns RuleTyTmVars into HsTyVarBndrs - this is more interesting mkRuleTyVarBndrs :: [LRuleTyTmVar] -> [LHsTyVarBndr () GhcPs] mkRuleTyVarBndrs = fmap cvt_one + -- where cvt_one (L l (RuleTyTmVar ann v Nothing)) where cvt_one (L l (RuleTyTmVar ann v Nothing)) - = L (l2l l) (UserTyVar ann () (fmap tm_to_ty v)) + = L (l2ln l) (UserTyVar ann () (fmap tm_to_ty v)) cvt_one (L l (RuleTyTmVar ann v (Just sig))) - = L (l2l l) (KindedTyVar ann () (fmap tm_to_ty v) sig) + = L (l2ln l) (KindedTyVar ann () (fmap tm_to_ty v) sig) -- takes something in namespace 'varName' to something in namespace 'tvName' tm_to_ty (Unqual occ) = Unqual (setOccNameSpace tvName occ) tm_to_ty _ = panic "mkRuleTyVarBndrs" @@ -1018,11 +1008,11 @@ checkTyClHdr is_cls ty | isRdrTc tc = return (ltc, HsValArg t1:HsValArg t2:acc, Infix, (reverse ops) ++ cps) go l (HsParTy _ ty) acc ops cps fix = goL ty acc (o:ops) (c:cps) fix where - (o,c) = mkParensEpAnn (realSrcSpan l) + (o,c) = mkParensEpAnn (realSrcSpan "checkTyClHdr" l) go _ (HsAppTy _ t1 t2) acc ops cps fix = goL t1 (HsValArg t2:acc) ops cps fix go _ (HsAppKindTy _ ty at ki) acc ops cps fix = goL ty (HsTypeArg at ki:acc) ops cps fix go l (HsTupleTy _ HsBoxedOrConstraintTuple ts) [] ops cps fix - = return (L (noAnnSrcSpan l) (nameRdrName tup_name) + = return (L (noAnnSrcSpanN l) (nameRdrName tup_name) , map HsValArg ts, fix, (reverse ops)++cps) where arity = length ts @@ -1036,17 +1026,13 @@ 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 (SrcSpanAnn EpAnnNotUsed l) (EpAnn as (AnnParen _ o c) cs) = - let - lr = combineRealSrcSpans (realSrcSpan l) (anchor as) - an = (EpAnn (Anchor lr UnchangedAnchor) (NameAnn NameParens o (srcSpan2e l) c []) cs) - in SrcSpanAnn an (RealSrcSpan lr Strict.Nothing) newAnns _ EpAnnNotUsed = panic "missing AnnParen" - newAnns (SrcSpanAnn (EpAnn ap (AnnListItem ta) csp) l) (EpAnn as (AnnParen _ o c) cs) = + newAnns (EpAnnS ap (AnnListItem ta) csp) (EpAnn as (AnnParen _ o c) cs) = let - lr = combineRealSrcSpans (anchor ap) (anchor as) - an = (EpAnn (Anchor lr UnchangedAnchor) (NameAnn NameParens o (srcSpan2e l) c ta) (csp Semi.<> cs)) - in SrcSpanAnn an (RealSrcSpan lr Strict.Nothing) + lr = ap Semi.<> as + in (EpAnnS lr + (NameAnn NameParens o ap c ta) + (csp Semi.<> cs)) -- | Yield a parse error if we have a function applied directly to a do block -- etc. and BlockArguments is not enabled. @@ -1091,9 +1077,10 @@ checkCmdBlockArguments :: LHsCmd GhcPs -> PV () -- (((Eq a))) --> [Eq a] -- @ checkContext :: LHsType GhcPs -> P (LHsContext GhcPs) -checkContext orig_t@(L (SrcSpanAnn _ l) _orig_t) = +checkContext orig_t@(L a _orig_t) = check ([],[],emptyComments) orig_t where + l = spanFromAnchor $ s_entry a check :: ([EpaLocation],[EpaLocation],EpAnnComments) -> LHsType GhcPs -> P (LHsContext GhcPs) check (oparens,cparens,cs) (L _l (HsTupleTy ann' HsBoxedOrConstraintTuple ts)) @@ -1195,7 +1182,7 @@ checkAPat loc e0 = do -- Overloaded numeric patterns (e.g. f 0 x = x) -- Negation is recorded separately, so that the literal is zero or +ve -- NB. Negative *primitive* literals are already handled by the lexer - PatBuilderOverLit pos_lit -> return (mkNPat (L (l2l loc) pos_lit) Nothing noAnn) + PatBuilderOverLit pos_lit -> return (mkNPat (L (nn2la loc) pos_lit) Nothing noAnn) -- n+k patterns PatBuilderOpApp @@ -1204,12 +1191,12 @@ checkAPat loc e0 = do (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 (epaLocationFromSrcAnn l) cs)) + -> return (mkNPlusKPat (L nloc n) (L (nn2la lloc) lit) + (EpAnn anc (epaLocationFromEpAnnS l) cs)) -- Improve error messages for the @-operator when the user meant an @-pattern PatBuilderOpApp _ op _ _ | opIsAt (unLoc op) -> do - addError $ mkPlainErrorMsgEnvelope (getLocA op) PsErrAtInPatPos + addError $ mkPlainErrorMsgEnvelope (getLocN op) PsErrAtInPatPos return (WildPat noExtField) PatBuilderOpApp l (L cl c) r anns @@ -1234,7 +1221,7 @@ placeHolderPunRhs :: DisambECP b => PV (LocatedA b) -- The RHS of a punned record field will be filled in by the renamer -- It's better not to make it an error, in case we want to print it when -- debugging -placeHolderPunRhs = mkHsVarPV (noLocA pun_RDR) +placeHolderPunRhs = mkHsVarPV (noLocN pun_RDR) plus_RDR, pun_RDR :: RdrName plus_RDR = mkUnqual varName (fsLit "+") -- Hack @@ -1288,7 +1275,7 @@ 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) + return (makeFunBind fun (L (noAnnSrcSpanI $ locA match_span) [L match_span (Match { m_ext = EpAnn (spanAsAnchor locF) ann cs , m_ctxt = FunRhs { mc_fun = fun @@ -1319,7 +1306,7 @@ checkPatBind :: SrcSpan -> P (HsBind GhcPs) checkPatBind loc annsIn (L _ (BangPat (EpAnn _ ans cs) (L _ (VarPat _ v)))) (L _match_span grhss) - = return (makeFunBind v (L (noAnnSrcSpan loc) + = return (makeFunBind v (L (noAnnSrcSpanI loc) [L (noAnnSrcSpan loc) (m (EpAnn (spanAsAnchor loc) (ans++annsIn) cs) v)])) where m a v = Match { m_ext = a @@ -1369,7 +1356,7 @@ isFunLhs e = go e [] [] [] go (L _ (PatBuilderApp f e)) es ops cps = go f (e:es) ops cps go (L l (PatBuilderPar _ e _)) es@(_:_) ops cps = let - (o,c) = mkParensEpAnn (realSrcSpan $ locA l) + (o,c) = mkParensEpAnn (realSrcSpan "checkDoAndIfThenElse" $ 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 @@ -1464,8 +1451,8 @@ class DisambInfixOp b where mkHsInfixHolePV :: SrcSpan -> (EpAnnComments -> EpAnn EpAnnUnboundVar) -> PV (Located b) instance DisambInfixOp (HsExpr GhcPs) where - mkHsVarOpPV v = return $ L (getLoc v) (HsVar noExtField v) - mkHsConOpPV v = return $ L (getLoc v) (HsVar noExtField v) + mkHsVarOpPV v = return $ L (l2l $ getLoc v) (HsVar noExtField v) + mkHsConOpPV v = return $ L (l2l $ getLoc v) (HsVar noExtField v) mkHsInfixHolePV l ann = do cs <- getCommentsFor l return $ L l (hsHoleExpr (ann cs)) @@ -1476,7 +1463,7 @@ instance DisambInfixOp RdrName where mkHsInfixHolePV l _ = addFatalError $ mkPlainErrorMsgEnvelope l $ PsErrInvalidInfixHole type AnnoBody b - = ( Anno (GRHS GhcPs (LocatedA (Body b GhcPs))) ~ SrcAnn NoEpAnns + = ( Anno (GRHS GhcPs (LocatedA (Body b GhcPs))) ~ EpAnnS NoEpAnns , 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 @@ -1555,7 +1542,7 @@ class (b ~ (Body b) GhcPs, AnnoBody b) => DisambECP b where -- | Disambiguate a monomorphic literal mkHsLitPV :: Located (HsLit GhcPs) -> PV (Located b) -- | Disambiguate an overloaded literal - mkHsOverLitPV :: LocatedAn a (HsOverLit GhcPs) -> PV (LocatedAn a b) + mkHsOverLitPV :: LocatedA (HsOverLit GhcPs) -> PV (LocatedA b) -- | Disambiguate a wildcard mkHsWildCardPV :: SrcSpan -> PV (Located b) -- | Disambiguate "a :: t" (type annotation) @@ -1654,7 +1641,7 @@ instance DisambECP (HsCmd GhcPs) where type InfixOp (HsCmd GhcPs) = HsExpr GhcPs superInfixOp m = m mkHsOpAppPV l c1 op c2 = do - let cmdArg c = L (l2l $ getLoc c) $ HsCmdTop noExtField c + let cmdArg (L l c) = L (l2l l) $ HsCmdTop noExtField (L l c) cs <- getCommentsFor l return $ L (noAnnSrcSpan l) $ HsCmdArrForm (EpAnn (spanAsAnchor l) (AnnList Nothing Nothing Nothing [] []) cs) (reLocL op) Infix Nothing [cmdArg c1, cmdArg c2] mkHsCasePV l c (L lm m) anns = do @@ -1671,7 +1658,7 @@ instance DisambECP (HsCmd GhcPs) where cs <- getCommentsFor (locA l) checkCmdBlockArguments c checkExpBlockArguments e - return $ L l (HsCmdApp (comment (realSrcSpan $ locA l) cs) c e) + return $ L l (HsCmdApp (comment (realSrcSpan "mkHsAppPV" $ locA l) cs) 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 @@ -1684,7 +1671,7 @@ instance DisambECP (HsCmd GhcPs) where mkHsParPV l lpar c rpar = do cs <- getCommentsFor l return $ L (noAnnSrcSpan l) (HsCmdPar (EpAnn (spanAsAnchor l) NoEpAnns cs) lpar c rpar) - mkHsVarPV (L l v) = cmdFail (locA l) (ppr v) + mkHsVarPV (L l v) = cmdFail (locN l) (ppr v) mkHsLitPV (L l a) = cmdFail l (ppr a) mkHsOverLitPV (L l a) = cmdFail (locA l) (ppr a) mkHsWildCardPV l = cmdFail l (text "_") @@ -1757,7 +1744,7 @@ instance DisambECP (HsExpr GhcPs) where cs <- getCommentsFor (locA l) checkExpBlockArguments e1 checkExpBlockArguments e2 - return $ L l (HsApp (comment (realSrcSpan $ locA l) cs) e1 e2) + return $ L l (HsApp (comment (realSrcSpan "mkHsAppPV" $ locA l) cs) e1 e2) mkHsAppTypePV l e at t = do checkExpBlockArguments e return $ L l (HsAppType noExtField e at (mkHsWildCardBndrs t)) @@ -1771,13 +1758,13 @@ instance DisambECP (HsExpr GhcPs) where mkHsParPV l lpar e rpar = do cs <- getCommentsFor l return $ L (noAnnSrcSpan l) (HsPar (EpAnn (spanAsAnchor l) NoEpAnns cs) lpar e rpar) - mkHsVarPV v@(L l _) = return $ L (na2la l) (HsVar noExtField v) + mkHsVarPV v@(L l _) = return $ L (l2l l) (HsVar noExtField v) mkHsLitPV (L l a) = do cs <- getCommentsFor l - return $ L l (HsLit (comment (realSrcSpan l) cs) a) + return $ L l (HsLit (comment (realSrcSpan "mkHsLitPV" l) cs) a) mkHsOverLitPV (L l a) = do cs <- getCommentsFor (locA l) - return $ L l (HsOverLit (comment (realSrcSpan (locA l)) cs) a) + return $ L l (HsOverLit (comment (realSrcSpan "mkHsOverLitPV" (locA l)) cs) a) mkHsWildCardPV l = return $ L l (hsHoleExpr noAnn) mkHsTySigPV l a sig anns = do cs <- getCommentsFor (locA l) @@ -1797,7 +1784,7 @@ instance DisambECP (HsExpr GhcPs) where return $ L (noAnnSrcSpan l) (NegApp (EpAnn (spanAsAnchor l) anns cs) a noSyntaxExpr) mkHsSectionR_PV l op e = do cs <- getCommentsFor l - return $ L l (SectionR (comment (realSrcSpan l) cs) op e) + return $ L l (SectionR (comment (realSrcSpan "mkHsSectionR" l) cs) 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) @@ -1842,7 +1829,7 @@ instance DisambECP (PatBuilder GhcPs) where mkHsIfPV l _ _ _ _ _ _ = addFatalError $ mkPlainErrorMsgEnvelope l PsErrIfThenElseInPat mkHsDoPV l _ _ _ = addFatalError $ mkPlainErrorMsgEnvelope l PsErrDoNotationInPat mkHsParPV l lpar p rpar = return $ L (noAnnSrcSpan l) (PatBuilderPar lpar p rpar) - mkHsVarPV v@(getLoc -> l) = return $ L (na2la l) (PatBuilderVar v) + 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)) @@ -1867,7 +1854,7 @@ instance DisambECP (PatBuilder GhcPs) where checkRecordSyntax (L (noAnnSrcSpan l) r) mkHsNegAppPV l (L lp p) anns = do lit <- case p of - PatBuilderOverLit pos_lit -> return (L (l2l lp) pos_lit) + PatBuilderOverLit pos_lit -> return (L (nn2la lp) pos_lit) _ -> patFail l $ PsErrInPat p PEIP_NegApp cs <- getCommentsFor l let an = EpAnn (spanAsAnchor l) anns cs @@ -2041,7 +2028,7 @@ tyToDataConBuilder t = checkNotPromotedDataCon :: PromotionFlag -> LocatedN RdrName -> PV () checkNotPromotedDataCon NotPromoted _ = return () checkNotPromotedDataCon IsPromoted (L l name) = - addError $ mkPlainErrorMsgEnvelope (locA l) $ + addError $ mkPlainErrorMsgEnvelope (locN l) $ PsErrIllegalPromotionQuoteDataCon name {- Note [Ambiguous syntactic categories] @@ -2566,15 +2553,15 @@ mkRdrRecordUpd overloaded_on exp@(L loc _) fbinds anns = do -- The idea here is to convert the label to a singleton [FastString]. let f = occNameFS . rdrNameOcc $ rdr fl = DotFieldOcc noAnn (L loc (FieldLabelString f)) - lf = locA loc - in mkRdrProjUpdate l (L lf [L (l2l loc) fl]) (punnedVar f) pun anns + lf = locN loc + in mkRdrProjUpdate l (L lf [L (nn2la loc) fl]) (punnedVar f) pun anns where -- If punning, compute HsVar "f" otherwise just arg. This -- has the effect that sentinel HsVar "pun-rhs" is replaced -- by HsVar "f" here, before the update is written to a -- setField expressions. punnedVar :: FastString -> LHsExpr GhcPs - punnedVar f = if not pun then arg else noLocA . HsVar noExtField . noLocA . mkRdrUnqual . mkVarOccFS $ f + punnedVar f = if not pun then arg else noLocA . HsVar noExtField . noLocN . mkRdrUnqual . mkVarOccFS $ f mkRdrRecordCon :: LocatedN RdrName -> HsRecordBinds GhcPs -> EpAnn [AddEpAnn] -> HsExpr GhcPs @@ -2841,7 +2828,7 @@ mkTypeImpExp :: LocatedN RdrName -- TcCls or Var name space -> P (LocatedN RdrName) mkTypeImpExp name = do allowed <- getBit ExplicitNamespacesBit - unless allowed $ addError $ mkPlainErrorMsgEnvelope (getLocA name) $ + unless allowed $ addError $ mkPlainErrorMsgEnvelope (getLocN name) $ PsErrIllegalExplicitNamespace return (fmap (`setRdrNameSpace` tcClsName) name) @@ -2858,7 +2845,7 @@ checkImportSpec ie@(L _ specs) = mkImpExpSubSpec :: [LocatedA ImpExpQcSpec] -> P ([AddEpAnn], ImpExpSubSpec) mkImpExpSubSpec [] = return ([], ImpExpList []) mkImpExpSubSpec [L la ImpExpQcWildcard] = - return ([AddEpAnn AnnDotdot (la2e la)], ImpExpAll) + return ([AddEpAnn AnnDotdot (epaLocationFromEpAnnS la)], ImpExpAll) mkImpExpSubSpec xs = if (any (isImpExpQcWildcard . unLoc) xs) then return $ ([], ImpExpAllWith xs) @@ -2890,7 +2877,7 @@ failOpFewArgs :: MonadP m => LocatedN RdrName -> m a failOpFewArgs (L loc op) = do { star_is_type <- getBit StarIsTypeBit ; let is_star_type = if star_is_type then StarIsType else StarIsNotType - ; addFatalError $ mkPlainErrorMsgEnvelope (locA loc) $ + ; addFatalError $ mkPlainErrorMsgEnvelope (locN loc) $ (PsErrOpFewArgs is_star_type op) } ----------------------------------------------------------------------------- @@ -3112,7 +3099,7 @@ mkSumOrTuplePat l Boxed a@Sum{} _ = mkLHsOpTy :: PromotionFlag -> LHsType GhcPs -> LocatedN RdrName -> LHsType GhcPs -> LHsType GhcPs mkLHsOpTy prom x op y = - let loc = getLoc x `combineSrcSpansA` (noAnnSrcSpan $ getLocA op) `combineSrcSpansA` getLoc y + let loc = getLoc x `combineSrcSpansA` (noAnnSrcSpan $ getLocN op) `combineSrcSpansA` getLoc y in L loc (mkHsOpTy prom x op y) mkMultTy :: LHsToken "%" GhcPs -> LHsType GhcPs -> LHsUniToken "->" "→" GhcPs -> HsArrow GhcPs @@ -3127,14 +3114,14 @@ mkMultTy pct t arr = HsExplicitMult pct t arr mkTokenLocation :: SrcSpan -> TokenLocation mkTokenLocation (UnhelpfulSpan _) = NoTokenLoc -mkTokenLocation (RealSrcSpan r mb) = TokenLoc (EpaSpan r mb) +mkTokenLocation (RealSrcSpan r mb) = TokenLoc (EpaSpan (RealSrcSpan r mb)) -- Precondition: the TokenLocation has EpaSpan, never EpaDelta. token_location_widenR :: TokenLocation -> SrcSpan -> TokenLocation token_location_widenR NoTokenLoc _ = NoTokenLoc token_location_widenR tl (UnhelpfulSpan _) = tl -token_location_widenR (TokenLoc (EpaSpan r1 mb1)) (RealSrcSpan r2 mb2) = - (TokenLoc (EpaSpan (combineRealSrcSpans r1 r2) (liftA2 combineBufSpans mb1 mb2))) +token_location_widenR (TokenLoc (EpaSpan s1)) s2 = + (TokenLoc (EpaSpan (combineSrcSpans s1 s2))) token_location_widenR (TokenLoc (EpaDelta _ _)) _ = -- Never happens because the parser does not produce EpaDelta. panic "token_location_widenR: EpaDelta" @@ -3173,7 +3160,7 @@ mkRdrProjUpdate _ (L _ []) _ _ _ = panic "mkRdrProjUpdate: The impossible has ha mkRdrProjUpdate loc (L l flds) arg isPun anns = L loc HsFieldBind { hfbAnn = anns - , hfbLHS = L (noAnnSrcSpan l) (FieldLabelStrings flds) + , hfbLHS = L (noAnnSrcSpanI l) (FieldLabelStrings flds) , hfbRHS = arg , hfbPun = isPun } diff --git a/compiler/GHC/Parser/PostProcess/Haddock.hs b/compiler/GHC/Parser/PostProcess/Haddock.hs index 706423c099..b9449c4a7e 100644 --- a/compiler/GHC/Parser/PostProcess/Haddock.hs +++ b/compiler/GHC/Parser/PostProcess/Haddock.hs @@ -311,9 +311,9 @@ lexLHsDocString = fmap lexHsDocString -- Imports cannot have documentation comments anyway. instance HasHaddock (LocatedL [LocatedA (IE GhcPs)]) where addHaddock (L l_exports exports) = - extendHdkA (locA l_exports) $ do + extendHdkA (locI l_exports) $ do exports' <- addHaddockInterleaveItems NoLayoutInfo mkDocIE exports - registerLocHdkA (srcLocSpan (srcSpanEnd (locA l_exports))) -- Do not consume comments after the closing parenthesis + registerLocHdkA (srcLocSpan (srcSpanEnd (locI l_exports))) -- Do not consume comments after the closing parenthesis pure $ L l_exports exports' -- Needed to use 'addHaddockInterleaveItems' in 'instance HasHaddock (Located [LIE GhcPs])'. @@ -615,7 +615,7 @@ instance HasHaddock (Located [LocatedAn NoEpAnns (HsDerivingClause GhcPs)]) wher -- Not used for standalone deriving. instance HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) where addHaddock lderiv = - extendHdkA (getLocA lderiv) $ + extendHdkA (getLocI lderiv) $ for @(LocatedAn NoEpAnns) lderiv $ \deriv -> case deriv of HsDerivingClause { deriv_clause_ext, deriv_clause_strategy, deriv_clause_tys } -> do @@ -629,8 +629,8 @@ instance HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) where (register_strategy_before, register_strategy_after) = case deriv_clause_strategy of Nothing -> (pure (), pure ()) - Just (L l (ViaStrategy _)) -> (pure (), registerLocHdkA (locA l)) - Just (L l _) -> (registerLocHdkA (locA l), pure ()) + Just (L l (ViaStrategy _)) -> (pure (), registerLocHdkA (locI l)) + Just (L l _) -> (registerLocHdkA (locI l), pure ()) register_strategy_before deriv_clause_tys' <- addHaddock deriv_clause_tys register_strategy_after @@ -651,7 +651,7 @@ instance HasHaddock (LocatedAn NoEpAnns (HsDerivingClause GhcPs)) where -- ) instance HasHaddock (LocatedC (DerivClauseTys GhcPs)) where addHaddock (L l_dct dct) = - extendHdkA (locA l_dct) $ + extendHdkA (locI l_dct) $ case dct of DctSingle x ty -> do ty' <- addHaddock ty @@ -700,7 +700,7 @@ instance HasHaddock (LocatedA (ConDecl GhcPs)) where case con_decl of ConDeclGADT { con_g_ext, con_names, con_dcolon, con_bndrs, con_mb_cxt, con_g_args, con_res_ty } -> do -- discardHasInnerDocs is ok because we don't need this info for GADTs. - con_doc' <- discardHasInnerDocs $ getConDoc (getLocA (NE.head con_names)) + con_doc' <- discardHasInnerDocs $ getConDoc (getLocN (NE.head con_names)) con_g_args' <- case con_g_args of PrefixConGADT ts -> PrefixConGADT <$> addHaddock ts @@ -718,7 +718,7 @@ instance HasHaddock (LocatedA (ConDecl GhcPs)) where addConTrailingDoc (srcSpanEnd $ locA l_con_decl) $ case con_args of PrefixCon _ ts -> do - con_doc' <- getConDoc (getLocA con_name) + con_doc' <- getConDoc (getLocN con_name) ts' <- traverse addHaddockConDeclFieldTy ts pure $ L l_con_decl $ ConDeclH98 { con_ext, con_name, con_forall, con_ex_tvs, con_mb_cxt, @@ -726,14 +726,14 @@ instance HasHaddock (LocatedA (ConDecl GhcPs)) where con_args = PrefixCon noTypeArgs ts' } InfixCon t1 t2 -> do t1' <- addHaddockConDeclFieldTy t1 - con_doc' <- getConDoc (getLocA con_name) + con_doc' <- getConDoc (getLocN con_name) t2' <- addHaddockConDeclFieldTy t2 pure $ L l_con_decl $ ConDeclH98 { con_ext, con_name, con_forall, con_ex_tvs, con_mb_cxt, con_doc = lexLHsDocString <$> con_doc', con_args = InfixCon t1' t2' } RecCon (L l_rec flds) -> do - con_doc' <- getConDoc (getLocA con_name) + con_doc' <- getConDoc (getLocN con_name) flds' <- traverse addHaddockConDeclField flds pure $ L l_con_decl $ ConDeclH98 { con_ext, con_name, con_forall, con_ex_tvs, con_mb_cxt, @@ -989,7 +989,7 @@ instance HasHaddock (LocatedA (HsType GhcPs)) where -- (Eq a, Num a) => t HsQualTy x lhs rhs -> do - registerHdkA lhs + registerHdkI lhs rhs' <- addHaddock rhs pure $ L l (HsQualTy x lhs rhs') @@ -1155,9 +1155,12 @@ registerLocHdkA l = HdkA (getBufSpan l) (pure ()) -- A small wrapper over registerLocHdkA. -- -- See Note [Adding Haddock comments to the syntax tree]. -registerHdkA :: GenLocated (SrcSpanAnn' a) e -> HdkA () +registerHdkA :: LocatedAnS a e -> HdkA () registerHdkA a = registerLocHdkA (getLocA a) +registerHdkI :: GenLocated (SrcSpanAnn' a) e -> HdkA () +registerHdkI a = registerLocHdkA (getLocI a) + -- Modify the action of a HdkA computation. hoistHdkA :: (HdkM a -> HdkM b) -> HdkA a -> HdkA b hoistHdkA f (HdkA l m) = HdkA l (f m) @@ -1517,7 +1520,7 @@ flattenBindsAndSigs (all_bs, all_ss, all_ts, all_tfis, all_dfis, all_docs) = mapLL (\d -> DocD noExtField d) all_docs ] -cmpBufSpanA :: GenLocated (SrcSpanAnn' a1) a2 -> GenLocated (SrcSpanAnn' a3) a2 -> Ordering +cmpBufSpanA :: LocatedAnS a1 a2 -> LocatedAnS a3 a2 -> Ordering cmpBufSpanA (L la a) (L lb b) = cmpBufSpan (L (locA la) a) (L (locA lb) b) {- ********************************************************************* diff --git a/compiler/GHC/Parser/Types.hs b/compiler/GHC/Parser/Types.hs index 2e38c22f69..dae5ffdefd 100644 --- a/compiler/GHC/Parser/Types.hs +++ b/compiler/GHC/Parser/Types.hs @@ -62,7 +62,7 @@ data PatBuilder p | PatBuilderOverLit (HsOverLit GhcPs) -- These instances are here so that they are not orphans -type instance Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = SrcAnn NoEpAnns +type instance Anno (GRHS GhcPs (LocatedA (PatBuilder GhcPs))) = EpAnnS NoEpAnns 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 661c271fb9..e16d544a47 100644 --- a/compiler/GHC/Rename/Bind.hs +++ b/compiler/GHC/Rename/Bind.hs @@ -445,7 +445,7 @@ rnBindLHS name_maker _ bind@(FunBind { fun_id = rdr_name }) rnBindLHS name_maker _ (PatSynBind x psb@PSB{ psb_id = rdrname }) | isTopRecNameMaker name_maker - = do { addLocMA checkConName rdrname + = do { addLocMN checkConName rdrname ; name <- lookupLocatedTopConstructorRnN rdrname -- Should be in scope already ; return (PatSynBind x psb{ psb_ext = noAnn, psb_id = name }) } @@ -674,7 +674,7 @@ makeMiniFixityEnv decls = foldlM add_one_sig emptyFsEnv decls where add_one_sig :: MiniFixityEnv -> LFixitySig GhcPs -> RnM MiniFixityEnv add_one_sig env (L loc (FixitySig _ names fixity)) = - foldlM add_one env [ (locA loc,locA name_loc,name,fixity) + foldlM add_one env [ (locA loc,locN name_loc,name,fixity) | L name_loc name <- names ] add_one env (loc, name_loc, name,fixity) = do @@ -1225,8 +1225,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))) ~ SrcAnn NoEpAnns - , Anno (GRHS GhcPs (LocatedA (body GhcPs))) ~ SrcAnn NoEpAnns + , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnnS NoEpAnns + , Anno (GRHS GhcPs (LocatedA (body GhcPs))) ~ EpAnnS NoEpAnns , Outputable (body GhcPs) ) @@ -1362,7 +1362,7 @@ rnSrcFixityDecl sig_ctxt = rn_decl lookup_one :: LocatedN RdrName -> RnM [LocatedN Name] lookup_one (L name_loc rdr_name) - = setSrcSpanA name_loc $ + = setSrcSpanN name_loc $ -- This lookup will fail if the name is not defined in the -- same binding group as this fixity declaration. do names <- lookupLocalTcNames sig_ctxt what rdr_name diff --git a/compiler/GHC/Rename/Env.hs b/compiler/GHC/Rename/Env.hs index 49fdde1bc6..4c632c7e20 100644 --- a/compiler/GHC/Rename/Env.hs +++ b/compiler/GHC/Rename/Env.hs @@ -199,7 +199,7 @@ newTopSrcBinder (L loc rdr_name) if isExternalName name then do { this_mod <- getModule ; unless (this_mod == nameModule name) - (addErrAt (locA loc) (TcRnBindingOfExistingName rdr_name)) + (addErrAt (locN loc) (TcRnBindingOfExistingName rdr_name)) ; return name } else -- See Note [Binders in Template Haskell] in "GHC.ThToHs" do { this_mod <- getModule @@ -208,7 +208,7 @@ newTopSrcBinder (L loc rdr_name) | Just (rdr_mod, rdr_occ) <- isOrig_maybe rdr_name = do { this_mod <- getModule ; unless (rdr_mod == this_mod || rdr_mod == rOOT_MAIN) - (addErrAt (locA loc) (TcRnBindingOfExistingName rdr_name)) + (addErrAt (locN loc) (TcRnBindingOfExistingName rdr_name)) -- When reading External Core we get Orig names as binders, -- but they should agree with the module gotten from the monad -- @@ -231,11 +231,11 @@ newTopSrcBinder (L loc rdr_name) -- the RdrName, not from the environment. In principle, it'd be fine to -- have an arbitrary mixture of external core definitions in a single module, -- (apart from module-initialisation issues, perhaps). - ; newGlobalBinder rdr_mod rdr_occ (locA loc) } + ; newGlobalBinder rdr_mod rdr_occ (locN loc) } | otherwise = do { when (isQual rdr_name) - (addErrAt (locA loc) (badQualBndrErr rdr_name)) + (addErrAt (locN loc) (badQualBndrErr rdr_name)) -- Binders should not be qualified; if they are, and with a different -- module name, we get a confusing "M.T is not in scope" error later @@ -244,11 +244,11 @@ newTopSrcBinder (L loc rdr_name) -- We are inside a TH bracket, so make an *Internal* name -- See Note [Top-level Names in Template Haskell decl quotes] in GHC.Rename.Names do { uniq <- newUnique - ; return (mkInternalName uniq (rdrNameOcc rdr_name) (locA loc)) } + ; return (mkInternalName uniq (rdrNameOcc rdr_name) (locN loc)) } else do { this_mod <- getModule - ; traceRn "newTopSrcBinder" (ppr this_mod $$ ppr rdr_name $$ ppr (locA loc)) - ; newGlobalBinder this_mod (rdrNameOcc rdr_name) (locA loc) } + ; traceRn "newTopSrcBinder" (ppr this_mod $$ ppr rdr_name $$ ppr (locN loc)) + ; newGlobalBinder this_mod (rdrNameOcc rdr_name) (locN loc) } } {- @@ -1000,20 +1000,20 @@ we'll miss the fact that the qualified import is redundant. -} -lookupLocatedOccRn :: GenLocated (SrcSpanAnn' ann) RdrName - -> TcRn (GenLocated (SrcSpanAnn' ann) Name) +lookupLocatedOccRn :: LocatedN RdrName + -> TcRn (LocatedN Name) lookupLocatedOccRn = wrapLocMA lookupOccRn -lookupLocatedOccRnConstr :: GenLocated (SrcSpanAnn' ann) RdrName - -> TcRn (GenLocated (SrcSpanAnn' ann) Name) +lookupLocatedOccRnConstr :: LocatedN RdrName + -> TcRn (LocatedN Name) lookupLocatedOccRnConstr = wrapLocMA lookupOccRnConstr -lookupLocatedOccRnRecField :: GenLocated (SrcSpanAnn' ann) RdrName - -> TcRn (GenLocated (SrcSpanAnn' ann) Name) +lookupLocatedOccRnRecField :: LocatedAnS ann RdrName + -> TcRn (LocatedAnS ann Name) lookupLocatedOccRnRecField = wrapLocMA lookupOccRnRecField -lookupLocatedOccRnNone :: GenLocated (SrcSpanAnn' ann) RdrName - -> TcRn (GenLocated (SrcSpanAnn' ann) Name) +lookupLocatedOccRnNone :: LocatedAnS ann RdrName + -> TcRn (LocatedAnS ann Name) lookupLocatedOccRnNone = wrapLocMA lookupOccRnNone lookupLocalOccRn_maybe :: RdrName -> RnM (Maybe Name) @@ -2011,7 +2011,7 @@ instance Outputable HsSigCtxt where lookupSigOccRn :: HsSigCtxt -> Sig GhcPs - -> LocatedA RdrName -> RnM (LocatedA Name) + -> LocatedN RdrName -> RnM (LocatedN Name) lookupSigOccRn ctxt sig = lookupSigCtxtOccRn ctxt (hsSigDoc sig) lookupSigOccRnN :: HsSigCtxt @@ -2023,8 +2023,8 @@ lookupSigOccRnN ctxt sig = lookupSigCtxtOccRn ctxt (hsSigDoc sig) lookupSigCtxtOccRn :: HsSigCtxt -> SDoc -- ^ description of thing we're looking up, -- like "type family" - -> GenLocated (SrcSpanAnn' ann) RdrName - -> RnM (GenLocated (SrcSpanAnn' ann) Name) + -> GenLocated (EpAnnS ann) RdrName + -> RnM (GenLocated (EpAnnS ann) Name) lookupSigCtxtOccRn ctxt what = wrapLocMA $ \ rdr_name -> do { mb_name <- lookupBindGroupOcc ctxt what rdr_name @@ -2260,11 +2260,11 @@ lookupSyntaxNames :: [Name] -- Standard names lookupSyntaxNames std_names = do { rebindable_on <- xoptM LangExt.RebindableSyntax ; if not rebindable_on then - return (map (HsVar noExtField . noLocA) std_names, emptyFVs) + return (map (HsVar noExtField . noLocN) std_names, emptyFVs) else do { usr_names <- mapM (lookupOccRnNone . mkRdrUnqual . nameOccName) std_names - ; return (map (HsVar noExtField . noLocA) usr_names, mkFVs usr_names) } } + ; return (map (HsVar noExtField . noLocN) usr_names, mkFVs usr_names) } } {- diff --git a/compiler/GHC/Rename/Expr.hs b/compiler/GHC/Rename/Expr.hs index b68ff6a492..9bf95751f3 100644 --- a/compiler/GHC/Rename/Expr.hs +++ b/compiler/GHC/Rename/Expr.hs @@ -244,7 +244,7 @@ finishHsVar (L l name) = do { this_mod <- getModule ; when (nameIsLocalOrFrom this_mod name) $ checkThLocalName name - ; return (HsVar noExtField (L (la2na l) name), unitFV name) } + ; return (HsVar noExtField (L (l2l l) name), unitFV name) } rnUnboundVar :: RdrName -> RnM (HsExpr GhcRn, FreeVars) rnUnboundVar v = do @@ -278,7 +278,7 @@ rnExpr (HsVar _ (L l v)) -> rnExpr (ExplicitList noAnn []) | otherwise - -> finishHsVar (L (na2la l) $ greName gre) + -> finishHsVar (L (l2l l) $ greName gre) }}} rnExpr (HsIPVar x v) @@ -477,7 +477,7 @@ rnExpr (RecordCon { rcon_con = con_id , rcon_con = con_lname, rcon_flds = rec_binds' } , fvs `plusFV` plusFVs fvss `addOneFV` con_name) } where - mk_hs_var l n = HsVar noExtField (L (noAnnSrcSpan l) n) + mk_hs_var l n = HsVar noExtField (L (noAnnSrcSpanN l) n) rn_field (L l fld) = do { (arg', fvs) <- rnLExpr (hfbRHS fld) ; return (L l (fld { hfbRHS = arg' }), fvs) } @@ -966,7 +966,7 @@ methodNamesGRHSs (GRHSs _ grhss _) = plusFVs (map methodNamesGRHS grhss) ------------------------------------------------- -methodNamesGRHS :: LocatedAn NoEpAnns (GRHS GhcRn (LHsCmd GhcRn)) -> CmdNeeds +methodNamesGRHS :: LocatedAnS NoEpAnns (GRHS GhcRn (LHsCmd GhcRn)) -> CmdNeeds methodNamesGRHS (L _ (GRHS _ _ rhs)) = methodNamesLCmd rhs --------------------------------------------------- @@ -1118,7 +1118,7 @@ rnStmtsWithFreeVars ctxt _ [] thing_inside rnStmtsWithFreeVars mDoExpr@(HsDoStmt MDoExpr{}) rnBody (nonEmpty -> Just stmts) thing_inside -- Deal with mdo = -- Behave like do { rec { ...all but last... }; last } do { ((stmts1, (stmts2, thing)), fvs) - <- rnStmt mDoExpr rnBody (noLocA $ mkRecStmt noAnn (noLocA (NE.init stmts))) $ \ _ -> + <- rnStmt mDoExpr rnBody (noLocA $ mkRecStmt noAnn (noLocI (NE.init stmts))) $ \ _ -> do { last_stmt' <- checkLastStmt mDoExpr (NE.last stmts) ; rnStmt mDoExpr rnBody last_stmt' thing_inside } ; return (((stmts1 ++ stmts2), thing), fvs) } @@ -1360,12 +1360,12 @@ lookupStmtNamePoly ctxt name = do { rebindable_on <- xoptM LangExt.RebindableSyntax ; if rebindable_on then do { fm <- lookupOccRn (nameRdrName name) - ; return (HsVar noExtField (noLocA fm), unitFV fm) } + ; return (HsVar noExtField (noLocN fm), unitFV fm) } else not_rebindable } | otherwise = not_rebindable where - not_rebindable = return (HsVar noExtField (noLocA name), emptyFVs) + not_rebindable = return (HsVar noExtField (noLocN name), emptyFVs) -- | Is this a context where we respect RebindableSyntax? -- but ListComp are never rebindable @@ -1624,7 +1624,7 @@ segmentRecStmts loc ctxt empty_rec_stmt segs (fvs_later, might_be_more_fvs_later | otherwise = ([ L (noAnnSrcSpan loc) $ - empty_rec_stmt { recS_stmts = noLocA ss + empty_rec_stmt { recS_stmts = noLocI ss , recS_later_ids = nameSetElemsStable final_fvs_later , recS_rec_ids = nameSetElemsStable (defs `intersectNameSet` uses) }] @@ -1787,7 +1787,7 @@ segsToStmts empty_rec_stmt ((defs, uses, fwds, ss) : segs) fvs_later (later_stmts, later_uses) = segsToStmts empty_rec_stmt segs fvs_later new_stmt | non_rec = head ss | otherwise = L (getLoc (head ss)) rec_stmt - rec_stmt = empty_rec_stmt { recS_stmts = noLocA ss + rec_stmt = empty_rec_stmt { recS_stmts = noLocI ss , recS_later_ids = nameSetElemsStable used_later , recS_rec_ids = nameSetElemsStable fwds } -- See Note [Deterministic ApplicativeDo and RecursiveDo desugaring] @@ -2695,7 +2695,7 @@ getMonadFailOp ctxt nlHsApp (noLocA failExpr) (nlHsApp (noLocA $ fromStringExpr) arg_syn_expr) let failAfterFromStringExpr :: HsExpr GhcRn = - unLoc $ mkHsLam [noLocA $ VarPat noExtField $ noLocA arg_name] body + unLoc $ mkHsLam [noLocA $ VarPat noExtField $ noLocN arg_name] body let failAfterFromStringSynExpr :: SyntaxExpr GhcRn = mkSyntaxExpr failAfterFromStringExpr return (failAfterFromStringSynExpr, failFvs `plusFV` fromStringFvs) diff --git a/compiler/GHC/Rename/HsType.hs b/compiler/GHC/Rename/HsType.hs index 500a6f8407..9f65355b1c 100644 --- a/compiler/GHC/Rename/HsType.hs +++ b/compiler/GHC/Rename/HsType.hs @@ -394,7 +394,7 @@ rnImplicitTvOccs mb_assoc implicit_vs_with_dups thing_inside -- Use the currently set SrcSpan as the new source location for each Name. -- See Note [Source locations for implicitly bound type variables]. ; loc <- getSrcSpanM - ; let loc' = noAnnSrcSpan loc + ; let loc' = noAnnSrcSpanN loc ; vars <- mapM (newTyVarNameRn mb_assoc . L loc' . unLoc) implicit_vs ; bindLocalNamesFV vars $ @@ -592,7 +592,7 @@ rnHsTyKi env (HsTyVar _ ip (L loc rdr_name)) ; return (HsTyVar noAnn ip (L loc name), unitFV name) } rnHsTyKi env ty@(HsOpTy _ prom ty1 l_op ty2) - = setSrcSpan (getLocA l_op) $ + = setSrcSpan (getLocN l_op) $ do { (l_op', fvs1) <- rnHsTyOp env (ppr ty) l_op ; let op_name = unLoc l_op' ; fix <- lookupTyFixityRn l_op' @@ -978,7 +978,7 @@ bindHsQTyVars doc mb_assoc body_kv_occs hsq_bndrs thing_inside -- -- class C (a :: j) (b :: k) where -- ^^^^^^^^^^^^^^^ - bndrs_loc = case map get_bndr_loc hs_tv_bndrs ++ map getLocA body_kv_occs of + bndrs_loc = case map get_bndr_loc hs_tv_bndrs ++ map getLocN body_kv_occs of [] -> panic "bindHsQTyVars.bndrs_loc" [loc] -> loc (loc:locs) -> loc `combineSrcSpans` last locs @@ -987,9 +987,9 @@ bindHsQTyVars doc mb_assoc body_kv_occs hsq_bndrs thing_inside -- include surrounding parens. for error messages to be -- compatible, we recreate the location from the contents get_bndr_loc :: LHsTyVarBndr () GhcPs -> SrcSpan - get_bndr_loc (L _ (UserTyVar _ _ ln)) = getLocA ln + get_bndr_loc (L _ (UserTyVar _ _ ln)) = getLocN ln get_bndr_loc (L _ (KindedTyVar _ _ ln lk)) - = combineSrcSpans (getLocA ln) (getLocA lk) + = combineSrcSpans (getLocN ln) (getLocA lk) {- Note [bindHsQTyVars examples] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/compiler/GHC/Rename/Module.hs b/compiler/GHC/Rename/Module.hs index 1602b2b92d..123282fd5d 100644 --- a/compiler/GHC/Rename/Module.hs +++ b/compiler/GHC/Rename/Module.hs @@ -274,7 +274,7 @@ rnSrcWarnDecls _ [] rnSrcWarnDecls bndr_set decls' = do { -- check for duplicates ; mapM_ (\ dups -> let ((L loc rdr) :| (lrdr':_)) = dups - in addErrAt (locA loc) (TcRnDuplicateWarningDecls lrdr' rdr)) + in addErrAt (locN loc) (TcRnDuplicateWarningDecls lrdr' rdr)) warn_rdr_dups ; pairs_s <- mapM (addLocMA rn_deprec) decls ; return (WarnSome ((concat pairs_s))) } @@ -834,7 +834,7 @@ rnFamEqn doc atfi extra_kvars -- -- type instance F a b c = Either a b -- ^^^^^ - lhs_loc = case map lhsTypeArgSrcSpan pats ++ map getLocA extra_kvars of + lhs_loc = case map lhsTypeArgSrcSpan pats ++ map getLocN extra_kvars of [] -> panic "rnFamEqn.lhs_loc" [loc] -> loc (loc:locs) -> loc `combineSrcSpans` last locs @@ -2173,7 +2173,7 @@ rnLHsDerivingClause doc , deriv_clause_tys = dct })) = do { (dcs', dct', fvs) <- rnLDerivStrategy doc dcs $ rn_deriv_clause_tys dct - ; warnNoDerivStrat dcs' (locA loc) + ; warnNoDerivStrat dcs' (locI loc) ; pure ( L loc (HsDerivingClause { deriv_clause_ext = noExtField , deriv_clause_strategy = dcs' , deriv_clause_tys = dct' }) @@ -2211,7 +2211,7 @@ rnLDerivStrategy doc mds thing_inside = case mds of Nothing -> boring_case Nothing Just (L loc ds) -> - setSrcSpanA loc $ do + setSrcSpanI loc $ do (ds', thing, fvs) <- rn_deriv_strat ds pure (Just (L loc ds'), thing, fvs) where @@ -2268,7 +2268,7 @@ rnFamDecl mb_cls (FamilyDecl { fdLName = tycon, fdTyVars = tyvars ; ((tyvars', res_sig', injectivity'), fv1) <- bindHsQTyVars doc mb_cls kvs tyvars $ \ tyvars' _ -> do { let rn_sig = rnFamResultSig doc - ; (res_sig', fv_kind) <- wrapLocFstMA rn_sig res_sig + ; (res_sig', fv_kind) <- wrapLocFstMI rn_sig res_sig ; injectivity' <- traverse (rnInjectivityAnn tyvars' res_sig') injectivity ; return ( (tyvars', res_sig', injectivity') , fv_kind ) } @@ -2375,7 +2375,7 @@ rnInjectivityAnn tvBndrs (L _ (TyVarSig _ resTv)) ; injTo' <- mapM rnLTyVar injTo -- Note: srcSpan is unchanged, but typechecker gets -- confused, l2l call makes it happy - ; return $ L (l2l srcSpan) (InjectivityAnn x injFrom' injTo') } + ; return $ L (l2li srcSpan) (InjectivityAnn x injFrom' injTo') } ; let tvNames = Set.fromList $ hsAllLTyVarNames tvBndrs resName = hsLTyVarName resTv @@ -2387,12 +2387,12 @@ rnInjectivityAnn tvBndrs (L _ (TyVarSig _ resTv)) -- not-in-scope variables) don't check the validity of injectivity -- annotation. This gives better error messages. ; when (noRnErrors && not lhsValid) $ - addErrAt (getLocA injFrom) $ + addErrAt (getLocN injFrom) $ TcRnIncorrectTyVarOnLhsOfInjCond resName injFrom ; when (noRnErrors && not (Set.null rhsValid)) $ do { let errorVars = Set.toList rhsValid - ; addErrAt (locA srcSpan) $ + ; addErrAt (locI srcSpan) $ TcRnUnknownTyVarsOnRhsOfInjCond errorVars } ; return injDecl' } @@ -2406,7 +2406,7 @@ rnInjectivityAnn tvBndrs (L _ (TyVarSig _ resTv)) -- So we rename injectivity annotation like we normally would except that -- this time we expect "result" to be reported not in scope by rnLTyVar. rnInjectivityAnn _ _ (L srcSpan (InjectivityAnn x injFrom injTo)) = - setSrcSpanA srcSpan $ do + setSrcSpanI srcSpan $ do (injDecl', _) <- askNoErrs $ do injFrom' <- rnLTyVar injFrom injTo' <- mapM rnLTyVar injTo @@ -2439,7 +2439,7 @@ rnConDecl :: ConDecl GhcPs -> RnM (ConDecl GhcRn, FreeVars) rnConDecl decl@(ConDeclH98 { con_name = name, con_ex_tvs = ex_tvs , con_mb_cxt = mcxt, con_args = args , con_doc = mb_doc, con_forall = forall_ }) - = do { _ <- addLocMA checkConName name + = do { _ <- addLocMN checkConName name ; new_name <- lookupLocatedTopConstructorRnN name -- We bind no implicit binders here; this is just like @@ -2476,7 +2476,7 @@ rnConDecl (ConDeclGADT { con_names = names , con_g_args = args , con_res_ty = res_ty , con_doc = mb_doc }) - = do { mapM_ (addLocMA checkConName) names + = do { mapM_ (addLocMN checkConName) names ; new_names <- mapM (lookupLocatedTopConstructorRnN) names ; let -- We must ensure that we extract the free tkvs in left-to-right @@ -2594,13 +2594,13 @@ extendPatSynEnv dup_fields_ok has_sel val_decls local_fix_env thing = do { , psb_args = RecCon as }))) <- bind = do bnd_name <- newTopSrcBinder (L (l2l bind_loc) n) - let field_occs = map ((\ f -> L (noAnnSrcSpan $ getLocA (foLabel f)) f) . recordPatSynField) as + let field_occs = map ((\ f -> L (noAnnSrcSpan $ getLocN (foLabel f)) f) . recordPatSynField) as flds <- mapM (newRecordFieldLabel dup_fields_ok has_sel [bnd_name]) field_occs let con_info = mkConInfo (conDetailsArity length (RecCon as)) flds return ((PatSynName bnd_name, con_info) : names) | L bind_loc (PatSynBind _ (PSB { psb_id = L _ n, psb_args = as })) <- bind = do - bnd_name <- newTopSrcBinder (L (la2na bind_loc) n) + bnd_name <- newTopSrcBinder (L (l2l bind_loc) n) let con_info = mkConInfo (conDetailsArity length as) [] return ((PatSynName bnd_name, con_info) : names) | otherwise diff --git a/compiler/GHC/Rename/Names.hs b/compiler/GHC/Rename/Names.hs index 92cab86d05..2adf8c45d2 100644 --- a/compiler/GHC/Rename/Names.hs +++ b/compiler/GHC/Rename/Names.hs @@ -895,10 +895,10 @@ getLocalNonValBinders fixity_env new_tc dup_fields_ok has_sel tc_decl -- NOT for type/data instances = do { let TyDeclBinders (main_bndr, tc_flav) at_bndrs sig_bndrs (LConsWithFields cons_with_flds flds) = hsLTyClDeclBinders tc_decl - ; tycon_name <- newTopSrcBinder $ l2n main_bndr - ; at_names <- mapM (newTopSrcBinder . l2n . fst) at_bndrs - ; sig_names <- mapM (newTopSrcBinder . l2n) sig_bndrs - ; con_names_with_flds <- mapM (\(con,flds) -> (,flds) <$> newTopSrcBinder (l2n con)) cons_with_flds + ; tycon_name <- newTopSrcBinder $ la2la main_bndr + ; at_names <- mapM (newTopSrcBinder . la2la . fst) at_bndrs + ; sig_names <- mapM (newTopSrcBinder . la2la) sig_bndrs + ; con_names_with_flds <- mapM (\(con,flds) -> (,flds) <$> newTopSrcBinder (la2la con)) cons_with_flds ; flds' <- mapM (newRecordFieldLabel dup_fields_ok has_sel $ map fst con_names_with_flds) flds ; mapM_ (add_dup_fld_errs flds') con_names_with_flds ; let tc_gre = localTyConGRE (fmap (const tycon_name) tc_flav) tycon_name @@ -956,7 +956,7 @@ getLocalNonValBinders fixity_env -- See (1) above L loc cls_rdr <- MaybeT $ pure $ getLHsInstDeclClass_maybe inst_ty -- See (2) above - MaybeT $ setSrcSpan (locA loc) $ lookupGlobalOccRn_maybe SameOccName cls_rdr + MaybeT $ setSrcSpan (locN loc) $ lookupGlobalOccRn_maybe SameOccName cls_rdr -- Assuming the previous step succeeded, process any associated data -- family instances. If the previous step failed, bail out. case mb_cls_gre of @@ -973,7 +973,7 @@ getLocalNonValBinders fixity_env new_di dup_fields_ok has_sel mb_cls dfid@(DataFamInstDecl { dfid_eqn = ti_decl }) = do { main_name <- unLoc <$> lookupFamInstName mb_cls (feqn_tycon ti_decl) ; let LConsWithFields cons_with_flds flds = hsDataFamInstBinders dfid - ; sub_names <- mapM (\(con,flds) -> (,flds) <$> newTopSrcBinder (l2n con)) cons_with_flds + ; sub_names <- mapM (\(con,flds) -> (,flds) <$> newTopSrcBinder (la2la con)) cons_with_flds ; flds' <- mapM (newRecordFieldLabel dup_fields_ok has_sel $ map fst sub_names) flds ; mapM_ (add_dup_fld_errs flds') sub_names ; let fld_env = mk_fld_env sub_names flds' @@ -1971,7 +1971,7 @@ getMinimalImports ie_decls ; iface <- loadSrcInterface doc mod_name is_boot pkg_qual ; let used_avails = gresToAvailInfo used_gres ; lies <- map (L l) <$> concatMapM (to_ie rdr_env iface) used_avails - ; return (L l (decl { ideclImportList = Just (Exactly, L (l2l l) lies) })) } + ; return (L l (decl { ideclImportList = Just (Exactly, L (nn2la l) lies) })) } where doc = text "Compute minimal imports for" <+> ppr decl @@ -2030,7 +2030,7 @@ getMinimalImports ie_decls idecl = unLoc decl merge :: NonEmpty (LImportDecl GhcRn) -> LImportDecl GhcRn - merge decls@((L l decl) :| _) = L l (decl { ideclImportList = Just (Exactly, L (noAnnSrcSpan (locA l)) lies) }) + merge decls@((L l decl) :| _) = L l (decl { ideclImportList = Just (Exactly, L (noAnnSrcSpanI (locA l)) lies) }) where lies = concatMap (unLoc . snd) $ mapMaybe (ideclImportList . unLoc) $ NE.toList decls classifyGREs :: [GlobalRdrElt] -> ([GlobalRdrElt], [FieldGlobalRdrElt]) @@ -2064,14 +2064,14 @@ printMinimalImports hsc_src imports_w_usage to_ie_post_rn_var :: LocatedA (IdP GhcRn) -> LIEWrappedName GhcRn to_ie_post_rn_var (L l n) - | isDataOcc $ occName n = L l (IEPattern (la2e l) (L (la2na l) n)) - | otherwise = L l (IEName noExtField (L (la2na l) n)) + | isDataOcc $ occName n = L l (IEPattern (epaLocationFromEpAnnS l) (L (l2l l) n)) + | otherwise = L l (IEName noExtField (L (l2l l) n)) to_ie_post_rn :: LocatedA (IdP GhcRn) -> LIEWrappedName GhcRn to_ie_post_rn (L l n) - | isTcOcc occ && isSymOcc occ = L l (IEType (la2e l) (L (la2na l) n)) - | otherwise = L l (IEName noExtField (L (la2na l) n)) + | isTcOcc occ && isSymOcc occ = L l (IEType (epaLocationFromEpAnnS l) (L (l2l l) n)) + | otherwise = L l (IEName noExtField (L (l2l l) n)) where occ = occName n {- diff --git a/compiler/GHC/Rename/Pat.hs b/compiler/GHC/Rename/Pat.hs index 0b01f2cbcb..2461bf6561 100644 --- a/compiler/GHC/Rename/Pat.hs +++ b/compiler/GHC/Rename/Pat.hs @@ -497,7 +497,7 @@ rnPatAndThen mk (BangPat _ pat) = do { pat' <- rnLPatAndThen mk pat ; return (BangPat noExtField pat') } rnPatAndThen mk (VarPat x (L l rdr)) = do { loc <- liftCps getSrcSpanM - ; name <- newPatName mk (L (noAnnSrcSpan loc) rdr) + ; name <- newPatName mk (L (noAnnSrcSpanN loc) rdr) ; return (VarPat x (L l name)) } -- we need to bind pattern variables for view pattern expressions -- (e.g. in the pattern (x, x -> y) x needs to be bound in the rhs of the tuple) @@ -524,7 +524,7 @@ rnPatAndThen mk (LitPat x lit) = do { ovlStr <- liftCps (xoptM LangExt.OverloadedStrings) ; if ovlStr then rnPatAndThen mk - (mkNPat (noLocA (mkHsIsString src s)) + (mkNPat (noLocI (mkHsIsString src s)) Nothing noAnn) else normal_lit } | otherwise = normal_lit @@ -546,14 +546,14 @@ rnPatAndThen _ (NPat x (L l lit) mb_neg _eq) ; return (NPat x (L l lit') mb_neg' eq') } rnPatAndThen mk (NPlusKPat _ rdr (L l lit) _ _ _ ) - = do { new_name <- newPatName mk (l2n rdr) + = do { new_name <- newPatName mk rdr ; (lit', _) <- liftCpsFV $ rnOverLit lit -- See Note [Negative zero] -- We skip negateName as -- negative zero doesn't make -- sense in n + k patterns ; minus <- liftCpsFV $ lookupSyntax minusName ; ge <- liftCpsFV $ lookupSyntax geName - ; return (NPlusKPat noExtField (L (noAnnSrcSpan $ nameSrcSpan new_name) new_name) + ; return (NPlusKPat noExtField (L (noAnnSrcSpanN $ nameSrcSpan new_name) new_name) (L l lit') lit' ge minus) } -- The Report says that n+k patterns must be in Integral @@ -691,7 +691,7 @@ rnHsRecPatsAndThen mk (L _ con) ; check_unused_wildcard (implicit_binders flds' <$> dd) ; return (HsRecFields { rec_flds = flds', rec_dotdot = dd }) } where - mkVarPat l n = VarPat noExtField (L (noAnnSrcSpan l) n) + mkVarPat l n = VarPat noExtField (L (noAnnSrcSpanN l) n) rn_field (L l fld, n') = do { arg' <- rnLPatAndThen (nested_mk dd mk (RecFieldsDotDot n')) (hfbRHS fld) ; return (L l (fld { hfbRHS = arg' })) } @@ -840,7 +840,7 @@ rnHsRecFields ctxt mk_arg (HsRecFields { rec_flds = flds, rec_dotdot = dotdot }) ; return [ L (noAnnSrcSpan loc) (HsFieldBind { hfbAnn = noAnn , hfbLHS - = L (noAnnSrcSpan loc) (FieldOcc sel (L (noAnnSrcSpan loc) arg_rdr)) + = L (noAnnSrcSpan loc) (FieldOcc sel (L (noAnnSrcSpanN loc) arg_rdr)) , hfbRHS = L locn (mk_arg loc arg_rdr) , hfbPun = False }) | fl <- dot_dot_fields @@ -1087,7 +1087,7 @@ rnOverLit origLit ; (from_thing_name, fvs1) <- lookupSyntaxName std_name ; let rebindable = from_thing_name /= std_name lit' = lit { ol_ext = OverLitRn { ol_rebindable = rebindable - , ol_from_fun = noLocA from_thing_name } } + , ol_from_fun = noLocN from_thing_name } } ; if isNegativeZeroOverLit lit' then do { (negate_name, fvs2) <- lookupSyntaxExpr negateName ; return ((lit' { ol_val = negateOverLitVal val }, Just negate_name) diff --git a/compiler/GHC/Rename/Splice.hs b/compiler/GHC/Rename/Splice.hs index d8566ec747..11e25dae1e 100644 --- a/compiler/GHC/Rename/Splice.hs +++ b/compiler/GHC/Rename/Splice.hs @@ -173,7 +173,7 @@ rn_utbracket outer_stage br@(VarBr x flg rdr_name) (quotedNameStageErr br) } } } - ; return (VarBr x flg (noLocA name), unitFV name) } + ; return (VarBr x flg (noLocN name), unitFV name) } rn_utbracket _ (ExpBr x e) = do { (e', fvs) <- rnLExpr e ; return (ExpBr x e', fvs) } @@ -305,7 +305,7 @@ rnUntypedSpliceGen run_splice pend_splice splice -> do { (splice', fvs) <- setStage pop_stage $ rnUntypedSplice splice ; loc <- getSrcSpanM - ; splice_name <- newLocalBndrRn (L (noAnnSrcSpan loc) unqualSplice) + ; splice_name <- newLocalBndrRn (L (noAnnSrcSpanN loc) unqualSplice) ; let (pending_splice, result) = pend_splice splice_name splice' ; ps <- readMutVar ps_var ; writeMutVar ps_var (pending_splice : ps) @@ -410,12 +410,12 @@ mkQuasiQuoteExpr :: UntypedSpliceFlavour -> Name mkQuasiQuoteExpr flavour quoter (L q_span' quote) = L q_span $ HsApp noComments (L q_span $ HsApp noComments (L q_span - (HsVar noExtField (L (la2na q_span) quote_selector))) + (HsVar noExtField (L (l2l q_span) quote_selector))) quoterExpr) quoteExpr where - q_span = noAnnSrcSpan (locA q_span') - quoterExpr = L q_span $! HsVar noExtField $! (L (la2na q_span) quoter) + q_span = noAnnSrcSpan (locI q_span') + quoterExpr = L q_span $! HsVar noExtField $! (L (l2l q_span) quoter) quoteExpr = L q_span $! HsLit noComments $! HsString NoSourceText quote quote_selector = case flavour of UntypedExpSplice -> quoteExpName @@ -487,7 +487,7 @@ rnTypedSplice expr do { loc <- getSrcSpanM -- The renamer allocates a splice-point name to every typed splice -- (incl the top level ones for which it will not ultimately be used) - ; n' <- newLocalBndrRn (L (noAnnSrcSpan loc) unqualSplice) + ; n' <- newLocalBndrRn (L (noAnnSrcSpanN loc) unqualSplice) ; (expr', fvs) <- rnLExpr expr ; return (HsTypedSplice n' expr', fvs) } diff --git a/compiler/GHC/Rename/Utils.hs b/compiler/GHC/Rename/Utils.hs index a00d97dd0d..a333edf93d 100644 --- a/compiler/GHC/Rename/Utils.hs +++ b/compiler/GHC/Rename/Utils.hs @@ -18,7 +18,7 @@ module GHC.Rename.Utils ( warnForallIdentifier, checkUnusedRecordWildcard, badQualBndrErr, typeAppErr, badFieldConErr, - wrapGenSpan, genHsVar, genLHsVar, genHsApp, genHsApps, genAppType, + wrapGenSpan, wrapGenSpanI, genHsVar, genLHsVar, genHsApp, genHsApps, genAppType, genHsIntegralLit, genHsTyLit, genSimpleConPat, genVarPat, genWildPat, genSimpleFunBind, genFunBind, @@ -85,9 +85,9 @@ newLocalBndrRn (L loc rdr_name) -- See Note [Binders in Template Haskell] in "GHC.ThToHs" | otherwise = do { unless (isUnqual rdr_name) - (addErrAt (locA loc) (badQualBndrErr rdr_name)) + (addErrAt (locN loc) (badQualBndrErr rdr_name)) ; uniq <- newUnique - ; return (mkInternalName uniq (rdrNameOcc rdr_name) (locA loc)) } + ; return (mkInternalName uniq (rdrNameOcc rdr_name) (locN loc)) } newLocalBndrsRn :: [LocatedN RdrName] -> RnM [Name] newLocalBndrsRn = mapM newLocalBndrRn @@ -111,14 +111,14 @@ bindLocalNamesFV names enclosed_scope checkDupRdrNames :: [LocatedN RdrName] -> RnM () -- Check for duplicated names in a binding group checkDupRdrNames rdr_names_w_loc - = mapM_ (dupNamesErr getLocA) dups + = mapM_ (dupNamesErr getLocN) dups where (_, dups) = removeDupsOn unLoc rdr_names_w_loc checkDupRdrNamesN :: [LocatedN RdrName] -> RnM () -- Check for duplicated names in a binding group checkDupRdrNamesN rdr_names_w_loc - = mapM_ (dupNamesErr getLocA) dups + = mapM_ (dupNamesErr getLocN) dups where (_, dups) = removeDupsOn unLoc rdr_names_w_loc @@ -141,7 +141,7 @@ checkShadowedRdrNames loc_rdr_names where filtered_rdrs = filterOut (isExact . unLoc) loc_rdr_names -- See Note [Binders in Template Haskell] in "GHC.ThToHs" - get_loc_occ (L loc rdr) = (locA loc,rdrNameOcc rdr) + get_loc_occ (L loc rdr) = (locN loc,rdrNameOcc rdr) checkDupAndShadowedNames :: (GlobalRdrEnv, LocalRdrEnv) -> [Name] -> RnM () checkDupAndShadowedNames envs names @@ -437,7 +437,7 @@ check_unused flag bound_names used_names warnForallIdentifier :: LocatedN RdrName -> RnM () warnForallIdentifier (L l rdr_name@(Unqual occ)) | isKw (fsLit "forall") || isKw (fsLit "∀") - = addDiagnosticAt (locA l) (TcRnForallIdentifier rdr_name) + = addDiagnosticAt (locN l) (TcRnForallIdentifier rdr_name) where isKw = (occNameFS occ ==) warnForallIdentifier _ = return () @@ -663,11 +663,16 @@ checkCTupSize tup_size * * ********************************************************************* -} -wrapGenSpan :: a -> LocatedAn an a +wrapGenSpan :: (Monoid an) => a -> LocatedAnS an a -- Wrap something in a "generatedSrcSpan" -- See Note [Rebindable syntax and HsExpansion] wrapGenSpan x = L (noAnnSrcSpan generatedSrcSpan) x +wrapGenSpanI :: a -> LocatedAn an a +-- Wrap something in a "generatedSrcSpan" +-- See Note [Rebindable syntax and HsExpansion] +wrapGenSpanI x = L (noAnnSrcSpanI generatedSrcSpan) x + genHsApps :: Name -> [LHsExpr GhcRn] -> HsExpr GhcRn genHsApps fun args = foldl genHsApp (genHsVar fun) args @@ -683,7 +688,7 @@ genHsVar nm = HsVar noExtField $ wrapGenSpan nm genAppType :: HsExpr GhcRn -> HsType (NoGhcTc GhcRn) -> HsExpr GhcRn genAppType expr ty = HsAppType noExtField (wrapGenSpan expr) noHsTok (mkEmptyWildCardBndrs (wrapGenSpan ty)) -genHsIntegralLit :: IntegralLit -> LocatedAn an (HsExpr GhcRn) +genHsIntegralLit :: IntegralLit -> LocatedA (HsExpr GhcRn) genHsIntegralLit lit = wrapGenSpan $ HsLit noAnn (HsInt noExtField lit) genHsTyLit :: FastString -> HsType GhcRn @@ -705,16 +710,17 @@ genWildPat = wrapGenSpan $ WildPat noExtField genSimpleFunBind :: Name -> [LPat GhcRn] -> LHsExpr GhcRn -> LHsBind GhcRn genSimpleFunBind fun pats expr - = L gen $ genFunBind (L gen fun) - [mkMatch (mkPrefixFunRhs (L gen fun)) pats expr + = L gen $ genFunBind (L genN fun) + [mkMatch (mkPrefixFunRhs (L genN fun)) pats expr emptyLocalBinds] where gen = noAnnSrcSpan generatedSrcSpan + genN = noAnnSrcSpanN generatedSrcSpan genFunBind :: LocatedN Name -> [LMatch GhcRn (LHsExpr GhcRn)] -> HsBind GhcRn genFunBind fn ms = FunBind { fun_id = fn - , fun_matches = mkMatchGroup Generated (wrapGenSpan ms) + , fun_matches = mkMatchGroup Generated (wrapGenSpanI ms) , fun_ext = emptyNameSet } diff --git a/compiler/GHC/Runtime/Eval.hs b/compiler/GHC/Runtime/Eval.hs index 88dbe46626..b3ecfed284 100644 --- a/compiler/GHC/Runtime/Eval.hs +++ b/compiler/GHC/Runtime/Eval.hs @@ -1252,7 +1252,7 @@ dynCompileExpr expr = do parsed_expr <- parseExpr expr -- > Data.Dynamic.toDyn expr let loc = getLoc parsed_expr - to_dyn_expr = mkHsApp (L loc . HsVar noExtField . L (la2na loc) $ getRdrName toDynName) + to_dyn_expr = mkHsApp (L loc . HsVar noExtField . L (l2l loc) $ getRdrName toDynName) parsed_expr hval <- compileParsedExpr to_dyn_expr return (unsafeCoerce hval :: Dynamic) diff --git a/compiler/GHC/Tc/Deriv/Functor.hs b/compiler/GHC/Tc/Deriv/Functor.hs index 9b5032531c..c89a0733b0 100644 --- a/compiler/GHC/Tc/Deriv/Functor.hs +++ b/compiler/GHC/Tc/Deriv/Functor.hs @@ -156,7 +156,7 @@ gen_Functor_binds loc (DerivInstTys{dit_rep_tc = tycon}) | Phantom <- last (tyConRoles tycon) = (unitBag fmap_bind, emptyBag) where - fmap_name = L (noAnnSrcSpan loc) fmap_RDR + fmap_name = L (noAnnSrcSpanN loc) fmap_RDR fmap_bind = mkRdrFunBind fmap_name fmap_eqns fmap_eqns = [mkSimpleMatch fmap_match_ctxt [nlWildPat] @@ -168,7 +168,7 @@ gen_Functor_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon = (listToBag [fmap_bind, replace_bind], emptyBag) where data_cons = getPossibleDataCons tycon tycon_args - fmap_name = L (noAnnSrcSpan loc) fmap_RDR + fmap_name = L (noAnnSrcSpanN loc) fmap_RDR -- See Note [EmptyDataDecls with Functor, Foldable, and Traversable] fmap_bind = mkRdrFunBindEC 2 id fmap_name fmap_eqns @@ -207,7 +207,7 @@ gen_Functor_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon , ft_co_var = panic "contravariant in ft_fmap" } -- See Note [Deriving <$] - replace_name = L (noAnnSrcSpan loc) replace_RDR + replace_name = L (noAnnSrcSpanN loc) replace_RDR -- See Note [EmptyDataDecls with Functor, Foldable, and Traversable] replace_bind = mkRdrFunBindEC 2 id replace_name replace_eqns @@ -819,7 +819,7 @@ gen_Foldable_binds loc (DerivInstTys{dit_rep_tc = tycon}) | Phantom <- last (tyConRoles tycon) = (unitBag foldMap_bind, emptyBag) where - foldMap_name = L (noAnnSrcSpan loc) foldMap_RDR + foldMap_name = L (noAnnSrcSpanN loc) foldMap_RDR foldMap_bind = mkRdrFunBind foldMap_name foldMap_eqns foldMap_eqns = [mkSimpleMatch foldMap_match_ctxt [nlWildPat, nlWildPat] @@ -837,9 +837,9 @@ gen_Foldable_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon where data_cons = getPossibleDataCons tycon tycon_args - foldr_name = L (noAnnSrcSpan loc) foldable_foldr_RDR + foldr_name = L (noAnnSrcSpanN loc) foldable_foldr_RDR - foldr_bind = mkRdrFunBind (L (noAnnSrcSpan loc) foldable_foldr_RDR) eqns + foldr_bind = mkRdrFunBind (L (noAnnSrcSpanN loc) foldable_foldr_RDR) eqns eqns = map foldr_eqn data_cons foldr_eqn con = evalState (match_foldr z_Expr [f_Pat,z_Pat] con =<< parts) bs_RDRs @@ -847,7 +847,7 @@ gen_Foldable_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon parts = sequence $ foldDataConArgs ft_foldr con dit foldr_match_ctxt = mkPrefixFunRhs foldr_name - foldMap_name = L (noAnnSrcSpan loc) foldMap_RDR + foldMap_name = L (noAnnSrcSpanN loc) foldMap_RDR -- See Note [EmptyDataDecls with Functor, Foldable, and Traversable] foldMap_bind = mkRdrFunBindEC 2 (const mempty_Expr) @@ -871,7 +871,7 @@ gen_Foldable_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon go NotNull = Nothing go (NullM a) = Just (Just a) - null_name = L (noAnnSrcSpan loc) null_RDR + null_name = L (noAnnSrcSpanN loc) null_RDR null_match_ctxt = mkPrefixFunRhs null_name null_bind = mkRdrFunBind null_name null_eqns null_eqns = map null_eqn data_cons @@ -1053,7 +1053,7 @@ gen_Traversable_binds loc (DerivInstTys{dit_rep_tc = tycon}) | Phantom <- last (tyConRoles tycon) = (unitBag traverse_bind, emptyBag) where - traverse_name = L (noAnnSrcSpan loc) traverse_RDR + traverse_name = L (noAnnSrcSpanN loc) traverse_RDR traverse_bind = mkRdrFunBind traverse_name traverse_eqns traverse_eqns = [mkSimpleMatch traverse_match_ctxt @@ -1067,7 +1067,7 @@ gen_Traversable_binds loc dit@(DerivInstTys{ dit_rep_tc = tycon where data_cons = getPossibleDataCons tycon tycon_args - traverse_name = L (noAnnSrcSpan loc) traverse_RDR + traverse_name = L (noAnnSrcSpanN loc) traverse_RDR -- See Note [EmptyDataDecls with Functor, Foldable, and Traversable] traverse_bind = mkRdrFunBindEC 2 (nlHsApp pure_Expr) diff --git a/compiler/GHC/Tc/Deriv/Generate.hs b/compiler/GHC/Tc/Deriv/Generate.hs index 7ada3093e5..e01b54ef22 100644 --- a/compiler/GHC/Tc/Deriv/Generate.hs +++ b/compiler/GHC/Tc/Deriv/Generate.hs @@ -601,7 +601,7 @@ nlConWildPat :: DataCon -> LPat GhcPs -- The pattern (K {}) nlConWildPat con = noLocA $ ConPat { pat_con_ext = noAnn - , pat_con = noLocA $ getRdrName con + , pat_con = noLocN $ getRdrName con , pat_args = RecCon $ HsRecFields { rec_flds = [] , rec_dotdot = Nothing } @@ -857,7 +857,7 @@ gen_Ix_binds loc (DerivInstTys{dit_rep_tc = tycon}) = do enum_index = mkSimpleGeneratedFunBind loc unsafeIndex_RDR - [noLocA (AsPat noAnn (noLocA c_RDR) noHsTok + [noLocA (AsPat noAnn (noLocN c_RDR) noHsTok (nlTuplePat [a_Pat, nlWildPat] Boxed)), d_Pat] ( untag_Expr [(a_RDR, ah_RDR)] ( @@ -1993,7 +1993,7 @@ gen_Newtype_binds loc' cls inst_tvs inst_tys rhs_ty underlying_inst_tys :: [Type] underlying_inst_tys = changeLast inst_tys rhs_ty - locn = noAnnSrcSpan loc' + locn = noAnnSrcSpanN loc' loca = noAnnSrcSpan loc' -- For each class method, generate its derived binding and instance -- signature. Using the first example from @@ -2043,7 +2043,7 @@ gen_Newtype_binds loc' cls inst_tvs inst_tys rhs_ty mk_hs_tvb :: VarBndr TyVar flag -> LHsTyVarBndr flag GhcPs mk_hs_tvb (Bndr tv flag) = noLocA $ KindedTyVar noAnn flag - (noLocA (getRdrName tv)) + (noLocN (getRdrName tv)) (nlHsCoreTy (tyVarKind tv)) meth_RDR = getRdrName meth_id @@ -2081,7 +2081,7 @@ gen_Newtype_fam_insts loc' cls inst_tvs inst_tys rhs_ty underlying_inst_tys = changeLast inst_tys rhs_ty ats = classATs cls - locn = noAnnSrcSpan loc' + locn = noAnnSrcSpanN loc' cls_tvs = classTyVars cls in_scope = mkInScopeSetList inst_tvs lhs_env = zipTyEnv cls_tvs inst_tys @@ -2167,7 +2167,7 @@ genAuxBindSpecOriginal loc spec (genAuxBindSpecSig loc spec))) where loca = noAnnSrcSpan loc - locn = noAnnSrcSpan loc + locn = noAnnSrcSpanN loc gen_bind :: AuxBindSpec -> LHsBind GhcPs gen_bind (DerivTag2Con _ tag2con_RDR) = mkFunBindSE 0 loc tag2con_RDR @@ -2222,7 +2222,7 @@ genAuxBindSpecDup loc original_rdr_name dup_spec (genAuxBindSpecSig loc dup_spec))) where loca = noAnnSrcSpan loc - locn = noAnnSrcSpan loc + locn = noAnnSrcSpanN loc dup_rdr_name = auxBindSpecRdrName dup_spec -- | Generate the type signature of an auxiliary binding. @@ -2291,9 +2291,9 @@ mkFunBindSE :: Arity -> SrcSpan -> RdrName -> [([LPat GhcPs], LHsExpr GhcPs)] -> LHsBind GhcPs mkFunBindSE arity loc fun pats_and_exprs - = mkRdrFunBindSE arity (L (noAnnSrcSpan loc) fun) matches + = mkRdrFunBindSE arity (L (noAnnSrcSpanN loc) fun) matches where - matches = [mkMatch (mkPrefixFunRhs (L (noAnnSrcSpan loc) fun)) + matches = [mkMatch (mkPrefixFunRhs (L (noAnnSrcSpanN loc) fun)) (map (parenthesizePat appPrec) p) e emptyLocalBinds | (p,e) <-pats_and_exprs] @@ -2301,7 +2301,7 @@ mkFunBindSE arity loc fun pats_and_exprs mkRdrFunBind :: LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsBind GhcPs mkRdrFunBind fun@(L loc _fun_rdr) matches - = L (na2la loc) (mkFunBind Generated fun matches) + = L (l2l loc) (mkFunBind Generated fun matches) -- | Make a function binding. If no equations are given, produce a function -- with the given arity that uses an empty case expression for the last @@ -2312,9 +2312,9 @@ mkFunBindEC :: Arity -> SrcSpan -> RdrName -> [([LPat GhcPs], LHsExpr GhcPs)] -> LHsBind GhcPs mkFunBindEC arity loc fun catch_all pats_and_exprs - = mkRdrFunBindEC arity catch_all (L (noAnnSrcSpan loc) fun) matches + = mkRdrFunBindEC arity catch_all (L (noAnnSrcSpanN loc) fun) matches where - matches = [ mkMatch (mkPrefixFunRhs (L (noAnnSrcSpan loc) fun)) + matches = [ mkMatch (mkPrefixFunRhs (L (noAnnSrcSpanN loc) fun)) (map (parenthesizePat appPrec) p) e emptyLocalBinds | (p,e) <- pats_and_exprs ] @@ -2329,7 +2329,7 @@ mkRdrFunBindEC :: Arity -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsBind GhcPs mkRdrFunBindEC arity catch_all fun@(L loc _fun_rdr) matches - = L (na2la loc) (mkFunBind Generated fun matches') + = L (l2l loc) (mkFunBind Generated fun matches') where -- Catch-all eqn looks like -- fmap _ z = case z of {} @@ -2353,7 +2353,7 @@ mkRdrFunBindEC arity catch_all fun@(L loc _fun_rdr) matches mkRdrFunBindSE :: Arity -> LocatedN RdrName -> [LMatch GhcPs (LHsExpr GhcPs)] -> LHsBind GhcPs mkRdrFunBindSE arity fun@(L loc fun_rdr) matches - = L (na2la loc) (mkFunBind Generated fun matches') + = L (l2l loc) (mkFunBind Generated fun matches') where -- Catch-all eqn looks like -- compare _ _ = error "Void compare" diff --git a/compiler/GHC/Tc/Deriv/Generics.hs b/compiler/GHC/Tc/Deriv/Generics.hs index 41e7bb3e92..7ea70157cb 100644 --- a/compiler/GHC/Tc/Deriv/Generics.hs +++ b/compiler/GHC/Tc/Deriv/Generics.hs @@ -395,7 +395,7 @@ mkBindsRep dflags gk loc dit@(DerivInstTys{dit_rep_tc = tycon}) = (binds, sigs) from_matches = [mkHsCaseAlt pat rhs | (pat,rhs) <- from_alts] to_matches = [mkHsCaseAlt pat rhs | (pat,rhs) <- to_alts ] - loc' = noAnnSrcSpan loc + loc' = noAnnSrcSpanN loc loc'' = noAnnSrcSpan loc datacons = tyConDataCons tycon diff --git a/compiler/GHC/Tc/Errors/Ppr.hs b/compiler/GHC/Tc/Errors/Ppr.hs index 33c67fee79..58da01ee7c 100644 --- a/compiler/GHC/Tc/Errors/Ppr.hs +++ b/compiler/GHC/Tc/Errors/Ppr.hs @@ -190,7 +190,7 @@ instance Diagnostic TcRnMessage where TcRnDuplicateWarningDecls d rdr_name -> mkSimpleDecorated $ vcat [text "Multiple warning declarations for" <+> quotes (ppr rdr_name), - text "also at " <+> ppr (getLocA d)] + text "also at " <+> ppr (getLocN d)] TcRnSimplifierTooManyIterations simples limit wc -> mkSimpleDecorated $ hang (text "solveWanteds: too many iterations" @@ -307,7 +307,7 @@ instance Diagnostic TcRnMessage where 2 (vcat $ map pprLBind . bagToList $ binds) where pprLoc loc = parens (text "defined at" <+> ppr loc) - pprLBind :: CollectPass GhcRn => GenLocated (SrcSpanAnn' a) (HsBindLR GhcRn idR) -> SDoc + pprLBind :: CollectPass GhcRn => LocatedAnS a (HsBindLR GhcRn idR) -> SDoc pprLBind (L loc bind) = pprWithCommas ppr (collectHsBindBinders CollNoDictBinders bind) <+> pprLoc (locA loc) TcRnPartialTypeSigTyVarMismatch n1 n2 fn_name hs_ty @@ -3110,7 +3110,7 @@ dodgy_msg kind tc ie dodgy_msg_insert :: GlobalRdrElt -> IE GhcRn dodgy_msg_insert tc_gre = IEThingAll noAnn ii where - ii = noLocA (IEName noExtField $ noLocA $ greName tc_gre) + ii = noLocA (IEName noExtField $ noLocN $ greName tc_gre) pprTypeDoesNotHaveFixedRuntimeRep :: Type -> FixedRuntimeRepProvenance -> SDoc pprTypeDoesNotHaveFixedRuntimeRep ty prov = diff --git a/compiler/GHC/Tc/Gen/Bind.hs b/compiler/GHC/Tc/Gen/Bind.hs index cee24aa395..95739663ac 100644 --- a/compiler/GHC/Tc/Gen/Bind.hs +++ b/compiler/GHC/Tc/Gen/Bind.hs @@ -219,7 +219,7 @@ tcCompleteSigs sigs = -- compatible with the result type constructor 'mb_tc'. doOne (L loc c@(CompleteMatchSig (_ext, _src_txt) (L _ ns) mb_tc_nm)) = fmap Just $ setSrcSpanA loc $ addErrCtxt (text "In" <+> ppr c) $ do - cls <- mkUniqDSet <$> mapM (addLocMA tcLookupConLike) ns + cls <- mkUniqDSet <$> mapM (addLocMN tcLookupConLike) ns mb_tc <- traverse @Maybe tcLookupLocatedTyCon mb_tc_nm pure CompleteMatch { cmConLikes = cls, cmResultTyCon = mb_tc } doOne _ = return Nothing @@ -609,7 +609,7 @@ tcPolyCheck prag_fn , fun_matches = matches })) = do { traceTc "tcPolyCheck" (ppr poly_id $$ ppr sig_loc) - ; mono_name <- newNameAt (nameOccName name) (locA nm_loc) + ; mono_name <- newNameAt (nameOccName name) (locN nm_loc) ; (wrap_gen, (wrap_res, matches')) <- setSrcSpan sig_loc $ -- Sets the binding location for the skolems tcSkolemiseScoped ctxt (idType poly_id) $ \rho_ty -> @@ -639,7 +639,7 @@ tcPolyCheck prag_fn ; poly_id <- addInlinePrags poly_id prag_sigs ; mod <- getModule - ; tick <- funBindTicks (locA nm_loc) poly_id mod prag_sigs + ; tick <- funBindTicks (locN nm_loc) poly_id mod prag_sigs ; let bind' = FunBind { fun_id = L nm_loc poly_id2 , fun_matches = matches' @@ -1467,7 +1467,7 @@ tcLhs sig_fn no_gen (FunBind { fun_id = L nm_loc name -- Just g = ...f... -- Hence always typechecked with InferGen do { mono_info <- tcLhsSigId no_gen (name, sig) - ; return (TcFunBind mono_info (locA nm_loc) matches) } + ; return (TcFunBind mono_info (locN nm_loc) matches) } | otherwise -- No type signature = do { mono_ty <- newOpenFlexiTyVarTy @@ -1478,7 +1478,7 @@ tcLhs sig_fn no_gen (FunBind { fun_id = L nm_loc name ; let mono_info = MBI { mbi_poly_name = name , mbi_sig = Nothing , mbi_mono_id = mono_id } - ; return (TcFunBind mono_info (locA nm_loc) matches) } + ; return (TcFunBind mono_info (locN nm_loc) matches) } tcLhs sig_fn no_gen (PatBind { pat_lhs = pat, pat_rhs = grhss }) = -- See Note [Typechecking pattern bindings] @@ -1554,9 +1554,9 @@ tcRhs (TcFunBind info@(MBI { mbi_sig = mb_sig, mbi_mono_id = mono_id }) = tcExtendIdBinderStackForRhs [info] $ tcExtendTyVarEnvForRhs mb_sig $ do { traceTc "tcRhs: fun bind" (ppr mono_id $$ ppr (idType mono_id)) - ; (co_fn, matches') <- tcMatchesFun (L (noAnnSrcSpan loc) (idName mono_id)) + ; (co_fn, matches') <- tcMatchesFun (L (noAnnSrcSpanN loc) (idName mono_id)) matches (mkCheckExpType $ idType mono_id) - ; return ( FunBind { fun_id = L (noAnnSrcSpan loc) mono_id + ; return ( FunBind { fun_id = L (noAnnSrcSpanN loc) mono_id , fun_matches = matches' , fun_ext = (co_fn, []) } ) } diff --git a/compiler/GHC/Tc/Gen/Export.hs b/compiler/GHC/Tc/Gen/Export.hs index eed125e8b0..1eac073791 100644 --- a/compiler/GHC/Tc/Gen/Export.hs +++ b/compiler/GHC/Tc/Gen/Export.hs @@ -192,8 +192,8 @@ rnExports explicit_mod exports ; let real_exports | explicit_mod = exports | has_main - = Just (noLocA [noLocA (IEVar noExtField - (noLocA (IEName noExtField $ noLocA default_main)))]) + = Just (noLocI [noLocA (IEVar noExtField + (noLocA (IEName noExtField $ noLocN default_main)))]) -- ToDo: the 'noLoc' here is unhelpful if 'main' -- turns out to be out of scope | otherwise = Nothing @@ -532,7 +532,7 @@ lookupChildrenExport spec_parent rdr_items = mapAndReportM doOne rdr_items do { ub <- reportUnboundName unboundName ; let l = getLoc n gre = localVanillaGRE NoParent ub - ; return (L l (IEName noExtField (L (la2na l) ub)), gre)} + ; return (L l (IEName noExtField (L (l2l l) ub)), gre)} FoundChild child@(GRE { gre_par = par }) -> do { checkPatSynParent spec_parent par child ; let child_nm = greName child diff --git a/compiler/GHC/Tc/Gen/Expr.hs b/compiler/GHC/Tc/Gen/Expr.hs index 8a7ce396bf..d400a1f810 100644 --- a/compiler/GHC/Tc/Gen/Expr.hs +++ b/compiler/GHC/Tc/Gen/Expr.hs @@ -254,7 +254,7 @@ tcExpr e@(HsIPVar _ x) res_ty ; ipClass <- tcLookupClass ipClassName ; ip_var <- emitWantedEvVar origin (mkClassPred ipClass [ip_name, ip_ty]) ; tcWrapResult e - (fromDict ipClass ip_name ip_ty (HsVar noExtField (noLocA ip_var))) + (fromDict ipClass ip_name ip_ty (HsVar noExtField (noLocN ip_var))) ip_ty res_ty } where -- Coerces a dictionary for `IP "x" t` into `t`. @@ -1253,7 +1253,7 @@ desugarRecordUpd record_expr possible_parents rbnds res_ty ds_expr = HsLet noExtField noHsTok let_binds noHsTok (L gen case_expr) case_expr :: HsExpr GhcRn - case_expr = HsCase noExtField record_expr (mkMatchGroup Generated (wrapGenSpan matches)) + case_expr = HsCase noExtField record_expr (mkMatchGroup Generated (wrapGenSpanI matches)) matches :: [LMatch GhcRn (LHsExpr GhcRn)] matches = map make_pat relevant_cons diff --git a/compiler/GHC/Tc/Gen/Foreign.hs b/compiler/GHC/Tc/Gen/Foreign.hs index 31c42f86d6..ad6580b537 100644 --- a/compiler/GHC/Tc/Gen/Foreign.hs +++ b/compiler/GHC/Tc/Gen/Foreign.hs @@ -424,7 +424,7 @@ tcFExport fo@(ForeignExport { fd_name = L loc nm, fd_sig_ty = hs_ty, fd_fe = spe -- We need to give a name to the new top-level binding that -- is *stable* (i.e. the compiler won't change it later), -- because this name will be referred to by the C code stub. - id <- mkStableIdFromName nm sig_ty (locA loc) mkForeignExportOcc + id <- mkStableIdFromName nm sig_ty (locN loc) mkForeignExportOcc return ( mkVarBind id rhs , ForeignExport { fd_name = L loc id , fd_sig_ty = undefined diff --git a/compiler/GHC/Tc/Gen/Head.hs b/compiler/GHC/Tc/Gen/Head.hs index a5ad2f1733..e75f48c6a2 100644 --- a/compiler/GHC/Tc/Gen/Head.hs +++ b/compiler/GHC/Tc/Gen/Head.hs @@ -1009,7 +1009,7 @@ tcCheckId name res_ty ; addFunResCtxt rn_fun [] actual_res_ty res_ty $ tcWrapResultO (OccurrenceOf name) rn_fun expr actual_res_ty res_ty } where - rn_fun = HsVar noExtField (noLocA name) + rn_fun = HsVar noExtField (noLocN name) ------------------------ tcInferId :: Name -> TcM (HsExpr GhcTc, TcSigmaType) @@ -1034,7 +1034,7 @@ tc_infer_assert assert_name = do { assert_error_id <- tcLookupId assertErrorName ; (wrap, id_rho) <- topInstantiate (OccurrenceOf assert_name) (idType assert_error_id) - ; return (mkHsWrap wrap (HsVar noExtField (noLocA assert_error_id)), id_rho) + ; return (mkHsWrap wrap (HsVar noExtField (noLocN assert_error_id)), id_rho) } tc_infer_id :: Name -> TcM (HsExpr GhcTc, TcSigmaType) @@ -1086,7 +1086,7 @@ tc_infer_id id_name lcl_env <- getLocalRdrEnv unknownNameSuggestions lcl_env WL_Anything (mkRdrUnqual occ) - return_id id = return (HsVar noExtField (noLocA id), idType id) + return_id id = return (HsVar noExtField (noLocN id), idType id) check_local_id :: Id -> TcM () check_local_id id @@ -1297,7 +1297,7 @@ checkCrossStageLifting top_lvl id (Brack _ (TcPending ps_var lie_var q)) ; lift <- if isStringTy id_ty then do { sid <- tcLookupId GHC.Builtin.Names.TH.liftStringName -- See Note [Lifting strings] - ; return (HsVar noExtField (noLocA sid)) } + ; return (HsVar noExtField (noLocN sid)) } else setConstraintVar lie_var $ -- Put the 'lift' constraint into the right LIE diff --git a/compiler/GHC/Tc/Gen/HsType.hs b/compiler/GHC/Tc/Gen/HsType.hs index 9e8375b47d..bd366d688c 100644 --- a/compiler/GHC/Tc/Gen/HsType.hs +++ b/compiler/GHC/Tc/Gen/HsType.hs @@ -652,7 +652,7 @@ tcDerivStrategy mb_lds = case mb_lds of Nothing -> boring_case Nothing Just (L loc ds) -> - setSrcSpanA loc $ do + setSrcSpanI loc $ do (ds', tvs) <- tc_deriv_strategy ds pure (Just (L loc ds'), tvs) where @@ -765,7 +765,7 @@ tcFamTyPats fam_tc hs_pats where fam_name = tyConName fam_tc fam_arity = tyConArity fam_tc - lhs_fun = noLocA (HsTyVar noAnn NotPromoted (noLocA fam_name)) + lhs_fun = noLocA (HsTyVar noAnn NotPromoted (noLocN fam_name)) {- Note [tcFamTyPats: zonking the result kind] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1525,7 +1525,7 @@ splitHsAppTys hs_ty go (L _ (HsAppKindTy _ ty at k)) as = go ty (HsTypeArg at k : as) go (L sp (HsParTy _ f)) as = go f (HsArgPar (locA sp) : as) go (L _ (HsOpTy _ prom l op@(L sp _) r)) as - = ( L (na2la sp) (HsTyVar noAnn prom op) + = ( L (l2l sp) (HsTyVar noAnn prom op) , HsValArg l : HsValArg r : as ) go f as = (f, as) diff --git a/compiler/GHC/Tc/Gen/Match.hs b/compiler/GHC/Tc/Gen/Match.hs index db48eec968..82e5b3b4d8 100644 --- a/compiler/GHC/Tc/Gen/Match.hs +++ b/compiler/GHC/Tc/Gen/Match.hs @@ -202,8 +202,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))) ~ SrcAnn NoEpAnns - , Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ SrcAnn NoEpAnns + , Anno (GRHS GhcRn (LocatedA (body GhcRn))) ~ EpAnnS NoEpAnns + , Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnS NoEpAnns , Anno (StmtLR GhcRn GhcRn (LocatedA (body GhcRn))) ~ SrcSpanAnnA , Anno (StmtLR GhcTc GhcTc (LocatedA (body GhcTc))) ~ SrcSpanAnnA ) diff --git a/compiler/GHC/Tc/Gen/Pat.hs b/compiler/GHC/Tc/Gen/Pat.hs index 28b9891b91..a728a8161d 100644 --- a/compiler/GHC/Tc/Gen/Pat.hs +++ b/compiler/GHC/Tc/Gen/Pat.hs @@ -415,7 +415,7 @@ tc_pat pat_ty penv ps_pat thing_inside = case ps_pat of AsPat x (L nm_loc name) at pat -> do { mult_wrap <- checkManyPattern pat_ty -- See Note [Wrapper returned from tcSubMult] in GHC.Tc.Utils.Unify. - ; (wrap, bndr_id) <- setSrcSpanA nm_loc (tcPatBndr penv name pat_ty) + ; (wrap, bndr_id) <- setSrcSpanN nm_loc (tcPatBndr penv name pat_ty) ; (pat', res) <- tcExtendIdEnv1 name bndr_id $ tc_lpat (pat_ty `scaledSet`(mkCheckExpType $ idType bndr_id)) penv pat thing_inside @@ -662,7 +662,7 @@ AST is used for the subtraction operation. <- tcSyntaxOpGen orig minus [SynType pat_exp_ty, SynRho] SynAny $ \ [lit2_ty, var_ty] _ -> do { lit2' <- newOverloadedLit lit (mkCheckExpType lit2_ty) - ; (wrap, bndr_id) <- setSrcSpanA nm_loc $ + ; (wrap, bndr_id) <- setSrcSpanN nm_loc $ tcPatBndr penv name (unrestricted $ mkCheckExpType var_ty) -- co :: var_ty ~ idType bndr_id @@ -906,7 +906,7 @@ tcDataConPat (L con_span con_name) data_con pat_ty_scaled ; pat_ty <- readExpType (scaledThing pat_ty_scaled) -- Add the stupid theta - ; setSrcSpanA con_span $ addDataConStupidTheta data_con ctxt_res_tys + ; setSrcSpanN con_span $ addDataConStupidTheta data_con ctxt_res_tys -- Check that this isn't a GADT pattern match -- in situations in which that isn't allowed. diff --git a/compiler/GHC/Tc/Gen/Rule.hs b/compiler/GHC/Tc/Gen/Rule.hs index 121c43b987..fa4be02107 100644 --- a/compiler/GHC/Tc/Gen/Rule.hs +++ b/compiler/GHC/Tc/Gen/Rule.hs @@ -185,7 +185,7 @@ tcRule (HsRule { rd_ext = ext , rd_name = rname , rd_act = act , rd_tyvs = ty_bndrs -- preserved for ppr-ing - , rd_tmvs = map (noLocA . RuleBndr noAnn . noLocA) + , rd_tmvs = map (noLocI . RuleBndr noAnn . noLocN) (qtkvs ++ tpl_ids) , rd_lhs = mkHsDictLet lhs_binds lhs' , rd_rhs = mkHsDictLet rhs_binds rhs' } } diff --git a/compiler/GHC/Tc/Gen/Sig.hs b/compiler/GHC/Tc/Gen/Sig.hs index abd204fa50..f84e3eebfa 100644 --- a/compiler/GHC/Tc/Gen/Sig.hs +++ b/compiler/GHC/Tc/Gen/Sig.hs @@ -271,7 +271,7 @@ lhsSigWcTypeContextSpan (HsWC { hswc_body = sigType }) = lhsSigTypeContextSpan s lhsSigTypeContextSpan :: LHsSigType GhcRn -> ReportRedundantConstraints lhsSigTypeContextSpan (L _ HsSig { sig_body = sig_ty }) = go sig_ty where - go (L _ (HsQualTy { hst_ctxt = L span _ })) = WantRRC $ locA span -- Found it! + go (L _ (HsQualTy { hst_ctxt = L span _ })) = WantRRC $ locI span -- Found it! go (L _ (HsForAllTy { hst_body = hs_ty })) = go hs_ty -- Look under foralls go (L _ (HsParTy _ hs_ty)) = go hs_ty -- Look under parens go _ = NoRRC -- Did not find it diff --git a/compiler/GHC/Tc/Gen/Splice.hs b/compiler/GHC/Tc/Gen/Splice.hs index e28ba6f24f..9977b867c9 100644 --- a/compiler/GHC/Tc/Gen/Splice.hs +++ b/compiler/GHC/Tc/Gen/Splice.hs @@ -998,7 +998,7 @@ runAnnotation target expr = do ; let loc' = noAnnSrcSpan loc ; let specialised_to_annotation_wrapper_expr = L loc' (mkHsWrap wrapper - (HsVar noExtField (L (noAnnSrcSpan loc) to_annotation_wrapper_id))) + (HsVar noExtField (L (noAnnSrcSpanN loc) to_annotation_wrapper_id))) ; return (L loc' (HsApp noComments specialised_to_annotation_wrapper_expr expr')) }) diff --git a/compiler/GHC/Tc/Module.hs b/compiler/GHC/Tc/Module.hs index 1b02340061..8cd1b5fd49 100644 --- a/compiler/GHC/Tc/Module.hs +++ b/compiler/GHC/Tc/Module.hs @@ -289,7 +289,7 @@ tcRnModuleTcRnM hsc_env mod_sum ++ import_decls)) ; let { mkImport mod_name = noLocA $ (simpleImportDecl mod_name) - { ideclImportList = Just (Exactly, noLocA [])}} + { ideclImportList = Just (Exactly, noLocI [])}} ; let { withReason t imps = map (,text t) imps } ; let { all_imports = withReason "is implicitly imported" prel_imports ++ withReason "is directly imported" import_decls @@ -2033,7 +2033,7 @@ generateMainBinding tcg_env main_name = do { traceTc "checkMain found" (ppr main_name) ; (io_ty, res_ty) <- getIOType ; let loc = getSrcSpan main_name - main_expr_rn = L (noAnnSrcSpan loc) (HsVar noExtField (L (noAnnSrcSpan loc) main_name)) + main_expr_rn = L (noAnnSrcSpan loc) (HsVar noExtField (L (noAnnSrcSpanN loc) main_name)) ; (ev_binds, main_expr) <- setMainCtxt main_name io_ty $ tcCheckMonoExpr main_expr_rn io_ty @@ -2371,7 +2371,7 @@ tcUserStmt (L loc (BodyStmt _ expr _ _)) -- Don't try to typecheck if the renamer fails! ; ghciStep <- getGhciStepIO ; uniq <- newUnique - ; let loc' = noAnnSrcSpan $ locA loc + ; let loc' = noAnnSrcSpanN $ locA loc ; interPrintName <- getInteractivePrintName ; let fresh_it = itName uniq (locA loc) matches = [mkMatch (mkPrefixFunRhs (L loc' fresh_it)) [] rn_expr @@ -2639,7 +2639,7 @@ tcGhciStmts stmts stmts = tc_stmts ++ [noLocA (mkLastStmt ret_expr)] ; return (ids, mkHsDictLet (EvBinds const_binds) $ - noLocA (HsDo io_ret_ty GhciStmtCtxt (noLocA stmts))) + noLocA (HsDo io_ret_ty GhciStmtCtxt (noLocI stmts))) } -- | Generate a typed ghciStepIO expression (ghciStep :: Ty a -> IO a) @@ -2973,7 +2973,7 @@ tcRnLookupRdrName :: HscEnv -> LocatedN RdrName -- ^ Find all the Names that this RdrName could mean, in GHCi tcRnLookupRdrName hsc_env (L loc rdr_name) = runTcInteractive hsc_env $ - setSrcSpanA loc $ + setSrcSpanN loc $ do { -- If the identifier is a constructor (begins with an -- upper-case letter), then we need to consider both -- constructor and type class identifiers. diff --git a/compiler/GHC/Tc/TyCl.hs b/compiler/GHC/Tc/TyCl.hs index de6ef49225..ee43b5937a 100644 --- a/compiler/GHC/Tc/TyCl.hs +++ b/compiler/GHC/Tc/TyCl.hs @@ -2827,7 +2827,7 @@ tcInjectivity _ Nothing -- But this does not seem to be useful in any way so we don't do it. (Another -- reason is that the implementation would not be straightforward.) tcInjectivity tcbs (Just (L loc (InjectivityAnn _ _ lInjNames))) - = setSrcSpanA loc $ + = setSrcSpanI loc $ do { let tvs = binderVars tcbs ; dflags <- getDynFlags -- Fail eagerly to avoid reporting injectivity errors when @@ -4346,7 +4346,7 @@ checkFieldCompat fld con1 con2 res1 res2 fty1 fty2 checkValidDataCon :: DynFlags -> Bool -> TyCon -> DataCon -> TcM () checkValidDataCon dflags existential_ok tc con = setSrcSpan con_loc $ - addErrCtxt (dataConCtxt (NE.singleton (L (noAnnSrcSpan con_loc) con_name))) $ + addErrCtxt (dataConCtxt (NE.singleton (L (noAnnSrcSpanN con_loc) con_name))) $ do { let tc_tvs = tyConTyVars tc res_ty_tmpl = mkFamilyTyConApp tc (mkTyVarTys tc_tvs) arg_tys = dataConOrigArgTys con @@ -4992,7 +4992,7 @@ checkValidRoleAnnots role_annots tc check_no_roles = whenIsJust role_annot_decl_maybe illegalRoleAnnotDecl -checkRoleAnnot :: TyVar -> LocatedAn NoEpAnns (Maybe Role) -> Role -> TcM () +checkRoleAnnot :: TyVar -> LocatedAnS NoEpAnns (Maybe Role) -> Role -> TcM () checkRoleAnnot _ (L _ Nothing) _ = return () checkRoleAnnot tv (L _ (Just r1)) r2 = when (r1 /= r2) $ diff --git a/compiler/GHC/Tc/TyCl/Class.hs b/compiler/GHC/Tc/TyCl/Class.hs index 79374ac894..58d0b91d5d 100644 --- a/compiler/GHC/Tc/TyCl/Class.hs +++ b/compiler/GHC/Tc/TyCl/Class.hs @@ -177,7 +177,7 @@ tcClassSigs clas sigs def_methods -> IOEnv (Env TcGblEnv TcLclEnv) [(Name, (SrcSpan, Type))] -- AZ temp tc_gen_sig (op_names, gen_hs_ty) = do { gen_op_ty <- tcClassSigType op_names gen_hs_ty - ; return [ (op_name, (locA loc, gen_op_ty)) + ; return [ (op_name, (locN loc, gen_op_ty)) | L loc op_name <- op_names ] } {- @@ -194,8 +194,8 @@ tcClassDecl2 :: LTyClDecl GhcRn -- The class declaration tcClassDecl2 (L _ (ClassDecl {tcdLName = class_name, tcdSigs = sigs, tcdMeths = default_binds})) = recoverM (return emptyLHsBinds) $ - setSrcSpan (getLocA class_name) $ - do { clas <- tcLookupLocatedClass (n2l class_name) + setSrcSpan (getLocN class_name) $ + do { clas <- tcLookupLocatedClass class_name -- We make a separate binding for each default method. -- At one time I used a single AbsBinds for all of them, thus @@ -281,7 +281,7 @@ tcDefMeth clas tyvars this_dict binds_in hs_sig_fn prag_fn local_dm_ty = instantiateMethod clas global_dm_id (mkTyVarTys tyvars) - lm_bind = dm_bind { fun_id = L (la2na bind_loc) local_dm_name } + lm_bind = dm_bind { fun_id = L (l2l bind_loc) local_dm_name } -- Substitute the local_meth_name for the binder -- NB: the binding is always a FunBind @@ -345,7 +345,7 @@ tcClassMinimalDef _clas sigs op_info where -- By default require all methods without a default implementation defMindef :: ClassMinimalDef - defMindef = mkAnd [ noLocA (mkVar name) + defMindef = mkAnd [ noLocI (mkVar name) | (name, _, Nothing) <- op_info ] instantiateMethod :: Class -> TcId -> [TcType] -> TcType @@ -395,7 +395,7 @@ findMethodBind sel_name binds prag_fn f bind@(L _ (FunBind { fun_id = L bndr_loc op_name })) | op_name == sel_name - = Just (bind, locA bndr_loc, prags) + = Just (bind, locN bndr_loc, prags) f _other = Nothing --------------------------- @@ -508,7 +508,7 @@ tcATDefault loc inst_subst defined_ats (ATI fam_tc defs) (tv', cv') = partition isTyVar tcv' tvs' = scopedSort tv' cvs' = scopedSort cv' - ; rep_tc_name <- newFamInstTyConName (L (noAnnSrcSpan loc) (tyConName fam_tc)) pat_tys' + ; rep_tc_name <- newFamInstTyConName (L (noAnnSrcSpanN loc) (tyConName fam_tc)) pat_tys' ; let axiom = mkSingleCoAxiom Nominal rep_tc_name tvs' [] cvs' fam_tc pat_tys' rhs' -- NB: no validity check. We check validity of default instances diff --git a/compiler/GHC/Tc/TyCl/Instance.hs b/compiler/GHC/Tc/TyCl/Instance.hs index caae46ce36..937648d2f2 100644 --- a/compiler/GHC/Tc/TyCl/Instance.hs +++ b/compiler/GHC/Tc/TyCl/Instance.hs @@ -596,7 +596,7 @@ tcTyFamInstDecl mb_clsinfo (L loc decl@(TyFamInstDecl { tfid_eqn = eqn })) -- For some reason we don't have a location for the equation -- itself, so we make do with the location of family name ; co_ax_branch <- tcTyFamInstEqn fam_tc mb_clsinfo - (L (na2la $ getLoc fam_lname) eqn) + (L (l2l $ getLoc fam_lname) eqn) -- (2) check for validity ; checkConsistentFamInst mb_clsinfo fam_tc co_ax_branch @@ -1366,7 +1366,7 @@ addDFunPrags dfun_id sc_meth_ids is_newtype = isNewTyCon clas_tc wrapId :: HsWrapper -> Id -> HsExpr GhcTc -wrapId wrapper id = mkHsWrap wrapper (HsVar noExtField (noLocA id)) +wrapId wrapper id = mkHsWrap wrapper (HsVar noExtField (noLocN id)) {- Note [Typechecking plan for instance declarations] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -1938,7 +1938,7 @@ tcMethodBody skol_info clas tyvars dfun_ev_vars inst_tys mkMethIds clas tyvars dfun_ev_vars inst_tys sel_id - ; let lm_bind = meth_bind { fun_id = L (noAnnSrcSpan bndr_loc) + ; let lm_bind = meth_bind { fun_id = L (noAnnSrcSpanN bndr_loc) (idName local_meth_id) } -- Substitute the local_meth_name for the binder -- NB: the binding is always a FunBind @@ -2161,7 +2161,7 @@ mkDefMethBind loc dfun_id clas sel_id dm_name -- Copy the inline pragma (if any) from the default method -- to this version. Note [INLINE and default methods] - fn = noLocA (idName sel_id) + fn = noLocN (idName sel_id) visible_inst_tys = [ ty | (tcb, ty) <- tyConBinders (classTyCon clas) `zip` inst_tys , tyConBinderForAllTyFlag tcb /= Inferred ] rhs = foldl' mk_vta (nlHsVar dm_name) visible_inst_tys @@ -2410,4 +2410,3 @@ instDeclCtxt2 dfun_ty inst_decl_ctxt :: SDoc -> SDoc inst_decl_ctxt doc = hang (text "In the instance declaration for") 2 (quotes doc) - diff --git a/compiler/GHC/Tc/TyCl/PatSyn.hs b/compiler/GHC/Tc/TyCl/PatSyn.hs index c61c471bac..9f7e1374ba 100644 --- a/compiler/GHC/Tc/TyCl/PatSyn.hs +++ b/compiler/GHC/Tc/TyCl/PatSyn.hs @@ -768,7 +768,7 @@ tcPatSynMatcher (L loc ps_name) lpat prag_fn (univ_tvs, req_theta, req_ev_binds, req_dicts) (ex_tvs, ex_tys, prov_theta, prov_dicts) (args, arg_tys) pat_ty - = do { let loc' = locA loc + = do { let loc' = locN loc ; rr_name <- newNameAt (mkTyVarOccFS (fsLit "rep")) loc' ; tv_name <- newNameAt (mkTyVarOccFS (fsLit "r")) loc' ; let rr_tv = mkTyVar rr_name runtimeRepTy @@ -810,12 +810,12 @@ tcPatSynMatcher (L loc ps_name) lpat prag_fn body = mkLHsWrap (mkWpLet req_ev_binds) $ L (getLoc lpat) $ HsCase noExtField (nlHsVar scrutinee) $ - MG{ mg_alts = L (l2l $ getLoc lpat) cases + MG{ mg_alts = L (nn2la $ getLoc lpat) cases , mg_ext = MatchGroupTc [unrestricted pat_ty] res_ty Generated } body' = noLocA $ HsLam noExtField $ - MG{ mg_alts = noLocA [mkSimpleMatch LambdaExpr + MG{ mg_alts = noLocI [mkSimpleMatch LambdaExpr args body] , mg_ext = MatchGroupTc (map unrestricted [pat_ty, cont_ty, fail_ty]) res_ty Generated } @@ -824,7 +824,7 @@ tcPatSynMatcher (L loc ps_name) lpat prag_fn req_dicts body') (EmptyLocalBinds noExtField) mg :: MatchGroup GhcTc (LHsExpr GhcTc) - mg = MG{ mg_alts = L (l2l $ getLoc match) [match] + mg = MG{ mg_alts = L (nn2la $ getLoc match) [match] , mg_ext = MatchGroupTc [] res_ty Generated } matcher_arity = length req_theta + 3 @@ -958,9 +958,9 @@ tcPatSynBuilderBind prag_fn (PSB { psb_id = ps_lname@(L loc ps_name) Unidirectional -> panic "tcPatSynBuilderBind" mk_mg :: LHsExpr GhcRn -> MatchGroup GhcRn (LHsExpr GhcRn) - mk_mg body = mkMatchGroup Generated (noLocA [builder_match]) + mk_mg body = mkMatchGroup Generated (noLocI [builder_match]) where - builder_args = [L (na2la loc) (VarPat noExtField (L loc n)) + builder_args = [L (l2l loc) (VarPat noExtField (L loc n)) | L loc n <- args] builder_match = mkMatch (mkPrefixFunRhs ps_lname) builder_args body diff --git a/compiler/GHC/Tc/TyCl/Utils.hs b/compiler/GHC/Tc/TyCl/Utils.hs index 8e7b3b8c39..7b4367ccc5 100644 --- a/compiler/GHC/Tc/TyCl/Utils.hs +++ b/compiler/GHC/Tc/TyCl/Utils.hs @@ -876,7 +876,7 @@ mkOneRecordSelector all_cons idDetails fl has_sel where loc = getSrcSpan sel_name loc' = noAnnSrcSpan loc - locn = noAnnSrcSpan loc + locn = noAnnSrcSpanN loc locc = noAnnSrcSpan loc lbl = flLabel fl sel_name = flSelector fl diff --git a/compiler/GHC/Tc/Utils/Backpack.hs b/compiler/GHC/Tc/Utils/Backpack.hs index 5f76ba7e0c..c2e9146c1d 100644 --- a/compiler/GHC/Tc/Utils/Backpack.hs +++ b/compiler/GHC/Tc/Utils/Backpack.hs @@ -584,7 +584,7 @@ mergeSignatures -- a signature package (i.e., does not expose any -- modules.) If so, we can thin it. | isFromSignaturePackage - -> setSrcSpanA loc $ do + -> setSrcSpanI loc $ do -- Suppress missing errors; they might be used to refer -- to entities from other signatures we are merging in. -- If an identifier truly doesn't exist in any of the @@ -638,7 +638,7 @@ mergeSignatures is_mod = mod_name, is_as = mod_name, is_qual = False, - is_dloc = locA loc + is_dloc = locI loc } ImpAll rdr_env = mkGlobalRdrEnv $ gresFromAvails hsc_env (Just ispec) as1 setGblEnv tcg_env { diff --git a/compiler/GHC/Tc/Utils/Env.hs b/compiler/GHC/Tc/Utils/Env.hs index b8f9d83912..8a033d8e3a 100644 --- a/compiler/GHC/Tc/Utils/Env.hs +++ b/compiler/GHC/Tc/Utils/Env.hs @@ -320,11 +320,11 @@ tcLookupAxiom name = do tcLookupLocatedGlobalId :: LocatedA Name -> TcM Id tcLookupLocatedGlobalId = addLocMA tcLookupId -tcLookupLocatedClass :: LocatedA Name -> TcM Class -tcLookupLocatedClass = addLocMA tcLookupClass +tcLookupLocatedClass :: LocatedN Name -> TcM Class +tcLookupLocatedClass = addLocMN tcLookupClass tcLookupLocatedTyCon :: LocatedN Name -> TcM TyCon -tcLookupLocatedTyCon = addLocMA tcLookupTyCon +tcLookupLocatedTyCon = addLocMN tcLookupTyCon -- Find the instance that exactly matches a type class application. The class arguments must be precisely -- the same as in the instance declaration (modulo renaming & casts). @@ -1074,11 +1074,11 @@ newDFunName clas tys loc ; newGlobalBinder mod dfun_occ loc } newFamInstTyConName :: LocatedN Name -> [Type] -> TcM Name -newFamInstTyConName (L loc name) tys = mk_fam_inst_name id (locA loc) name [tys] +newFamInstTyConName (L loc name) tys = mk_fam_inst_name id (locN loc) name [tys] newFamInstAxiomName :: LocatedN Name -> [[Type]] -> TcM Name newFamInstAxiomName (L loc name) branches - = mk_fam_inst_name mkInstTyCoOcc (locA loc) name branches + = mk_fam_inst_name mkInstTyCoOcc (locN loc) name branches mk_fam_inst_name :: (OccName -> OccName) -> SrcSpan -> Name -> [[Type]] -> TcM Name mk_fam_inst_name adaptOcc loc tc_name tyss diff --git a/compiler/GHC/Tc/Utils/Instantiate.hs b/compiler/GHC/Tc/Utils/Instantiate.hs index 85671a0af5..58a472ff8a 100644 --- a/compiler/GHC/Tc/Utils/Instantiate.hs +++ b/compiler/GHC/Tc/Utils/Instantiate.hs @@ -131,7 +131,7 @@ newMethodFromName origin name ty_args ; wrap <- assert (not (isForAllTy ty) && isSingleton theta) $ instCall origin ty_args theta - ; return (mkHsWrap wrap (HsVar noExtField (noLocA id))) } + ; return (mkHsWrap wrap (HsVar noExtField (noLocN id))) } {- ************************************************************************ diff --git a/compiler/GHC/Tc/Utils/Monad.hs b/compiler/GHC/Tc/Utils/Monad.hs index 75b74cbb35..5172484ce9 100644 --- a/compiler/GHC/Tc/Utils/Monad.hs +++ b/compiler/GHC/Tc/Utils/Monad.hs @@ -61,9 +61,10 @@ module GHC.Tc.Utils.Monad( addDependentFiles, -- * Error management - getSrcSpanM, setSrcSpan, setSrcSpanA, addLocM, addLocMA, inGeneratedCode, - wrapLocM, wrapLocAM, wrapLocFstM, wrapLocFstMA, wrapLocSndM, wrapLocSndMA, wrapLocM_, - wrapLocMA_,wrapLocMA, + getSrcSpanM, setSrcSpan, setSrcSpanA, setSrcSpanI, setSrcSpanN, addLocM, addLocMA, addLocMN, + inGeneratedCode, + wrapLocM, wrapLocAM, wrapLocFstM, wrapLocFstMA, wrapLocFstMI, wrapLocSndM, wrapLocSndMA, wrapLocM_, + wrapLocMA_, wrapLocMA, wrapLocMI, getErrsVar, setErrsVar, addErr, failWith, failAt, @@ -993,26 +994,39 @@ setSrcSpan loc@(UnhelpfulSpan _) thing_inside | otherwise = thing_inside -setSrcSpanA :: SrcSpanAnn' ann -> TcRn a -> TcRn a +setSrcSpanA :: EpAnnS ann -> TcRn a -> TcRn a setSrcSpanA l = setSrcSpan (locA l) +setSrcSpanI :: SrcAnn ann -> TcRn a -> TcRn a +setSrcSpanI l = setSrcSpan (locI l) + +setSrcSpanN :: EpAnnS ann -> TcRn a -> TcRn a +setSrcSpanN l = setSrcSpan (locN l) + addLocM :: (a -> TcM b) -> Located a -> TcM b addLocM fn (L loc a) = setSrcSpan loc $ fn a -addLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcM b +addLocMA :: (a -> TcM b) -> LocatedAnS ann a -> TcM b addLocMA fn (L loc a) = setSrcSpanA loc $ fn a +addLocMN :: (a -> TcM b) -> LocatedN a -> TcM b +addLocMN fn (L loc a) = setSrcSpanN loc $ fn a + wrapLocM :: (a -> TcM b) -> Located a -> TcM (Located b) wrapLocM fn (L loc a) = setSrcSpan loc $ do { b <- fn a ; return (L loc b) } -wrapLocAM :: (a -> TcM b) -> LocatedAn an a -> TcM (Located b) +wrapLocAM :: (a -> TcM b) -> LocatedAnS ann a -> TcM (Located b) wrapLocAM fn a = wrapLocM fn (reLoc a) -wrapLocMA :: (a -> TcM b) -> GenLocated (SrcSpanAnn' ann) a -> TcRn (GenLocated (SrcSpanAnn' ann) b) +wrapLocMA :: (a -> TcM b) -> LocatedAnS ann a -> TcRn (LocatedAnS ann b) wrapLocMA fn (L loc a) = setSrcSpanA loc $ do { b <- fn a ; return (L loc b) } +wrapLocMI :: (a -> TcM b) -> LocatedAn ann a -> TcRn (LocatedAn ann b) +wrapLocMI fn (L loc a) = setSrcSpanI loc $ do { b <- fn a + ; return (L loc b) } + wrapLocFstM :: (a -> TcM (b,c)) -> Located a -> TcM (Located b, c) wrapLocFstM fn (L loc a) = setSrcSpan loc $ do @@ -1024,12 +1038,18 @@ wrapLocFstM fn (L loc a) = -- wrapLocFstMA :: (a -> TcM (b,c)) -> LocatedN a -> TcM (LocatedN b, c) -- wrapLocFstMA :: (a -> TcM (b,c)) -> LocatedAn t a -> TcM (LocatedAn t b, c) -- and so on. -wrapLocFstMA :: (a -> TcM (b,c)) -> GenLocated (SrcSpanAnn' ann) a -> TcM (GenLocated (SrcSpanAnn' ann) b, c) +wrapLocFstMA :: (a -> TcM (b,c)) -> LocatedAnS ann a -> TcM (LocatedAnS ann b, c) wrapLocFstMA fn (L loc a) = setSrcSpanA loc $ do (b,c) <- fn a return (L loc b, c) +wrapLocFstMI :: (a -> TcM (b,c)) -> GenLocated (SrcAnn ann) a -> TcM (GenLocated (SrcAnn ann) b, c) +wrapLocFstMI fn (L loc a) = + setSrcSpanI loc $ do + (b,c) <- fn a + return (L loc b, c) + wrapLocSndM :: (a -> TcM (b, c)) -> Located a -> TcM (b, Located c) wrapLocSndM fn (L loc a) = setSrcSpan loc $ do @@ -1041,7 +1061,7 @@ wrapLocSndM fn (L loc a) = -- wrapLocSndMA :: (a -> TcM (b, c)) -> LocatedN a -> TcM (b, LocatedN c) -- wrapLocSndMA :: (a -> TcM (b, c)) -> LocatedAn t a -> TcM (b, LocatedAn t c) -- and so on. -wrapLocSndMA :: (a -> TcM (b, c)) -> GenLocated (SrcSpanAnn' ann) a -> TcM (b, GenLocated (SrcSpanAnn' ann) c) +wrapLocSndMA :: (a -> TcM (b, c)) -> LocatedAnS ann a -> TcM (b, LocatedAnS ann c) wrapLocSndMA fn (L loc a) = setSrcSpanA loc $ do (b,c) <- fn a diff --git a/compiler/GHC/Tc/Utils/Zonk.hs b/compiler/GHC/Tc/Utils/Zonk.hs index aa2ffa8bae..0b667eabbb 100644 --- a/compiler/GHC/Tc/Utils/Zonk.hs +++ b/compiler/GHC/Tc/Utils/Zonk.hs @@ -669,7 +669,7 @@ zonkLTcSpecPrags env ps ************************************************************************ -} -zonkMatchGroup :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ SrcAnn NoEpAnns +zonkMatchGroup :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnS NoEpAnns => ZonkEnv -> (ZonkEnv -> LocatedA (body GhcTc) -> TcM (LocatedA (body GhcTc))) -> MatchGroup GhcTc (LocatedA (body GhcTc)) @@ -684,7 +684,7 @@ zonkMatchGroup env zBody (MG { mg_alts = L l ms , mg_ext = MatchGroupTc arg_tys' res_ty' origin }) } -zonkMatch :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ SrcAnn NoEpAnns +zonkMatch :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnS NoEpAnns => ZonkEnv -> (ZonkEnv -> LocatedA (body GhcTc) -> TcM (LocatedA (body GhcTc))) -> LMatch GhcTc (LocatedA (body GhcTc)) @@ -696,7 +696,7 @@ zonkMatch env 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))) ~ SrcAnn NoEpAnns +zonkGRHSs :: Anno (GRHS GhcTc (LocatedA (body GhcTc))) ~ EpAnnS NoEpAnns => ZonkEnv -> (ZonkEnv -> LocatedA (body GhcTc) -> TcM (LocatedA (body GhcTc))) -> GRHSs GhcTc (LocatedA (body GhcTc)) @@ -1152,7 +1152,7 @@ zonkStmt env zBody (RecStmt { recS_stmts = L _ segStmts, recS_later_ids = lvs ; new_later_rets <- mapM (zonkExpr env5) later_rets ; new_rec_rets <- mapM (zonkExpr env5) rec_rets ; return (extendIdZonkEnvRec env3 new_lvs, -- Only the lvs are needed - RecStmt { recS_stmts = noLocA new_segStmts + RecStmt { recS_stmts = noLocI new_segStmts , recS_later_ids = new_lvs , recS_rec_ids = new_rvs, recS_ret_fn = new_ret_id , recS_mfix_fn = new_mfix_id, recS_bind_fn = new_bind_id diff --git a/compiler/GHC/ThToHs.hs b/compiler/GHC/ThToHs.hs index 39da7e0c51..33cf68524a 100644 --- a/compiler/GHC/ThToHs.hs +++ b/compiler/GHC/ThToHs.hs @@ -141,15 +141,25 @@ getL = CvtM (\_ loc -> Right (loc,loc)) setL :: SrcSpan -> CvtM () setL loc = CvtM (\_ _ -> Right (loc, ())) -returnLA :: e -> CvtM (LocatedAn ann e) +returnLA :: (Monoid ann) => e -> CvtM (LocatedAnS ann e) returnLA x = CvtM (\_ loc -> Right (loc, L (noAnnSrcSpan loc) x)) +returnLL :: e -> CvtM (LocatedAn ann e) +returnLL x = CvtM (\_ loc -> Right (loc, L (noAnnSrcSpanI loc) x)) + + returnJustLA :: a -> CvtM (Maybe (LocatedA a)) returnJustLA = fmap Just . returnLA -wrapParLA :: (LocatedAn ann a -> b) -> a -> CvtM b +wrapParLA :: (LocatedA a -> b) -> a -> CvtM b wrapParLA add_par x = CvtM (\_ loc -> Right (loc, add_par (L (noAnnSrcSpan loc) x))) +wrapParLL :: (LocatedL a -> b) -> a -> CvtM b +wrapParLL add_par x = CvtM (\_ loc -> Right (loc, add_par (L (noAnnSrcSpanI loc) x))) + +wrapParLN :: (LocatedN a -> b) -> a -> CvtM b +wrapParLN add_par x = CvtM (\_ loc -> Right (loc, add_par (L (noAnnSrcSpanN loc) x))) + wrapMsg :: ThingBeingConverted -> CvtM' ConversionFailReason a -> CvtM' RunSpliceFailReason a wrapMsg what = mapCvtMError (ConversionFail what) @@ -161,7 +171,7 @@ wrapL (CvtM m) = CvtM $ \origin loc -> case m origin loc of wrapLN :: CvtM a -> CvtM (LocatedN a) wrapLN (CvtM m) = CvtM $ \origin loc -> case m origin loc of Left err -> Left err - Right (loc', v) -> Right (loc', L (noAnnSrcSpan loc) v) + Right (loc', v) -> Right (loc', L (noAnnSrcSpanN loc) v) wrapLA :: CvtM a -> CvtM (LocatedA a) wrapLA (CvtM m) = CvtM $ \origin loc -> case m origin loc of @@ -327,7 +337,7 @@ cvtDec (InstanceD o ctxt ty decs) , cid_sigs = Hs.mkClassOpSigs sigs' , cid_tyfam_insts = ats', cid_datafam_insts = adts' , cid_overlap_mode - = fmap (L (l2l loc) . overlap) o } } + = fmap (L (nn2la loc) . overlap) o } } where overlap pragma = case pragma of @@ -464,7 +474,8 @@ cvtDec (TH.PatSynD nm args dir pat) cvtDir n (ExplBidir cls) = do { ms <- mapM (cvtClause (mkPrefixFunRhs n)) cls ; th_origin <- getOrigin - ; wrapParLA (ExplicitBidirectional . mkMatchGroup th_origin) ms } + ; wrapParLL (ExplicitBidirectional . mkMatchGroup th_origin) ms } + cvtDec (TH.PatSynSigD nm ty) = do { nm' <- cNameN nm @@ -681,7 +692,7 @@ cvtConstr _ do_con_name (NormalC c strtys) cvtConstr parent_con do_con_name (RecC c varstrtys) = do { c' <- do_con_name c ; args' <- mapM (cvt_id_arg parent_con) varstrtys - ; con_decl <- wrapParLA (mkConDeclH98 noAnn c' Nothing Nothing . RecCon) args' + ; con_decl <- wrapParLL (mkConDeclH98 noAnn c' Nothing Nothing . RecCon) args' ; returnLA con_decl } cvtConstr _ do_con_name (InfixC st1 c st2) @@ -736,7 +747,7 @@ cvtConstr parent_con do_con_name (RecGadtC c varstrtys ty) = case nonEmpty c of { c' <- mapM do_con_name c ; ty' <- cvtType ty ; rec_flds <- mapM (cvt_id_arg parent_con) varstrtys - ; lrec_flds <- returnLA rec_flds + ; lrec_flds <- returnLL rec_flds ; mk_gadt_decl c' (RecConGADT lrec_flds noHsUniTok) ty' } mk_gadt_decl :: NonEmpty (LocatedN RdrName) -> HsConDeclGADTDetails GhcPs -> LHsType GhcPs @@ -906,7 +917,7 @@ cvtPragmaD (SpecialiseInstP ty) cvtPragmaD (RuleP nm ty_bndrs tm_bndrs lhs rhs phases) = do { let nm' = mkFastString nm - ; rd_name' <- returnLA nm' + ; rd_name' <- returnLL nm' ; let act = cvtPhases phases AlwaysActive ; ty_bndrs' <- traverse cvtTvs ty_bndrs ; tm_bndrs' <- mapM cvtRuleBndr tm_bndrs @@ -932,10 +943,10 @@ cvtPragmaD (AnnP target exp) ModuleAnnotation -> return ModuleAnnProvenance TypeAnnotation n -> do n' <- tconName n - wrapParLA TypeAnnProvenance n' + wrapParLN TypeAnnProvenance n' ValueAnnotation n -> do n' <- vcName n - wrapParLA ValueAnnProvenance n' + wrapParLN ValueAnnProvenance n' ; returnJustLA $ Hs.AnnD noExtField $ HsAnnotation (noAnn, (SourceText "{-# ANN")) target' exp' } @@ -973,11 +984,11 @@ cvtPhases (BeforePhase i) _ = ActiveBefore NoSourceText i cvtRuleBndr :: TH.RuleBndr -> CvtM (Hs.LRuleBndr GhcPs) cvtRuleBndr (RuleVar n) = do { n' <- vNameN n - ; returnLA $ Hs.RuleBndr noAnn n' } + ; returnLL $ Hs.RuleBndr noAnn n' } cvtRuleBndr (TypedRuleVar n ty) = do { n' <- vNameN n ; ty' <- cvtType ty - ; returnLA $ Hs.RuleBndrSig noAnn n' $ mkHsPatSigType noAnn ty' } + ; returnLL $ Hs.RuleBndrSig noAnn n' $ mkHsPatSigType noAnn ty' } --------------------------------------------------- -- Declarations @@ -1013,7 +1024,7 @@ cvtImplicitParamBind :: String -> TH.Exp -> CvtM (LIPBind GhcPs) cvtImplicitParamBind n e = do n' <- wrapL (ipName n) e' <- cvtl e - returnLA (IPBind noAnn (reLocA n') e') + returnLA (IPBind noAnn (reLocE n') e') ------------------------------------------------------------------- -- Expressions @@ -1022,8 +1033,8 @@ cvtImplicitParamBind n e = do cvtl :: TH.Exp -> CvtM (LHsExpr GhcPs) cvtl e = wrapLA (cvt e) where - cvt (VarE s) = do { s' <- vName s; wrapParLA (HsVar noExtField) s' } - cvt (ConE s) = do { s' <- cName s; wrapParLA (HsVar noExtField) s' } + cvt (VarE s) = do { s' <- vName s; wrapParLN (HsVar noExtField) s' } + cvt (ConE s) = do { s' <- cName s; wrapParLN (HsVar noExtField) s' } cvt (LitE l) | overloadedLit l = go cvtOverLit (HsOverLit noComments) (hsOverLitNeedsParens appPrec) @@ -1052,17 +1063,17 @@ cvtl e = wrapLA (cvt e) cvt (LamE ps e) = do { ps' <- cvtPats ps; e' <- cvtl e ; let pats = map (parenthesizePat appPrec) ps' ; th_origin <- getOrigin - ; wrapParLA (HsLam noExtField . mkMatchGroup th_origin) + ; wrapParLA (HsLam noExtField . mkMatchGroup th_origin . n2l) [mkSimpleMatch LambdaExpr pats e']} cvt (LamCaseE ms) = do { ms' <- mapM (cvtMatch $ LamCaseAlt LamCase) ms ; th_origin <- getOrigin - ; wrapParLA (HsLamCase noAnn LamCase . mkMatchGroup th_origin) ms' + ; wrapParLA (HsLamCase noAnn LamCase . mkMatchGroup th_origin . n2l) ms' } cvt (LamCasesE ms) | null ms = failWith CasesExprWithoutAlts | otherwise = do { ms' <- mapM (cvtClause $ LamCaseAlt LamCases) ms ; th_origin <- getOrigin - ; wrapParLA (HsLamCase noAnn LamCases . mkMatchGroup th_origin) ms' + ; wrapParLA (HsLamCase noAnn LamCases . mkMatchGroup th_origin . n2l) ms' } cvt (TupE es) = cvt_tup es Boxed cvt (UnboxedTupE es) = cvt_tup es Unboxed @@ -1079,7 +1090,7 @@ cvtl e = wrapLA (cvt e) ; e' <- cvtl e; return $ HsLet noAnn noHsTok ds' noHsTok e'} cvt (CaseE e ms) = do { e' <- cvtl e; ms' <- mapM (cvtMatch CaseAlt) ms ; th_origin <- getOrigin - ; wrapParLA (HsCase noAnn e' . mkMatchGroup th_origin) ms' } + ; wrapParLA (HsCase noAnn e' . mkMatchGroup th_origin .n2l) ms' } cvt (DoE m ss) = cvtHsDo (DoExpr (mk_mod <$> m)) ss cvt (MDoE m ss) = cvtHsDo (MDoExpr (mk_mod <$> m)) ss cvt (CompE ss) = cvtHsDo ListComp ss @@ -1134,11 +1145,11 @@ cvtl e = wrapLA (cvt e) ; let pe = parenthesizeHsExpr sigPrec e' ; return $ ExprWithTySig noAnn pe (mkHsWildCardBndrs t') } cvt (RecConE c flds) = do { c' <- cNameN c - ; flds' <- mapM (cvtFld (wrapParLA mkFieldOcc)) flds + ; flds' <- mapM (cvtFld (wrapParLN mkFieldOcc)) flds ; return $ mkRdrRecordCon c' (HsRecFields flds' Nothing) noAnn } cvt (RecUpdE e flds) = do { e' <- cvtl e ; flds' - <- mapM (cvtFld (wrapParLA mkAmbiguousFieldOcc)) + <- mapM (cvtFld (wrapParLN mkAmbiguousFieldOcc)) flds ; return $ RecordUpd noAnn e' $ RegularRecUpdFields @@ -1149,14 +1160,14 @@ cvtl e = wrapLA (cvt e) -- important, because UnboundVarE may contain -- constructor names - see #14627. { s' <- vcName s - ; wrapParLA (HsVar noExtField) s' } + ; wrapParLN (HsVar noExtField) s' } cvt (LabelE s) = return $ HsOverLabel noComments NoSourceText (fsLit s) cvt (ImplicitParamVarE n) = do { n' <- ipName n; return $ HsIPVar noComments n' } cvt (GetFieldE exp f) = do { e' <- cvtl exp ; return $ HsGetField noComments e' - (L noSrcSpanA (DotFieldOcc noAnn (L noSrcSpanA (FieldLabelString (fsLit f))))) } + (L noSrcSpanI (DotFieldOcc noAnn (L noSrcSpanN (FieldLabelString (fsLit f))))) } cvt (ProjectionE xs) = return $ HsProjection noAnn $ fmap - (L noSrcSpanA . DotFieldOcc noAnn . L noSrcSpanA . FieldLabelString . fsLit) xs + (L noSrcSpanI . DotFieldOcc noAnn . L noSrcSpanN . FieldLabelString . fsLit) xs cvt (TypedSpliceE e) = do { e' <- parenthesizeHsExpr appPrec <$> cvtl e ; return $ HsTypedSplice (noAnn, noAnn) e' } cvt (TypedBracketE e) = do { e' <- cvtl e @@ -1195,7 +1206,7 @@ which we don't want. -} cvtFld :: (RdrName -> CvtM t) -> (TH.Name, TH.Exp) - -> CvtM (LHsFieldBind GhcPs (LocatedAn NoEpAnns t) (LHsExpr GhcPs)) + -> CvtM (LHsFieldBind GhcPs (LocatedAnS NoEpAnns t) (LHsExpr GhcPs)) cvtFld f (v,e) = do { v' <- vNameL v ; lhs' <- traverse f v' @@ -1301,7 +1312,7 @@ cvtHsDo do_or_lc stmts = case nonEmpty stmts of -> return (L loc (mkLastStmt body)) _ -> failWith (bad_last last') - ; wrapParLA (HsDo noAnn do_or_lc) (stmts'' ++ [last'']) } + ; wrapParLL (HsDo noAnn do_or_lc) (stmts'' ++ [last'']) } where bad_last stmt = IllegalLastStatement do_or_lc stmt @@ -1319,7 +1330,7 @@ cvtStmt (TH.ParS dss) = do { dss' <- mapM cvt_one dss cvt_one ds = do { ds' <- cvtStmts ds ; return (ParStmtBlock noExtField ds' undefined noSyntaxExpr) } cvtStmt (TH.RecS ss) = do { ss' <- mapM cvtStmt ss - ; rec_stmt <- wrapParLA (mkRecStmt noAnn) ss' + ; rec_stmt <- wrapParLL (mkRecStmt noAnn) ss' ; returnLA rec_stmt } cvtMatch :: HsMatchContext GhcPs @@ -1416,13 +1427,13 @@ cvtPat pat = wrapLA (cvtp pat) cvtp :: TH.Pat -> CvtM (Hs.Pat GhcPs) cvtp (TH.LitP l) | overloadedLit l = do { l' <- cvtOverLit l - ; l'' <- returnLA l' + ; l'' <- returnLL l' ; return (mkNPat l'' Nothing noAnn) } -- Not right for negative patterns; -- need to think about that! | otherwise = do { l' <- cvtLit l; return $ Hs.LitPat noExtField l' } cvtp (TH.VarP s) = do { s' <- vName s - ; wrapParLA (Hs.VarPat noExtField) s' } + ; wrapParLN (Hs.VarPat noExtField) s' } cvtp (TupP ps) = do { ps' <- cvtPats ps ; return $ TuplePat noAnn ps' Boxed } cvtp (UnboxedTupP ps) = do { ps' <- cvtPats ps @@ -1484,7 +1495,7 @@ cvtPatFld (s,p) ; p' <- cvtPat p ; returnLA $ HsFieldBind { hfbAnn = noAnn , hfbLHS - = L (l2l ls) $ mkFieldOcc (L (l2l ls) s') + = L (l2l ls) $ mkFieldOcc (L ls s') , hfbRHS = p' , hfbPun = False} } @@ -1542,7 +1553,7 @@ cvtRole TH.InferR = Nothing cvtContext :: PprPrec -> TH.Cxt -> CvtM (LHsContext GhcPs) cvtContext p tys = do { preds' <- mapM cvtPred tys - ; parenthesizeHsContext p <$> returnLA preds' } + ; parenthesizeHsContext p <$> returnLL preds' } cvtPred :: TH.Pred -> CvtM (LHsType GhcPs) cvtPred = cvtType @@ -1558,23 +1569,23 @@ cvtDerivClauseTys tys ; case tys' of [ty'@(L l (HsSig { sig_bndrs = HsOuterImplicit{} , sig_body = L _ (HsTyVar _ NotPromoted _) }))] - -> return $ L (l2l l) $ DctSingle noExtField ty' - _ -> returnLA $ DctMulti noExtField tys' } + -> return $ L (nn2la l) $ DctSingle noExtField ty' + _ -> returnLL $ DctMulti noExtField tys' } cvtDerivClause :: TH.DerivClause -> CvtM (LHsDerivingClause GhcPs) cvtDerivClause (TH.DerivClause ds tys) = do { tys' <- cvtDerivClauseTys tys ; ds' <- traverse cvtDerivStrategy ds - ; returnLA $ HsDerivingClause noAnn ds' tys' } + ; returnLL $ HsDerivingClause noAnn ds' tys' } cvtDerivStrategy :: TH.DerivStrategy -> CvtM (Hs.LDerivStrategy GhcPs) -cvtDerivStrategy TH.StockStrategy = returnLA (Hs.StockStrategy noAnn) -cvtDerivStrategy TH.AnyclassStrategy = returnLA (Hs.AnyclassStrategy noAnn) -cvtDerivStrategy TH.NewtypeStrategy = returnLA (Hs.NewtypeStrategy noAnn) +cvtDerivStrategy TH.StockStrategy = returnLL (Hs.StockStrategy noAnn) +cvtDerivStrategy TH.AnyclassStrategy = returnLL (Hs.AnyclassStrategy noAnn) +cvtDerivStrategy TH.NewtypeStrategy = returnLL (Hs.NewtypeStrategy noAnn) cvtDerivStrategy (TH.ViaStrategy ty) = do ty' <- cvtSigType ty - returnLA $ Hs.ViaStrategy (XViaStrategyPs noAnn ty') + returnLL $ Hs.ViaStrategy (XViaStrategyPs noAnn ty') cvtType :: TH.Type -> CvtM (LHsType GhcPs) cvtType = cvtTypeKind TypeLevel @@ -1788,7 +1799,7 @@ cvtTypeKind typeOrKind ty ImplicitParamT n t -> do { n' <- wrapL $ ipName n ; t' <- cvtType t - ; returnLA (HsIParamTy noAnn (reLocA n') t') + ; returnLA (HsIParamTy noAnn (reLocE n') t') } _ -> failWith (MalformedType typeOrKind ty) @@ -1913,18 +1924,18 @@ cvtSigKind = cvtSigTypeKind KindLevel -- signature is possible). cvtMaybeKindToFamilyResultSig :: Maybe TH.Kind -> CvtM (LFamilyResultSig GhcPs) -cvtMaybeKindToFamilyResultSig Nothing = returnLA (Hs.NoSig noExtField) +cvtMaybeKindToFamilyResultSig Nothing = returnLL (Hs.NoSig noExtField) cvtMaybeKindToFamilyResultSig (Just ki) = do { ki' <- cvtKind ki - ; returnLA (Hs.KindSig noExtField ki') } + ; returnLL (Hs.KindSig noExtField ki') } -- | Convert type family result signature. Used with both open and closed type -- families. cvtFamilyResultSig :: TH.FamilyResultSig -> CvtM (Hs.LFamilyResultSig GhcPs) -cvtFamilyResultSig TH.NoSig = returnLA (Hs.NoSig noExtField) +cvtFamilyResultSig TH.NoSig = returnLL (Hs.NoSig noExtField) cvtFamilyResultSig (TH.KindSig ki) = do { ki' <- cvtKind ki - ; returnLA (Hs.KindSig noExtField ki') } + ; returnLL (Hs.KindSig noExtField ki') } cvtFamilyResultSig (TH.TyVarSig bndr) = do { tv <- cvt_tv bndr - ; returnLA (Hs.TyVarSig noExtField tv) } + ; returnLL (Hs.TyVarSig noExtField tv) } -- | Convert injectivity annotation of a type family. cvtInjectivityAnnotation :: TH.InjectivityAnn @@ -1932,7 +1943,7 @@ cvtInjectivityAnnotation :: TH.InjectivityAnn cvtInjectivityAnnotation (TH.InjectivityAnn annLHS annRHS) = do { annLHS' <- tNameN annLHS ; annRHS' <- mapM tNameN annRHS - ; returnLA (Hs.InjectivityAnn noAnn annLHS' annRHS') } + ; returnLL (Hs.InjectivityAnn noAnn annLHS' annRHS') } cvtPatSynSigTy :: TH.Type -> CvtM (LHsSigType GhcPs) -- pattern synonym types are of peculiar shapes, which is why we treat @@ -1941,7 +1952,7 @@ cvtPatSynSigTy :: TH.Type -> CvtM (LHsSigType GhcPs) cvtPatSynSigTy (ForallT univs reqs (ForallT exis provs ty)) | null exis, null provs = cvtSigType (ForallT univs reqs ty) | null univs, null reqs = do { ty' <- cvtType (ForallT exis provs ty) - ; ctxt' <- returnLA [] + ; ctxt' <- returnLL [] ; cxtTy <- wrapParLA mkHsImplicitSigType $ HsQualTy { hst_ctxt = ctxt' , hst_xqual = noExtField @@ -1949,7 +1960,7 @@ cvtPatSynSigTy (ForallT univs reqs (ForallT exis provs ty)) ; returnLA cxtTy } | null reqs = do { univs' <- cvtTvs univs ; ty' <- cvtType (ForallT exis provs ty) - ; ctxt' <- returnLA [] + ; ctxt' <- returnLL [] ; let cxtTy = HsQualTy { hst_ctxt = ctxt' , hst_xqual = noExtField , hst_body = ty' } diff --git a/compiler/GHC/Unit/Module/Warnings.hs b/compiler/GHC/Unit/Module/Warnings.hs index 72f6586094..5c8c1778d8 100644 --- a/compiler/GHC/Unit/Module/Warnings.hs +++ b/compiler/GHC/Unit/Module/Warnings.hs @@ -176,10 +176,10 @@ data WarningTxt pass (Maybe (Located WarningCategory)) -- ^ Warning category attached to this WARNING pragma, if any; -- see Note [Warning categories] - (Located SourceText) + SourceText [Located (WithHsDocIdentifiers StringLiteral pass)] | DeprecatedTxt - (Located SourceText) + SourceText [Located (WithHsDocIdentifiers StringLiteral pass)] deriving Generic @@ -194,12 +194,12 @@ deriving instance (Data pass, Data (IdP pass)) => Data (WarningTxt pass) instance Outputable (WarningTxt pass) where ppr (WarningTxt _ lsrc ws) - = case unLoc lsrc of + = case lsrc of NoSourceText -> pp_ws ws SourceText src -> text src <+> pp_ws ws <+> text "#-}" ppr (DeprecatedTxt lsrc ds) - = case unLoc lsrc of + = case lsrc of NoSourceText -> pp_ws ds SourceText src -> text src <+> pp_ws ds <+> text "#-}" @@ -207,21 +207,21 @@ instance Binary (WarningTxt GhcRn) where put_ bh (WarningTxt c s w) = do putByte bh 0 put_ bh $ unLoc <$> c - put_ bh $ unLoc s + put_ bh s put_ bh $ unLoc <$> w put_ bh (DeprecatedTxt s d) = do putByte bh 1 - put_ bh $ unLoc s + put_ bh s put_ bh $ unLoc <$> d get bh = do h <- getByte bh case h of 0 -> do c <- fmap noLoc <$> get bh - s <- noLoc <$> get bh + s <- get bh w <- fmap noLoc <$> get bh return (WarningTxt c s w) - _ -> do s <- noLoc <$> get bh + _ -> do s <- get bh d <- fmap noLoc <$> get bh return (DeprecatedTxt s d) @@ -304,4 +304,3 @@ plusWarns NoWarnings d = d plusWarns _ (WarnAll t) = WarnAll t plusWarns (WarnAll t) _ = WarnAll t plusWarns (WarnSome v1) (WarnSome v2) = WarnSome (v1 ++ v2) - diff --git a/ghc/GHCi/UI/Info.hs b/ghc/GHCi/UI/Info.hs index 505a1da68f..07f4103cdd 100644 --- a/ghc/GHCi/UI/Info.hs +++ b/ghc/GHCi/UI/Info.hs @@ -351,7 +351,7 @@ processAllTypeCheckedModule tcm -- | Extract 'Id', 'SrcSpan', and 'Type' for 'LHsBind's getTypeLHsBind :: LHsBind GhcTc -> Maybe (Maybe Id,SrcSpan,Type) getTypeLHsBind (L _spn FunBind{fun_id = pid,fun_matches = MG _ _}) - = Just (Just (unLoc pid), getLocA pid,varType (unLoc pid)) + = Just (Just (unLoc pid), getLocN pid,varType (unLoc pid)) getTypeLHsBind _ = Nothing -- | Extract 'Id', 'SrcSpan', and 'Type' for 'LHsExpr's diff --git a/testsuite/tests/ghc-api/T11579.stdout b/testsuite/tests/ghc-api/T11579.stdout index 1140ed9228..5eddfaba25 100644 --- a/testsuite/tests/ghc-api/T11579.stdout +++ b/testsuite/tests/ghc-api/T11579.stdout @@ -1 +1 @@ -HdkCommentNamed "bar" (MultiLineDocString (HsDocStringNamed "bar") (L (RealSrcSpan SrcSpanOneLine "Foo.hs" 1 8 13 (Just (BufSpan {bufSpanStart = BufPos {bufPos = 7}, bufSpanEnd = BufPos {bufPos = 12}}))) (HsDocStringChunk " some") :| [L (RealSrcSpan SrcSpanOneLine "Foo.hs" 2 3 15 (Just (BufSpan {bufSpanStart = BufPos {bufPos = 15}, bufSpanEnd = BufPos {bufPos = 27}}))) (HsDocStringChunk " named chunk")])) +HdkCommentNamed "bar" (MultiLineDocString (HsDocStringNamed "bar") (L (RealSrcSpan SrcSpanOneLine "Foo.hs" 1 8 13 (Just (BufSpan {bufSpanStart = BufPos {bufPos = 7}, bufSpanEnd = BufPos {bufPos = 12}}))) (HsDocStringChunk " some") :| [L (RealSrcSpan SrcSpanOneLine "Foo.hs" 2 3 15 (Just (BufSpan {bufSpanStart = BufPos {bufPos = 15}, bufSpanEnd = BufPos {bufPos = 27}}))) (HsDocStringChunk " named chunk")]))
\ No newline at end of file diff --git a/testsuite/tests/ghc-api/exactprint/AddDecl2.expected.hs b/testsuite/tests/ghc-api/exactprint/AddDecl2.expected.hs index 2bbbcf5b37..5e134b5234 100644 --- a/testsuite/tests/ghc-api/exactprint/AddDecl2.expected.hs +++ b/testsuite/tests/ghc-api/exactprint/AddDecl2.expected.hs @@ -8,6 +8,6 @@ foo a b = a + b -- | Do bar bar x y = {- baz -} foo (x+y) x -nn = n2 - -- end of file + +nn = n2 diff --git a/testsuite/tests/ghc-api/exactprint/AddHiding1.expected.hs b/testsuite/tests/ghc-api/exactprint/AddHiding1.expected.hs index f3c8f17c8b..2e2909660f 100644 --- a/testsuite/tests/ghc-api/exactprint/AddHiding1.expected.hs +++ b/testsuite/tests/ghc-api/exactprint/AddHiding1.expected.hs @@ -5,4 +5,3 @@ import Data.Maybe hiding (n1,n2) import Data.Maybe hiding (n1,n2) f = 1 - diff --git a/testsuite/tests/ghc-api/exactprint/T22919.stderr b/testsuite/tests/ghc-api/exactprint/T22919.stderr index 5215026856..bd19cccee8 100644 --- a/testsuite/tests/ghc-api/exactprint/T22919.stderr +++ b/testsuite/tests/ghc-api/exactprint/T22919.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T22919.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T22919.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T22919.hs:1:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T22919.hs:1:29-33 }))] @@ -19,9 +17,7 @@ { T22919.hs:2:7-9 }))) (EpaCommentsBalanced [(L - (Anchor - { T22919.hs:1:15-27 } - (UnchangedAnchor)) + (EpaSpan { T22919.hs:1:15-27 }) (EpaComment (EpaBlockComment "{- comment -}") @@ -33,25 +29,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:1:8-13 }) + ((EpAnnS + (EpaSpan { T22919.hs:1:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T22919})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T22919.hs:2:1-9 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T22919.hs:2:1-9 }) + ((EpAnnS + (EpaSpan { T22919.hs:2:1-9 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:2:1-3 }) + ((EpAnnS + (EpaSpan { T22919.hs:2:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (MG @@ -59,18 +63,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:2:1-9 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:2:1-9 }) + ((EpAnnS + (EpaSpan { T22919.hs:2:1-9 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { T22919.hs:2:1-9 } - (UnchangedAnchor)) + (EpaSpan { T22919.hs:2:1-9 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:2:1-3 }) + ((EpAnnS + (EpaSpan { T22919.hs:2:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (Prefix) @@ -80,14 +92,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { T22919.hs:2:5-9 }) + (EpAnnS + (EpaSpan { T22919.hs:2:5-9 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { T22919.hs:2:5-9 } - (UnchangedAnchor)) + (EpaSpan { T22919.hs:2:5-9 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { T22919.hs:2:5 }))) @@ -95,12 +107,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { T22919.hs:2:7-9 }) + ((EpAnnS + (EpaSpan { T22919.hs:2:7-9 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { T22919.hs:2:7-9 } - (UnchangedAnchor)) + (EpaSpan { T22919.hs:2:7-9 }) (NoEpAnns) (EpaComments [])) diff --git a/testsuite/tests/ghc-api/exactprint/Test20239.stderr b/testsuite/tests/ghc-api/exactprint/Test20239.stderr index 6ed6a94a1f..46d977c05e 100644 --- a/testsuite/tests/ghc-api/exactprint/Test20239.stderr +++ b/testsuite/tests/ghc-api/exactprint/Test20239.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { Test20239.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { Test20239.hs:1:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { Test20239.hs:1:18-22 }))] @@ -19,17 +17,13 @@ { Test20239.hs:7:34-63 }))) (EpaCommentsBalanced [(L - (Anchor - { Test20239.hs:3:1-28 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:3:1-28 }) (EpaComment (EpaLineComment "-- | Leading Haddock Comment") { Test20239.hs:1:18-22 }))] [(L - (Anchor - { Test20239.hs:7:34-63 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:7:34-63 }) (EpaComment (EpaLineComment "-- ^ Run any arbitrary IO code") @@ -40,19 +34,22 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:1:8-16 }) + ((EpAnnS + (EpaSpan { Test20239.hs:1:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Test20239})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20239.hs:(4,1)-(6,86) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20239.hs:(4,1)-(6,86) }) + ((EpAnnS + (EpaSpan { Test20239.hs:(4,1)-(6,86) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (DataFamInstD @@ -60,41 +57,50 @@ (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { Test20239.hs:(4,1)-(6,86) } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:(4,1)-(6,86) }) [(AddEpAnn AnnData (EpaSpan { Test20239.hs:4:1-4 })) ,(AddEpAnn AnnInstance (EpaSpan { Test20239.hs:4:6-13 })) ,(AddEpAnn AnnEqual (EpaSpan { Test20239.hs:4:34 }))] (EpaComments [(L - (Anchor - { Test20239.hs:5:34-70 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:5:34-70 }) (EpaComment (EpaLineComment "-- ^ Run a query against the database") { Test20239.hs:4:51-55 }))])) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:15-20 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:15-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Method})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:22-32 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:22-32 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:4:22-32 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:4:22-32 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:22-32 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:22-32 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: PGMigration})))))] (Prefix) @@ -106,25 +112,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20239.hs:4:36-55 } - (UnchangedAnchor)) - (AnnListItem - [(AddVbarAnn - (EpaSpan { Test20239.hs:6:34 }))]) - (EpaComments - [])) { Test20239.hs:4:36-55 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:36-55 }) + (AnnListItem + [(AddVbarAnn + (EpaSpan { Test20239.hs:6:34 }))]) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { Test20239.hs:4:36-55 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:4:36-55 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:36-49 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:36-49 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MigrationQuery})) (False) @@ -142,33 +149,49 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:51-55 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:51-55 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:4:51-55 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:4:51-55 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:4:51-55 }) + ((EpAnnS + (EpaSpan { Test20239.hs:4:51-55 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Query})))))]) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:36-86 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:36-86 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { Test20239.hs:6:36-86 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:36-86 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:36-48 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:36-48 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MigrationCode})) (False) @@ -186,12 +209,15 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:50-86 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:50-86 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { Test20239.hs:6:50 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:50 }) (AnnParen (AnnParens) (EpaSpan { Test20239.hs:6:50 }) @@ -199,12 +225,15 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:51-85 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:51-85 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { Test20239.hs:6:51-60 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:51-60 }) (NoEpAnns) (EpaComments [])) @@ -214,46 +243,70 @@ (EpaSpan { Test20239.hs:6:62-63 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:51-60 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:51-60 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:6:51-60 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:51-60 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:51-60 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:51-60 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Connection})))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:65-85 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:65-85 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:65-66 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:65-66 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:6:65-66 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:65-66 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:65-66 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:65-66 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: IO})))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:68-85 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:68-85 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { Test20239.hs:6:68 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:68 }) (AnnParen (AnnParens) (EpaSpan { Test20239.hs:6:68 }) @@ -261,50 +314,79 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:69-84 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:69-84 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:69-81 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:69-81 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:69-74 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:69-74 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:6:69-74 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:69-74 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:69-74 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:69-74 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Either})))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:76-81 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:76-81 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { Test20239.hs:6:76-81 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:76-81 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:76-81 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:76-81 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20239.hs:6:83-84 }) + ((EpAnnS + (EpaSpan { Test20239.hs:6:83-84 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { Test20239.hs:6:83 } - (UnchangedAnchor)) + (EpaSpan { Test20239.hs:6:83 }) (AnnParen (AnnParens) (EpaSpan { Test20239.hs:6:83 }) diff --git a/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr b/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr index a148bb8309..3a081dd5b7 100644 --- a/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr +++ b/testsuite/tests/ghc-api/exactprint/ZeroWidthSemi.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { ZeroWidthSemi.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { ZeroWidthSemi.hs:1:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { ZeroWidthSemi.hs:1:22-26 }))] @@ -19,25 +17,19 @@ { ZeroWidthSemi.hs:8:1-58 }))) (EpaCommentsBalanced [(L - (Anchor - { ZeroWidthSemi.hs:3:1-19 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:3:1-19 }) (EpaComment (EpaLineComment "-- leading comments") { ZeroWidthSemi.hs:1:22-26 })) ,(L - (Anchor - { ZeroWidthSemi.hs:5:1-19 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:5:1-19 }) (EpaComment (EpaLineComment "-- Function comment") { ZeroWidthSemi.hs:3:1-19 }))] [(L - (Anchor - { ZeroWidthSemi.hs:8:1-58 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:8:1-58 }) (EpaComment (EpaLineComment "-- Trailing comment, should be in HsModule extension point") @@ -48,25 +40,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:1:8-20 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:1:8-20 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: ZeroWidthSemi})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { ZeroWidthSemi.hs:6:1-5 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { ZeroWidthSemi.hs:6:1-5 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:1-5 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:6:1 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (MG @@ -74,18 +74,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:6:1-5 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:6:1-5 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:1-5 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { ZeroWidthSemi.hs:6:1-5 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:6:1-5 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:6:1 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (Prefix) @@ -95,14 +103,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { ZeroWidthSemi.hs:6:3-5 }) + (EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:3-5 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { ZeroWidthSemi.hs:6:3-5 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:6:3-5 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { ZeroWidthSemi.hs:6:3 }))) @@ -110,12 +118,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { ZeroWidthSemi.hs:6:5 }) + ((EpAnnS + (EpaSpan { ZeroWidthSemi.hs:6:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { ZeroWidthSemi.hs:6:5 } - (UnchangedAnchor)) + (EpaSpan { ZeroWidthSemi.hs:6:5 }) (NoEpAnns) (EpaComments [])) diff --git a/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr b/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr index a9b337cd49..4999784464 100644 --- a/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr +++ b/testsuite/tests/haddock/should_compile_flag_haddock/T17544.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T17544.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T17544.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:3:15-19 }))] @@ -26,27 +24,28 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:3:8-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:3:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T17544})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(5,1)-(6,16) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(5,1)-(6,16) }) + ((EpAnnS + (EpaSpan { T17544.hs:(5,1)-(6,16) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:(5,1)-(6,16) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(5,1)-(6,16) }) [(AddEpAnn AnnClass (EpaSpan { T17544.hs:5:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:5:12-16 }))] (EpaComments @@ -56,35 +55,51 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:5:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:5:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C1})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:5:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:5:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:5:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:5:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:5:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:5:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:3-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:3-16 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544.hs:6:3-4 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:6:3-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:6:6-7 })) []) @@ -92,22 +107,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:3-4 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f1}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { T17544.hs:6:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:6:9 }) (NoEpAnns) (EpaComments [])) @@ -117,37 +145,58 @@ (EpaSpan { T17544.hs:6:11-12 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:6:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:6:9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsDocTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:6:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:6:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:6:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:6:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L @@ -168,22 +217,18 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(9,1)-(10,16) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(9,1)-(10,16) }) + ((EpAnnS + (EpaSpan { T17544.hs:(9,1)-(10,16) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:(9,1)-(10,16) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(9,1)-(10,16) }) [(AddEpAnn AnnClass (EpaSpan { T17544.hs:9:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:9:12-16 }))] (EpaComments @@ -193,35 +238,51 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:9:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:9:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C2})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:9:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:9:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:9:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:9:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:9:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:9:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:3-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:3-16 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544.hs:10:3-4 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:10:3-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:10:6-7 })) []) @@ -229,22 +290,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:3-4 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f2}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { T17544.hs:10:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:10:9 }) (NoEpAnns) (EpaComments [])) @@ -254,33 +328,49 @@ (EpaSpan { T17544.hs:10:11-12 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:10:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:10:9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:10:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:10:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:10:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:10:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int}))))))))))] {Bag(LocatedA (HsBind GhcPs)): @@ -288,7 +378,12 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:11:3-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:11:3-20 }) + (AnnListItem + []) + (EpaComments + []))) (DocCommentPrev (L { T17544.hs:11:3-20 } @@ -303,22 +398,18 @@ [])) []))))]))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(13,1)-(14,16) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(13,1)-(14,16) }) + ((EpAnnS + (EpaSpan { T17544.hs:(13,1)-(14,16) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:(13,1)-(14,16) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(13,1)-(14,16) }) [(AddEpAnn AnnClass (EpaSpan { T17544.hs:13:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:13:12-16 }))] (EpaComments @@ -328,35 +419,51 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:13:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:13:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C3})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:13:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:13:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:13:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:13:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:13:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:13:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:3-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:3-16 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544.hs:14:3-4 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:14:3-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:14:6-7 })) []) @@ -364,22 +471,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:3-4 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f3}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { T17544.hs:14:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:14:9 }) (NoEpAnns) (EpaComments [])) @@ -389,33 +509,49 @@ (EpaSpan { T17544.hs:14:11-12 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:14:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:14:9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:14:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:14:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:14:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:14:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int}))))))))))] {Bag(LocatedA (HsBind GhcPs)): @@ -424,7 +560,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:15:1-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:15:1-18 }) + (AnnListItem + []) + (EpaComments + []))) (DocD (NoExtField) (DocCommentPrev @@ -441,22 +582,18 @@ [])) []))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(17,1)-(20,16) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(17,1)-(20,16) }) + ((EpAnnS + (EpaSpan { T17544.hs:(17,1)-(20,16) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:(17,1)-(20,16) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(17,1)-(20,16) }) [(AddEpAnn AnnClass (EpaSpan { T17544.hs:17:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:17:12-16 }))] (EpaComments @@ -466,35 +603,51 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:17:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:17:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C4})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:17:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:17:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:17:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:17:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:17:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:17:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:3-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:3-16 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544.hs:18:3-4 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:18:3-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:18:6-7 })) []) @@ -502,22 +655,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:3-4 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f4}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { T17544.hs:18:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:18:9 }) (NoEpAnns) (EpaComments [])) @@ -527,42 +693,61 @@ (EpaSpan { T17544.hs:18:11-12 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:18:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:18:9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:18:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:18:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:18:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:18:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:3-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:3-16 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544.hs:20:3-4 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:20:3-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544.hs:20:6-7 })) []) @@ -570,22 +755,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:3-4 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: g4}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:9-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:9-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { T17544.hs:20:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:20:9 }) (NoEpAnns) (EpaComments [])) @@ -595,33 +793,49 @@ (EpaSpan { T17544.hs:20:11-12 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:20:9 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:20:9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:9 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:20:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:20:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:20:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:20:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int}))))))))))] {Bag(LocatedA (HsBind GhcPs)): @@ -630,22 +844,18 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:22:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:22:1-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:22:1-30 } - (UnchangedAnchor)) + (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 })) @@ -664,24 +874,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C5})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:22:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:22:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -690,36 +913,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:20-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:20-28 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:22:20-28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:22:20-28 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:22:20-23 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:25-26 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:25-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D5})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:28 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:22:28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:22:28 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:22:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:22:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -733,14 +972,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(23,1)-(25,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(23,1)-(25,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(23,1)-(25,18) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -748,52 +985,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:23:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:23:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:23:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:23:17-21 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:10-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:23:10-11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:23:10-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:10-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C5})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:13-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:23:13-15 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:23:13-15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:23:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:23:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -801,37 +1062,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(24,3)-(25,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(24,3)-(25,18) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(24,3)-(25,18) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(24,3)-(25,18) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:24:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:24:15-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:24:8-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:24:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D5})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:24:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:24:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:24:11-13 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:24:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:24:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:24:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -843,18 +1120,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:5-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:25:5-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:25:5-18 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:5-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:5-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD5})) []) @@ -863,66 +1148,88 @@ (EpaSpan { T17544.hs:25:10-11 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:25:13-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:25:13-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D5})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:25:16-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:25:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:25:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:25:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:28:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:28:1-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:28:1-30 } - (UnchangedAnchor)) + (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 })) @@ -941,24 +1248,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C6})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:28:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:28:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -967,36 +1287,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:20-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:20-28 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:28:20-28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:28:20-28 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:28:20-23 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:25-26 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:25-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D6})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:28 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:28:28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:28:28 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:28:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:28:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1010,14 +1346,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(29,1)-(31,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(29,1)-(31,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(29,1)-(31,18) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -1025,52 +1359,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:29:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:29:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:29:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:29:17-21 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:10-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:29:10-11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:29:10-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:10-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C6})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:13-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:29:13-15 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:29:13-15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:29:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:29:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -1078,37 +1436,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(30,3)-(31,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(30,3)-(31,18) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(30,3)-(31,18) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(30,3)-(31,18) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:30:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:30:15-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:30:8-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:30:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D6})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:30:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:30:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:30:11-13 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:30:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:30:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:30:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -1120,18 +1494,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:5-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:31:5-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:31:5-18 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:5-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:5-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD6})) []) @@ -1140,66 +1522,88 @@ (EpaSpan { T17544.hs:31:10-11 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:31:13-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:31:13-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D6})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:31:16-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:31:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:31:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:31:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:34:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:34:1-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:34:1-30 } - (UnchangedAnchor)) + (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 })) @@ -1218,24 +1622,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C7})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:34:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:34:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1244,36 +1661,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:20-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:20-28 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:34:20-28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:34:20-28 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:34:20-23 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:25-26 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:25-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D7})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:28 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:34:28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:34:28 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:34:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:34:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1287,14 +1720,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(35,1)-(37,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(35,1)-(37,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(35,1)-(37,18) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -1302,52 +1733,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:35:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:35:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:35:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:35:17-21 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:10-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:35:10-11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:35:10-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:10-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C7})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:13-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:35:13-15 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:35:13-15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:35:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:35:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -1355,37 +1810,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(36,3)-(37,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(36,3)-(37,18) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(36,3)-(37,18) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(36,3)-(37,18) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:36:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:36:15-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:36:8-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:36:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D7})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:36:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:36:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:36:11-13 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:36:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:36:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:36:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -1397,18 +1868,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:5-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:37:5-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:37:5-18 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:5-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:5-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD7})) []) @@ -1417,66 +1896,88 @@ (EpaSpan { T17544.hs:37:10-11 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:37:13-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:37:13-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D7})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:37:16-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:37:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:37:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:37:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:40:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:40:1-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:40:1-30 } - (UnchangedAnchor)) + (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 })) @@ -1495,24 +1996,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C8})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:40:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:40:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1521,36 +2035,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:20-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:20-28 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:40:20-28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:40:20-28 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:40:20-23 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:25-26 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:25-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D8})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:28 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:40:28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:40:28 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:40:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:40:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1564,14 +2094,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(41,1)-(43,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(41,1)-(43,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(41,1)-(43,18) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -1579,52 +2107,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:41:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:41:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:41:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:41:17-21 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:10-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:41:10-11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:41:10-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:10-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C8})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:13-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:41:13-15 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:41:13-15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:41:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:41:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -1632,37 +2184,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(42,3)-(43,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(42,3)-(43,18) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(42,3)-(43,18) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(42,3)-(43,18) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:42:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:42:15-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:42:8-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:42:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D8})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:42:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:42:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:42:11-13 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:42:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:42:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:42:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -1674,18 +2242,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:5-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:43:5-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:43:5-18 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:5-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:5-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD8})) []) @@ -1694,66 +2270,88 @@ (EpaSpan { T17544.hs:43:10-11 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:43:13-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:43:13-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D8})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:43:16-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:43:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:43:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:43:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:46:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:46:1-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:46:1-30 } - (UnchangedAnchor)) + (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 })) @@ -1772,24 +2370,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:7-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:7-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C9})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:46:10 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:46:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:10 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1798,36 +2409,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:20-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:20-28 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:46:20-28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:46:20-28 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:46:20-23 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:25-26 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:25-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D9})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:28 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:46:28 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:46:28 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:46:28 }) + ((EpAnnS + (EpaSpan { T17544.hs:46:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -1841,14 +2468,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(47,1)-(49,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(47,1)-(49,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(47,1)-(49,18) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -1856,52 +2481,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:47:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:47:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:47:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:47:17-21 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:10-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:10-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:10-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:47:10-11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:47:10-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:10-11 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:10-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C9})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:13-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:47:13-15 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:47:13-15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:47:13-15 }) + ((EpAnnS + (EpaSpan { T17544.hs:47:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -1909,37 +2558,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(48,3)-(49,18) }) + ((EpAnnS + (EpaSpan { T17544.hs:(48,3)-(49,18) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(48,3)-(49,18) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(48,3)-(49,18) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:48:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:48:15-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:48:8-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:48:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D9})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:48:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:48:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:48:11-13 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:48:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:48:11-13 }) + ((EpAnnS + (EpaSpan { T17544.hs:48:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -1951,18 +2616,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:5-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:49:5-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:49:5-18 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:5-8 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:5-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD9})) []) @@ -1971,66 +2644,88 @@ (EpaSpan { T17544.hs:49:10-11 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:13-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:13-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:49:13-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:49:13-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:13-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D9})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:49:16-18 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:49:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:49:16-18 }) + ((EpAnnS + (EpaSpan { T17544.hs:49:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:52:1-32 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:52:1-32 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:1-32 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544.hs:52:1-32 } - (UnchangedAnchor)) + (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 })) @@ -2049,24 +2744,37 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:7-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:7-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C10})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:11 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:11 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:52:11 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:52:11 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:11 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -2075,36 +2783,52 @@ {Bag(LocatedA (HsBind GhcPs)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:21-30 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:21-30 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnn - (Anchor - { T17544.hs:52:21-30 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:52:21-30 }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:52:21-24 }))] (EpaComments [])) (DataFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:26-28 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:26-28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D10})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:30 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:30 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544.hs:52:30 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:52:30 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:52:30 }) + ((EpAnnS + (EpaSpan { T17544.hs:52:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -2118,14 +2842,12 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544.hs:(53,1)-(55,20) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544.hs:(53,1)-(55,20) }) + ((EpAnnS + (EpaSpan { T17544.hs:(53,1)-(55,20) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (ClsInstD @@ -2133,52 +2855,76 @@ (ClsInstDecl ((,) (EpAnn - (Anchor - { T17544.hs:53:1-8 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:53:1-8 }) [(AddEpAnn AnnInstance (EpaSpan { T17544.hs:53:1-8 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:53:18-22 }))] (EpaComments [])) (NoAnnSortKey)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:10-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:10-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:10-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:10-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:10-12 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:10-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:53:10-12 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:53:10-12 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:10-12 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:10-12 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: C10})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:53:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:53:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:53:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:53:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))))) {Bag(LocatedA (HsBind GhcPs)): @@ -2186,37 +2932,53 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:(54,3)-(55,20) }) + ((EpAnnS + (EpaSpan { T17544.hs:(54,3)-(55,20) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { T17544.hs:(54,3)-(55,20) } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:(54,3)-(55,20) }) [(AddEpAnn AnnData (EpaSpan { T17544.hs:54:3-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544.hs:54:16-20 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:54:8-10 }) + ((EpAnnS + (EpaSpan { T17544.hs:54:8-10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D10})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:54:12-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:54:12-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:54:12-14 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:54:12-14 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:54:12-14 }) + ((EpAnnS + (EpaSpan { T17544.hs:54:12-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))] (Prefix) @@ -2228,18 +2990,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:5-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:5-20 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544.hs:55:5-20 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:55:5-20 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:5-9 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:5-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkD10})) []) @@ -2248,51 +3018,82 @@ (EpaSpan { T17544.hs:55:11-12 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:14-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:14-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:14-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:14-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:55:14-16 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:55:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:14-16 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: D10})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:18-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:18-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544.hs:55:18-20 } - (UnchangedAnchor)) + (EpaSpan { T17544.hs:55:18-20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:55:18-20 }) + ((EpAnnS + (EpaSpan { T17544.hs:55:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) (Nothing)))]) []))))] (Nothing))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T17544.hs:56:1-38 }) + ((EpAnnS + (EpaSpan { T17544.hs:56:1-38 }) + (AnnListItem + []) + (EpaComments + []))) (DocD (NoExtField) (DocCommentPrev 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 e406cca52e..e7bafd2908 100644 --- a/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr +++ b/testsuite/tests/haddock/should_compile_flag_haddock/T17544_kw.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T17544_kw.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T17544_kw.hs:11:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T17544_kw.hs:13:13-17 }))] @@ -38,32 +36,38 @@ [])))) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:13:3-11 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:13:3-11 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T17544_kw})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544_kw.hs:(15,1)-(16,20) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544_kw.hs:(15,1)-(16,20) }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:(15,1)-(16,20) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T17544_kw.hs:(15,1)-(16,20) } - (UnchangedAnchor)) + (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 [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:15:6-8 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:15:6-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Foo})) (HsQTvs @@ -78,18 +82,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:16:9-20 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:16:9-20 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544_kw.hs:16:9-20 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:16:9-20 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:16:9-13 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:16:9-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkFoo})) []) @@ -98,25 +110,38 @@ (EpaSpan { T17544_kw.hs:16:15-16 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:16:18-20 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:16:18-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:16:18-20 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:16:18-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544_kw.hs:16:18-20 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:16:18-20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:16:18-20 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:16:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Foo})))) (Just @@ -134,27 +159,28 @@ [])))))]) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544_kw.hs:(18,1)-(19,26) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544_kw.hs:(18,1)-(19,26) }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:(18,1)-(19,26) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T17544_kw.hs:(18,1)-(19,26) } - (UnchangedAnchor)) + (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 [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:18:9-11 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:18:9-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bar})) (HsQTvs @@ -168,18 +194,26 @@ (Nothing) (NewTypeCon (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:19:9-26 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:9-26 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T17544_kw.hs:19:9-26 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:19:9-26 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:19:9-13 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:9-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkBar})) []) @@ -188,7 +222,12 @@ (EpaSpan { T17544_kw.hs:19:15-16 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:19:18-26 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:18-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) @@ -200,19 +239,15 @@ (EpaSpan { T17544_kw.hs:19:21-22 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnn - (Anchor - { T17544_kw.hs:19:18-19 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544_kw.hs:19:18-19 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:18-19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { T17544_kw.hs:19:18 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:19:18 }) (AnnParen (AnnParens) (EpaSpan { T17544_kw.hs:19:18 }) @@ -222,18 +257,26 @@ (HsBoxedOrConstraintTuple) [])))]) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:19:24-26 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:24-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544_kw.hs:19:24-26 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:19:24-26 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:19:24-26 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:19:24-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bar})))) (Just @@ -251,22 +294,18 @@ [])))))) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T17544_kw.hs:(21,1)-(24,18) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T17544_kw.hs:(21,1)-(24,18) }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:(21,1)-(24,18) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T17544_kw.hs:(21,1)-(24,18) } - (UnchangedAnchor)) + (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 @@ -276,35 +315,51 @@ (5)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:21:7-9 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:21:7-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Cls})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:21:11 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:21:11 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T17544_kw.hs:21:11 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:21:11 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:21:11 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:21:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:24:5-18 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:24:5-18 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { T17544_kw.hs:24:5-13 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:24:5-13 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { T17544_kw.hs:24:15-16 })) []) @@ -312,28 +367,46 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:24:5-13 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:24:5-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: clsmethod}))] (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:24:18 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:24:18 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:24:18 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:24:18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T17544_kw.hs:24:18 } - (UnchangedAnchor)) + (EpaSpan { T17544_kw.hs:24:18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:24:18 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:24:18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))))))] {Bag(LocatedA (HsBind GhcPs)): @@ -341,7 +414,12 @@ [] [] [(L - (SrcSpanAnn (EpAnnNotUsed) { T17544_kw.hs:22:5-34 }) + ((EpAnnS + (EpaSpan { T17544_kw.hs:22:5-34 }) + (AnnListItem + []) + (EpaComments + []))) (DocCommentNext (L { T17544_kw.hs:22:5-34 } @@ -355,5 +433,3 @@ " Bad comment for clsmethod")) [])) []))))])))])) - - diff --git a/testsuite/tests/module/mod185.stderr b/testsuite/tests/module/mod185.stderr index e32cc1496d..22d717c33c 100644 --- a/testsuite/tests/module/mod185.stderr +++ b/testsuite/tests/module/mod185.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { mod185.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { mod185.hs:1:1 }) (AnnsModule [] [] @@ -26,13 +24,16 @@ (Nothing) (Nothing) [(L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:3:1-24 }) + ((EpAnnS + (EpaSpan { mod185.hs:3:1-24 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { mod185.hs:3:1-6 } - (UnchangedAnchor)) + (EpaSpan { mod185.hs:3:1-6 }) (EpAnnImportDecl (EpaSpan { mod185.hs:3:1-6 }) (Nothing) @@ -46,7 +47,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:3:8-14 }) + ((EpAnnS + (EpaSpan { mod185.hs:3:8-14 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Prelude}) (NoRawPkgQual) (NotBoot) @@ -55,20 +61,23 @@ (Nothing) (Nothing)))] [(L - (SrcSpanAnn (EpAnn - (Anchor - { mod185.hs:5:1-24 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { mod185.hs:5:1-24 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:1-24 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:1-4 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (MG @@ -76,18 +85,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:1-24 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:1-24 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:1-24 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { mod185.hs:5:1-24 } - (UnchangedAnchor)) + (EpaSpan { mod185.hs:5:1-24 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:1-4 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (Prefix) @@ -97,14 +114,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { mod185.hs:5:6-24 }) + (EpAnnS + (EpaSpan { mod185.hs:5:6-24 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { mod185.hs:5:6-24 } - (UnchangedAnchor)) + (EpaSpan { mod185.hs:5:6-24 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { mod185.hs:5:6 }))) @@ -112,11 +129,21 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:8-24 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:8-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { mod185.hs:5:8-24 }) + ((EpAnnS + (EpaSpan { mod185.hs:5:8-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Qual {ModuleName: Prelude} {OccName: undefined}))))))] diff --git a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr index b2dc86fece..ab8cf74670 100644 --- a/testsuite/tests/parser/should_compile/DumpParsedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpParsedAst.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { DumpParsedAst.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { DumpParsedAst.hs:5:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAst.hs:5:22-26 }))] @@ -26,17 +24,25 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:5:8-20 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:5:8-20 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: DumpParsedAst})) (Nothing) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:1-16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:6:1-16 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { DumpParsedAst.hs:6:1-6 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:6:1-6 }) (EpAnnImportDecl (EpaSpan { DumpParsedAst.hs:6:1-6 }) (Nothing) @@ -49,7 +55,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:6:8-16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:6:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.Kind}) (NoRawPkgQual) (NotBoot) @@ -58,27 +69,28 @@ (Nothing) (Nothing)))] [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:8:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:8:1-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { DumpParsedAst.hs:8:1-30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:8:1-30 }) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:8:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:8:12 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:6-10 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:6-10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Peano})) (HsQTvs @@ -93,25 +105,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:8:14-17 } - (UnchangedAnchor)) - (AnnListItem - [(AddVbarAnn - (EpaSpan { DumpParsedAst.hs:8:19 }))]) - (EpaComments - [])) { DumpParsedAst.hs:8:14-17 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:14-17 }) + (AnnListItem + [(AddVbarAnn + (EpaSpan { DumpParsedAst.hs:8:19 }))]) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { DumpParsedAst.hs:8:14-17 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:8:14-17 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:14-17 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:14-17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Zero})) (False) @@ -122,17 +135,25 @@ []) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:21-30 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { DumpParsedAst.hs:8:21-30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:8:21-30 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:21-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Succ})) (False) @@ -150,40 +171,44 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:26-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:8:26-30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:8:26-30 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:8:26-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:8:26-30 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Peano})))))]) (Nothing)))]) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:(10,1)-(12,24) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:(10,1)-(12,24) }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:(10,1)-(12,24) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn - (Anchor - { DumpParsedAst.hs:(10,1)-(12,24) } - (UnchangedAnchor)) + (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 })) @@ -193,29 +218,40 @@ (ClosedTypeFamily (Just [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:3-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:3-36 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnn - (Anchor - { DumpParsedAst.hs:11:3-36 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:3-36 }) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:11:19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:3-8 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:3-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Length})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:10-17 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:10-17 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:11:10 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:10 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:11:10 }) @@ -223,71 +259,113 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11-16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:11-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsOpTy (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:11:11 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:11 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:13 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Exact {Name: :})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:15-16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:15-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:11:15-16 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:15-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:15-16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:15-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: as})))))))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:21-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:21-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:11:21-24 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:21-24 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:21-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Succ})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:26-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:26-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:11:26 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:26 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:11:26 }) @@ -295,63 +373,95 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-35 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:27-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-32 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:27-32 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:11:27-32 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:27-32 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:27-32 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:27-32 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Length})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:34-35 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:34-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:11:34-35 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:11:34-35 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:11:34-35 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:11:34-35 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: as})))))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:3-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:12:3-24 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnn - (Anchor - { DumpParsedAst.hs:12:3-24 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:12:3-24 }) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:12:19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:3-8 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:12:3-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Length})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:10-12 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:12:10-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitListTy (EpAnn - (Anchor - { DumpParsedAst.hs:12:10 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:12:10 }) [(AddEpAnn AnnSimpleQuote (EpaSpan { DumpParsedAst.hs:12:10 })) ,(AddEpAnn AnnOpenS (EpaSpan { DumpParsedAst.hs:12:11 })) ,(AddEpAnn AnnCloseS (EpaSpan { DumpParsedAst.hs:12:12 }))] @@ -361,34 +471,50 @@ [])))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:21-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:12:21-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:12:21-24 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:12:21-24 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:12:21-24 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:12:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Zero}))))))])) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:13-18 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:13-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Length})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:20-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:20-30 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:10:20-30 } - (UnchangedAnchor)) + (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 }))] @@ -396,16 +522,24 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:21-22 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:21-22 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: as})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:27-29 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:27-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { DumpParsedAst.hs:10:27 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:10:27 }) (AnnParen (AnnParensSquare) (EpaSpan { DumpParsedAst.hs:10:27 }) @@ -413,18 +547,26 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:10:28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:10:28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k}))))))))]) (Prefix) @@ -435,69 +577,89 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:35-39 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:35-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:10:35-39 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:10:35-39 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:10:35-39 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:10:35-39 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Peano})))))) (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:15:1-29 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:15:1-29 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:1-29 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { DumpParsedAst.hs:15:1-29 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:1-29 }) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:15:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:15:19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:6 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:6 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: T})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:8 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:8 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:15:8 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:8 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:8 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:10-17 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:10-17 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:15:10-17 } - (UnchangedAnchor)) + (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 }))] @@ -505,22 +667,35 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:11 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:15:16 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:16 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k}))))))]) (Prefix) @@ -532,17 +707,25 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:21-29 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:21-29 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { DumpParsedAst.hs:15:21-29 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:21-29 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:21-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:21-23 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkT})) (False) @@ -560,12 +743,15 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:25-29 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:25-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:15:25 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:25 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:15:25 }) @@ -573,59 +759,76 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26-28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:26-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:15:26 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:26 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:15:28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:15:28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:15:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:15:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))))))]) (Nothing)))]) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:(17,1)-(18,30) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:(17,1)-(18,30) }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:(17,1)-(18,30) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn - (Anchor - { DumpParsedAst.hs:(17,1)-(18,30) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:(17,1)-(18,30) }) [(AddEpAnn AnnType (EpaSpan { DumpParsedAst.hs:17:1-4 })) ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:17:6-11 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:42-43 })) @@ -635,17 +838,25 @@ (ClosedTypeFamily (Just [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:3-30 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnn - (Anchor - { DumpParsedAst.hs:18:3-30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:3-30 }) [(AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:18:17 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:3-4 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: F1})) (HsOuterImplicit @@ -656,78 +867,125 @@ (EpaSpan { DumpParsedAst.hs:18:6 })) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:7-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:7-11 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:7-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:7-11 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:7-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Peano}))))) ,(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:13 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:13 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))) ,(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:15 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:15 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:15 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:19-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:19-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19-26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:19-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppKindTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:19 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:19 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:19 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: T})))) (L @@ -735,64 +993,96 @@ (EpaSpan { DumpParsedAst.hs:18:21 })) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:22-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:22-26 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:22-26 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:22-26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:22-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Peano})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:18:30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:18:30 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:18:30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:18:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))))))])) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:13-14 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: F1})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:16-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:16-23 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:16-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:16-23 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:19-20 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:16 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:23 }))] @@ -800,31 +1090,47 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:17 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:22 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:22 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:22 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:22 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:22 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:25-40 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:25-40 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:25-40 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:25-40 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:17:28-29 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpParsedAst.hs:17:25 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpParsedAst.hs:17:40 }))] @@ -832,16 +1138,24 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:26 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31-39 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:31-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:17:31 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:31 }) (NoEpAnns) (EpaComments [])) @@ -851,33 +1165,49 @@ (EpaSpan { DumpParsedAst.hs:17:33-34 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:31 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:31 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:31 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:31 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:31 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:36-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:36-39 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:36-39 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:36-39 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:36-39 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))))]) (Prefix) @@ -888,39 +1218,43 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:45-48 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:17:45-48 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:17:45-48 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:17:45-48 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:17:45-48 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))) (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:20:1-33 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:20:1-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:1-33 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn - (Anchor - { DumpParsedAst.hs:20:1-33 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:1-33 }) [(AddEpAnn AnnData (EpaSpan { DumpParsedAst.hs:20:1-4 })) ,(AddEpAnn AnnFamily (EpaSpan { DumpParsedAst.hs:20:6-11 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:20:17-18 }))] @@ -929,7 +1263,12 @@ (DataFamily) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:13-15 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Nat})) (HsQTvs @@ -943,12 +1282,15 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:20-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:20:20 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:20 }) (NoEpAnns) (EpaComments [])) @@ -958,27 +1300,38 @@ (EpaSpan { DumpParsedAst.hs:20:22-23 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:20:20 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:20 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:25-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:20:25 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:25 }) (NoEpAnns) (EpaComments [])) @@ -988,45 +1341,59 @@ (EpaSpan { DumpParsedAst.hs:20:27-28 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:20:25 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:25 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:25 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:30-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:20:30-33 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:20:30-33 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:20:30-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:20:30-33 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))))) (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:(21,1)-(22,45) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:(21,1)-(22,45) }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:(21,1)-(22,45) }) + (AnnListItem + []) + (EpaComments + []))) (InstD (NoExtField) (DataFamInstD @@ -1034,9 +1401,7 @@ (DataFamInstDecl (FamEqn (EpAnn - (Anchor - { DumpParsedAst.hs:(21,1)-(22,45) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:(21,1)-(22,45) }) [(AddEpAnn AnnNewtype (EpaSpan { DumpParsedAst.hs:21:1-7 })) ,(AddEpAnn AnnInstance (EpaSpan { DumpParsedAst.hs:21:9-16 })) ,(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:39-40 })) @@ -1044,19 +1409,27 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:18-20 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Nat})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:22-37 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:22-37 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:21:22 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:22 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:21:22 }) @@ -1064,37 +1437,51 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:23-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { DumpParsedAst.hs:21:23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:23 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpParsedAst.hs:21:25-26 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:23 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:23 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:23 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:28-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:21:28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:28 }) (NoEpAnns) (EpaComments [])) @@ -1104,33 +1491,49 @@ (EpaSpan { DumpParsedAst.hs:21:30-31 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:28 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:33-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:33-36 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:33-36 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:33-36 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:33-36 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))))))] (Prefix) @@ -1140,12 +1543,15 @@ (Nothing) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-60 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:42-60 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:21:42-52 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:42-52 }) (NoEpAnns) (EpaComments [])) @@ -1155,12 +1561,15 @@ (EpaSpan { DumpParsedAst.hs:21:54-55 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:42-52 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:42-52 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:21:42 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:42 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:21:42 }) @@ -1168,12 +1577,15 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43-51 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:43-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:21:43 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:43 }) (NoEpAnns) (EpaComments [])) @@ -1183,64 +1595,96 @@ (EpaSpan { DumpParsedAst.hs:21:45-46 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:43 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:43 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:43 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:43 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:48-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:48-51 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:48-51 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:48-51 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:48-51 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:57-60 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:21:57-60 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:21:57-60 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:21:57-60 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:21:57-60 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))) (NewTypeCon (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-45 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:3-45 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { DumpParsedAst.hs:22:3-45 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:3-45 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:3-5 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:3-5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Nat})) []) @@ -1249,7 +1693,12 @@ (EpaSpan { DumpParsedAst.hs:22:7-8 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:10-45 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:10-45 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) @@ -1261,19 +1710,15 @@ (EpaSpan { DumpParsedAst.hs:22:36-37 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:22:10-34 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:22:10-34 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:10-34 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { DumpParsedAst.hs:22:10 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:10 }) (AnnParen (AnnParens) (EpaSpan { DumpParsedAst.hs:22:10 }) @@ -1281,41 +1726,55 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:11-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:11-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsForAllTy (NoExtField) (HsForAllInvis (EpAnn - (Anchor - { DumpParsedAst.hs:22:11-16 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:11-16 }) ((,) (AddEpAnn AnnForall (EpaSpan { DumpParsedAst.hs:22:11-16 })) (AddEpAnn AnnDot (EpaSpan { DumpParsedAst.hs:22:20 }))) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:18-19 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:18-19 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:18-19 }) [] (EpaComments [])) (SpecifiedSpec) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:18-19 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:18-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: xx}))))]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:22-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpParsedAst.hs:22:22-25 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:22-25 }) (NoEpAnns) (EpaComments [])) @@ -1325,143 +1784,222 @@ (EpaSpan { DumpParsedAst.hs:22:27-28 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22-25 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:22-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:22 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:22 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:22 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:22 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:22 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:24-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:24-25 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:24-25 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:24-25 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:24-25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: xx})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:30-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:30 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:30 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:30 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: g})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:32-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:32-33 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:32-33 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:32-33 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:32-33 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: xx})))))))))))))]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-45 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:39-45 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-43 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:39-43 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:39-41 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:39-41 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:39-41 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:39-41 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:39-41 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Nat})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:43 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:43 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:43 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:43 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:45 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpParsedAst.hs:22:45 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:22:45 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:22:45 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:22:45 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: g})))))) (Nothing)))) [])))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAst.hs:24:1-23 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAst.hs:24:1-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (MG @@ -1469,18 +2007,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpParsedAst.hs:24:1-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:24:1-23 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:1-4 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (Prefix) @@ -1490,14 +2036,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpParsedAst.hs:24:6-23 }) + (EpAnnS + (EpaSpan { DumpParsedAst.hs:24:6-23 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpParsedAst.hs:24:6-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:24:6-23 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpParsedAst.hs:24:6 }))) @@ -1505,30 +2051,46 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:8-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { DumpParsedAst.hs:24:8-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:24:8-23 }) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:8-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:8-15 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:8-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: putStrLn})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAst.hs:24:17-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAst.hs:24:17-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpParsedAst.hs:24:17-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAst.hs:24:17-23 }) (NoEpAnns) (EpaComments [])) @@ -1537,5 +2099,3 @@ {FastString: "hello"})))))))] (EmptyLocalBinds (NoExtField)))))])))))])) - - diff --git a/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr b/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr index 7fce349864..7bdc641837 100644 --- a/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr +++ b/testsuite/tests/parser/should_compile/DumpParsedAstComments.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { DumpParsedAstComments.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { DumpParsedAstComments.hs:5:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpParsedAstComments.hs:5:30-34 @@ -20,33 +18,25 @@ { DumpParsedAstComments.hs:19:17-23 }))) (EpaCommentsBalanced [(L - (Anchor - { DumpParsedAstComments.hs:1:1-28 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:1:1-28 }) (EpaComment (EpaBlockComment "{-# LANGUAGE Haskell2010 #-}") { DumpParsedAstComments.hs:1:1 })) ,(L - (Anchor - { DumpParsedAstComments.hs:(2,1)-(4,4) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:(2,1)-(4,4) }) (EpaComment (EpaBlockComment "{-/n Block comment at the beginning/n -}") { DumpParsedAstComments.hs:1:1-28 })) ,(L - (Anchor - { DumpParsedAstComments.hs:7:1-20 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:7:1-20 }) (EpaComment (EpaLineComment "-- comment 1 for bar") { DumpParsedAstComments.hs:5:30-34 })) ,(L - (Anchor - { DumpParsedAstComments.hs:8:1-20 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:8:1-20 }) (EpaComment (EpaLineComment "-- comment 2 for bar") @@ -58,25 +48,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:5:8-28 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:5:8-28 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: DumpParsedAstComments})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAstComments.hs:9:1-7 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpParsedAstComments.hs:9:1-7 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:1-7 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:9:1-3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (MG @@ -84,18 +82,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:9:1-7 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:9:1-7 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:1-7 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpParsedAstComments.hs:9:1-7 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:9:1-7 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:9:1-3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (Prefix) @@ -105,14 +111,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpParsedAstComments.hs:9:5-7 }) + (EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:5-7 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpParsedAstComments.hs:9:5-7 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:9:5-7 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpParsedAstComments.hs:9:5 }))) @@ -120,12 +126,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:9:7 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:9:7 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { DumpParsedAstComments.hs:9:7 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:9:7 }) (NoEpAnns) (EpaComments [])) @@ -139,44 +148,40 @@ (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAstComments.hs:(14,1)-(16,3) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [(L - (Anchor - { DumpParsedAstComments.hs:10:1-16 } - (UnchangedAnchor)) - (EpaComment - (EpaLineComment - "-- Other comment") - { DumpParsedAstComments.hs:9:7 })) - ,(L - (Anchor - { DumpParsedAstComments.hs:12:1-20 } - (UnchangedAnchor)) - (EpaComment - (EpaLineComment - "-- comment 1 for foo") - { DumpParsedAstComments.hs:10:1-16 })) - ,(L - (Anchor - { DumpParsedAstComments.hs:13:1-20 } - (UnchangedAnchor)) - (EpaComment - (EpaLineComment - "-- comment 2 for foo") - { DumpParsedAstComments.hs:12:1-20 - }))])) { DumpParsedAstComments.hs:(14,1)-(16,3) }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:(14,1)-(16,3) }) + (AnnListItem + []) + (EpaComments + [(L + (EpaSpan { DumpParsedAstComments.hs:10:1-16 }) + (EpaComment + (EpaLineComment + "-- Other comment") + { DumpParsedAstComments.hs:9:7 })) + ,(L + (EpaSpan { DumpParsedAstComments.hs:12:1-20 }) + (EpaComment + (EpaLineComment + "-- comment 1 for foo") + { DumpParsedAstComments.hs:10:1-16 })) + ,(L + (EpaSpan { DumpParsedAstComments.hs:13:1-20 }) + (EpaComment + (EpaLineComment + "-- comment 2 for foo") + { DumpParsedAstComments.hs:12:1-20 }))]))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:14:1-3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:14:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (MG @@ -185,19 +190,26 @@ (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:(14,1)-(16,3) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:(14,1)-(16,3) - }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:(14,1)-(16,3) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpParsedAstComments.hs:(14,1)-(16,3) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:(14,1)-(16,3) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:14:1-3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:14:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (Prefix) @@ -207,14 +219,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpParsedAstComments.hs:(14,5)-(16,3) }) + (EpAnnS + (EpaSpan { DumpParsedAstComments.hs:(14,5)-(16,3) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpParsedAstComments.hs:(14,5)-(16,3) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:(14,5)-(16,3) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpParsedAstComments.hs:14:5 }))) @@ -222,27 +234,25 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:(14,7)-(16,3) - }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:(14,7)-(16,3) }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { DumpParsedAstComments.hs:(14,7)-(16,3) } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:(14,7)-(16,3) }) (AnnList (Just - (Anchor - { DumpParsedAstComments.hs:16:3 } - (UnchangedAnchor))) + (EpaSpan { DumpParsedAstComments.hs:16:3 })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { DumpParsedAstComments.hs:14:7-8 }))] []) (EpaComments [(L - (Anchor - { DumpParsedAstComments.hs:15:3-19 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:15:3-19 }) (EpaComment (EpaLineComment "-- normal comment") @@ -251,14 +261,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAstComments.hs:16:3 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:16:3 }) (AnnList (Just - (Anchor - { DumpParsedAstComments.hs:16:3 } - (UnchangedAnchor))) + (EpaSpan { DumpParsedAstComments.hs:16:3 })) (Nothing) (Nothing) [] @@ -266,16 +272,24 @@ (EpaComments [])) { DumpParsedAstComments.hs:16:3 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:16:3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:16:3 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:16:3 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:16:3 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { DumpParsedAstComments.hs:16:3 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:16:3 }) (NoEpAnns) (EpaComments [])) @@ -291,28 +305,28 @@ (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpParsedAstComments.hs:19:1-23 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [(L - (Anchor - { DumpParsedAstComments.hs:18:1-20 } - (UnchangedAnchor)) - (EpaComment - (EpaLineComment - "-- | Haddock comment") - { DumpParsedAstComments.hs:16:3 - }))])) { DumpParsedAstComments.hs:19:1-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:1-23 }) + (AnnListItem + []) + (EpaComments + [(L + (EpaSpan { DumpParsedAstComments.hs:18:1-20 }) + (EpaComment + (EpaLineComment + "-- | Haddock comment") + { DumpParsedAstComments.hs:16:3 }))]))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:1-4 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (MG @@ -320,18 +334,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:1-23 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:1-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpParsedAstComments.hs:19:1-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:19:1-23 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:1-4 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: main})) (Prefix) @@ -341,14 +363,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpParsedAstComments.hs:19:6-23 }) + (EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:6-23 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpParsedAstComments.hs:19:6-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:19:6-23 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpParsedAstComments.hs:19:6 }))) @@ -356,30 +378,46 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:8-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:8-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { DumpParsedAstComments.hs:19:8-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:19:8-23 }) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:8-15 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:8-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:8-15 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:8-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: putStrLn})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpParsedAstComments.hs:19:17-23 }) + ((EpAnnS + (EpaSpan { DumpParsedAstComments.hs:19:17-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpParsedAstComments.hs:19:17-23 } - (UnchangedAnchor)) + (EpaSpan { DumpParsedAstComments.hs:19:17-23 }) (NoEpAnns) (EpaComments [])) diff --git a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr index e297ee8b84..03b2e88cc1 100644 --- a/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpRenamedAst.stderr @@ -11,31 +11,44 @@ (NonRecursive) {Bag(LocatedA (HsBind Name)): [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:34:1-23 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:34:1-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (FunBind {NameSet: []} (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-4 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.main}) (MG (FromSource) (L (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-23 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnnNotUsed) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:1-4 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.main}) (Prefix) (NoSrcStrict)) @@ -44,36 +57,54 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpRenamedAst.hs:34:6-23 }) + (EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:6-23 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnnNotUsed) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:8-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { DumpRenamedAst.hs:34:8-23 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:34:8-23 }) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-15 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:8-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:8-15 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:8-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: System.IO.putStrLn}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:34:17-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:34:17-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpRenamedAst.hs:34:17-23 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:34:17-23 }) (NoEpAnns) (EpaComments [])) @@ -87,21 +118,24 @@ [(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:10:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:10:1-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (DataDecl (DataDeclRn (True) {NameSet: [{Name: DumpRenamedAst.Peano}]}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:6-10 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:6-10 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Peano}) (HsQTvs [] @@ -115,19 +149,22 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:10:14-17 } - (UnchangedAnchor)) - (AnnListItem - [(AddVbarAnn - (EpaSpan { DumpRenamedAst.hs:10:19 }))]) - (EpaComments - [])) { DumpRenamedAst.hs:10:14-17 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:14-17 }) + (AnnListItem + [(AddVbarAnn + (EpaSpan { DumpRenamedAst.hs:10:19 }))]) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:14-17 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:14-17 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Zero}) (False) [] @@ -137,11 +174,21 @@ []) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:21-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:21-30 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:21-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Succ}) (False) [] @@ -158,12 +205,22 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:26-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:26-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:10:26-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:10:26-30 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Peano}))))]) (Nothing)))]) [])))] @@ -173,14 +230,12 @@ ,(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:(12,1)-(14,24) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:(12,1)-(14,24) }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:(12,1)-(14,24) }) + (AnnListItem + []) + (EpaComments + []))) (FamDecl (NoExtField) (FamilyDecl @@ -188,119 +243,242 @@ (ClosedTypeFamily (Just [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:3-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:3-36 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:3-8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:3-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Length}) (HsOuterImplicit [{Name: a} ,{Name: as}]) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:10-17 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:10-17 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:11-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:11-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsOpTy (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:13 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: :}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:15-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:15-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:15-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:15-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: as}))))))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:21-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:21-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:21-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:21-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:21-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Succ}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:26-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:26-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:27-35 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:27-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:27-32 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:27-32 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:27-32 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:27-32 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Length}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:34-35 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:34-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:13:34-35 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:13:34-35 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: as}))))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:14:3-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:14:3-24 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:14:3-8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:14:3-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Length}) (HsOuterImplicit []) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:14:10-12 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:14:10-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitListTy (NoExtField) (IsPromoted) [])))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:14:21-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:14:21-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:14:21-24 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:14:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Zero})))))])) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:13-18 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:13-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Length}) (HsQTvs [{Name: k}] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:20-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:20-30 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:12:20-30 } - (UnchangedAnchor)) + (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 }))] @@ -308,15 +486,23 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:21-22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:21-22 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: as}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:27-29 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:27-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { DumpRenamedAst.hs:12:27 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:12:27 }) (AnnParen (AnnParensSquare) (EpaSpan { DumpRenamedAst.hs:12:27 }) @@ -324,12 +510,22 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k})))))))]) (Prefix) (L @@ -339,12 +535,22 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:35-39 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:35-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:12:35-39 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:12:35-39 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Peano}))))) (Nothing))))] [] @@ -353,14 +559,12 @@ ,(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:16:1-33 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:16:1-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:1-33 }) + (AnnListItem + []) + (EpaComments + []))) (FamDecl (NoExtField) (FamilyDecl @@ -368,7 +572,12 @@ (DataFamily) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:13-15 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Nat}) (HsQTvs [{Name: k}] @@ -381,12 +590,15 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:20-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:20-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:16:20 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:16:20 }) (NoEpAnns) (EpaComments [])) @@ -396,20 +608,33 @@ (EpaSpan { DumpRenamedAst.hs:16:22-23 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:20 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:20 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:20 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:25-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:25-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:16:25 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:16:25 }) (NoEpAnns) (EpaComments [])) @@ -419,74 +644,118 @@ (EpaSpan { DumpRenamedAst.hs:16:27-28 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:25 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:30-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:30-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:16:30-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:16:30-33 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type}))))))))) (Nothing))))] [] [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:(19,1)-(20,45) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:(19,1)-(20,45) }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:(19,1)-(20,45) }) + (AnnListItem + []) + (EpaComments + []))) (DataFamInstD (NoExtField) (DataFamInstDecl (FamEqn (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:18-20 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Nat}) (HsOuterImplicit [{Name: a} ,{Name: k}]) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:22-37 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:22-37 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:23-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:23-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { DumpRenamedAst.hs:19:23 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:19:23 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:19:25-26 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:23 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:23 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:28-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:28-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:19:28 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:19:28 }) (NoEpAnns) (EpaComments [])) @@ -496,20 +765,40 @@ (EpaSpan { DumpRenamedAst.hs:19:30-31 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:33-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:33-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:33-36 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:33-36 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type}))))))))))] (Prefix) (HsDataDefn @@ -518,12 +807,15 @@ (Nothing) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:42-60 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:42-60 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:19:42-52 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:19:42-52 }) (NoEpAnns) (EpaComments [])) @@ -533,16 +825,24 @@ (EpaSpan { DumpRenamedAst.hs:19:54-55 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:42-52 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:42-52 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:43-51 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:43-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:19:43 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:19:43 }) (NoEpAnns) (EpaComments [])) @@ -552,37 +852,77 @@ (EpaSpan { DumpRenamedAst.hs:19:45-46 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:43 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:43 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:43 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:48-51 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:48-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:48-51 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:48-51 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type}))))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:57-60 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:57-60 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:19:57-60 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:19:57-60 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type})))))) (NewTypeCon (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:3-45 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:3-45 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnnNotUsed) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:3-5 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:3-5 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Nat}) []) (L @@ -590,7 +930,12 @@ (EpaSpan { DumpRenamedAst.hs:20:7-8 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:10-45 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:10-45 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit [{Name: f} ,{Name: g}])) @@ -603,43 +948,57 @@ (EpaSpan { DumpRenamedAst.hs:20:36-37 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:20:10-34 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:20:10-34 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:10-34 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:11-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:11-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsForAllTy (NoExtField) (HsForAllInvis (EpAnnNotUsed) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:18-19 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:18-19 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:20:18-19 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:20:18-19 }) [] (EpaComments [])) (SpecifiedSpec) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:18-19 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:18-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: xx})))]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:22-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:22-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:20:22-25 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:20:22-25 }) (NoEpAnns) (EpaComments [])) @@ -649,90 +1008,178 @@ (EpaSpan { DumpRenamedAst.hs:20:27-28 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:22-25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:22-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:22 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:22 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:24-25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:24-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:24-25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:24-25 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: xx}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:30-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:30-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: g}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:32-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:32-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:32-33 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:32-33 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: xx}))))))))))))]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:39-45 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:39-45 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:39-43 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:39-43 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:39-41 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:39-41 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:39-41 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:39-41 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Nat}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:43 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:43 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:43 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:45 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:45 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:20:45 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:20:45 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: g}))))) (Nothing)))) [])))))]) ,(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:22:1-29 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:22:1-29 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:1-29 }) + (AnnListItem + []) + (EpaComments + []))) (DataDecl (DataDeclRn (False) @@ -740,31 +1187,47 @@ [{Name: a} ,{Name: f}]}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:6 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:6 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.T}) (HsQTvs [{Name: k}] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:8 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:22:8 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:22:8 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:10-17 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:10-17 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:22:10-17 } - (UnchangedAnchor)) + (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 }))] @@ -772,15 +1235,30 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:16 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k})))))]) (Prefix) (HsDataDefn @@ -791,11 +1269,21 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:21-29 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:21-29 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:21-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:21-23 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.MkT}) (False) [] @@ -812,28 +1300,58 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:25-29 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:25-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:26-28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:26-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:26 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:22:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:22:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))))))))]) (Nothing)))]) [])))] @@ -843,14 +1361,12 @@ ,(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:(24,1)-(25,30) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:(24,1)-(25,30) }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:(24,1)-(25,30) }) + (AnnListItem + []) + (EpaComments + []))) (FamDecl (NoExtField) (FamilyDecl @@ -858,11 +1374,21 @@ (ClosedTypeFamily (Just [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:3-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:3-30 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:3-4 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:3-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.F1}) (HsOuterImplicit [{Name: a} @@ -873,93 +1399,186 @@ (EpaSpan { DumpRenamedAst.hs:25:6 })) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:7-11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:7-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:7-11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:7-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Peano})))) ,(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:13 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:13 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a})))) ,(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:15 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:15 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:15 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:15 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:19-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:19-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19-26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:19-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppKindTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:19 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.T}))) (L (TokenLoc (EpaSpan { DumpRenamedAst.hs:25:21 })) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22-26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:22-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:22-26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:22-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.Peano}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:28 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:28 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:25:30 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:25:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a})))))))])) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:13-14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.F1}) (HsQTvs [{Name: k}] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:16-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:16-23 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:24:16-23 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:24:16-23 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:24:19-20 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:24:16 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:24:23 }))] @@ -967,23 +1586,41 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:17 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:17 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:22 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:22 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:25-40 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:25-40 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:24:25-40 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:24:25-40 }) [(AddEpAnn AnnDcolon (EpaSpan { DumpRenamedAst.hs:24:28-29 })) ,(AddEpAnn AnnOpenP (EpaSpan { DumpRenamedAst.hs:24:25 })) ,(AddEpAnn AnnCloseP (EpaSpan { DumpRenamedAst.hs:24:40 }))] @@ -991,15 +1628,23 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:26 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:26 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: f}) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31-39 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:31-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpRenamedAst.hs:24:31 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:24:31 }) (NoEpAnns) (EpaComments [])) @@ -1009,20 +1654,40 @@ (EpaSpan { DumpRenamedAst.hs:24:33-34 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:31 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:31 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:31 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: k}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:36-39 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:36-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:36-39 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:36-39 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type})))))))]) (Prefix) (L @@ -1032,12 +1697,22 @@ (KindSig (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:45-48 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:45-48 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:24:45-48 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:24:45-48 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type}))))) (Nothing))))] [] @@ -1046,14 +1721,12 @@ ,(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:(27,1)-(28,12) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:(27,1)-(28,12) }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:(27,1)-(28,12) }) + (AnnListItem + []) + (EpaComments + []))) (ClassDecl {NameSet: []} @@ -1061,23 +1734,36 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:7 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:27:7 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.C}) (HsQTvs [] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:9 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:27:9 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:27:9 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:27:9 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:27:9 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:27:9 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a})))]) (Prefix) [] @@ -1085,43 +1771,69 @@ {Bag(LocatedA (HsBind Name)): []} [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:3-12 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:3-12 }) + (AnnListItem + []) + (EpaComments + []))) (FamilyDecl (EpAnnNotUsed) (OpenTypeFamily) (NotTopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.F}) (HsQTvs [] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:10 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:28:10 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:28:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:10 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:12 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:12 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { DumpRenamedAst.hs:28:12 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:28:12 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:28:12 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:28:12 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: b})))]) (Prefix) (L @@ -1136,43 +1848,64 @@ [] [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:(30,1)-(31,27) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpRenamedAst.hs:(30,1)-(31,27) }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:(30,1)-(31,27) }) + (AnnListItem + []) + (EpaComments + []))) (ClsInstD (NoExtField) (ClsInstDecl (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10-14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:10-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit [{Name: a}]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10-14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:10-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:10 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:10 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.C}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:12-14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:12-14 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { DumpRenamedAst.hs:30:12 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:30:12 }) (AnnParen (AnnParensSquare) (EpaSpan { DumpRenamedAst.hs:30:12 }) @@ -1180,41 +1913,62 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:13 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:30:13 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:30:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))))))))) {Bag(LocatedA (HsBind Name)): []} [] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:3-27 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:3-27 }) + (AnnListItem + []) + (EpaComments + []))) (TyFamInstDecl (EpAnn - (Anchor - { DumpRenamedAst.hs:31:3-27 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:31:3-27 }) [(AddEpAnn AnnType (EpaSpan { DumpRenamedAst.hs:31:3-6 }))] (EpaComments [])) (FamEqn (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:8 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: DumpRenamedAst.F}) (HsOuterImplicit [{Name: b}]) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:10-12 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:10-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { DumpRenamedAst.hs:31:10 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:31:10 }) (AnnParen (AnnParensSquare) (EpaSpan { DumpRenamedAst.hs:31:10 }) @@ -1222,54 +1976,114 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:11 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a})))))) ,(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:14 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:14 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:14 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: b}))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-27 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:18-27 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:18-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:18-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:18-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:18-23 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: Data.Either.Either}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:25 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:25 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: a}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:27 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:27 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:31:27 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:31:27 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: b}))))))))] [] (Nothing))))])] @@ -1282,14 +2096,24 @@ [] []) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:8-21 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:5:8-21 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnnNotUsed) (NoSourceText) (True)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:5:8-21 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:5:8-21 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Prelude}) (NoPkgQual) (NotBoot) @@ -1298,13 +2122,16 @@ (Nothing) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:6:1-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:6:1-16 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { DumpRenamedAst.hs:6:1-6 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:6:1-6 }) (EpAnnImportDecl (EpaSpan { DumpRenamedAst.hs:6:1-6 }) (Nothing) @@ -1317,7 +2144,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:6:8-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:6:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.Kind}) (NoPkgQual) (NotBoot) @@ -1326,13 +2158,16 @@ (Nothing) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:1-23 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:8:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { DumpRenamedAst.hs:8:1-6 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:8:1-6 }) (EpAnnImportDecl (EpaSpan { DumpRenamedAst.hs:8:1-6 }) (Nothing) @@ -1345,7 +2180,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:8-16 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:8:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.Kind}) (NoPkgQual) (NotBoot) @@ -1357,9 +2197,7 @@ (Exactly) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpRenamedAst.hs:8:18-23 } - (UnchangedAnchor)) + (EpaSpan { DumpRenamedAst.hs:8:18-23 }) (AnnList (Nothing) (Just @@ -1371,17 +2209,30 @@ (EpaComments [])) { DumpRenamedAst.hs:8:18-23 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:8:19-22 }) + (AnnListItem + []) + (EpaComments + []))) (IEThingAbs (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:8:19-22 }) + (AnnListItem + []) + (EpaComments + []))) (IEName (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpRenamedAst.hs:8:19-22 }) + ((EpAnnS + (EpaSpan { DumpRenamedAst.hs:8:19-22 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Type})))))])))))] (Nothing) (Nothing))) - - diff --git a/testsuite/tests/parser/should_compile/DumpSemis.stderr b/testsuite/tests/parser/should_compile/DumpSemis.stderr index 60eff755cb..332cf1c4a9 100644 --- a/testsuite/tests/parser/should_compile/DumpSemis.stderr +++ b/testsuite/tests/parser/should_compile/DumpSemis.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { DumpSemis.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { DumpSemis.hs:1:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:1:18-22 }))] @@ -37,29 +35,30 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:1:8-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:1:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: DumpSemis})) (Nothing) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:5:1-19 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:6:1 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:6:3 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:6:5 }))]) - (EpaComments - [])) { DumpSemis.hs:5:1-19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:5:1-19 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:3 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:6:5 }))]) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { DumpSemis.hs:5:1-6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:5:1-6 }) (EpAnnImportDecl (EpaSpan { DumpSemis.hs:5:1-6 }) (Nothing) @@ -72,7 +71,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:5:8-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:5:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.List}) (NoRawPkgQual) (NotBoot) @@ -84,9 +88,7 @@ (Exactly) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:5:18-19 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:5:18-19 }) (AnnList (Nothing) (Just @@ -99,25 +101,21 @@ [])) { DumpSemis.hs:5:18-19 }) []))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:7:1-16 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:8:4 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:8:6 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:8:7 }))]) - (EpaComments - [])) { DumpSemis.hs:7:1-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:7:1-16 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:4 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:6 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:8:7 }))]) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { DumpSemis.hs:7:1-6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:7:1-6 }) (EpAnnImportDecl (EpaSpan { DumpSemis.hs:7:1-6 }) (Nothing) @@ -130,7 +128,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:7:8-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:7:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.Kind}) (NoRawPkgQual) (NotBoot) @@ -139,64 +142,86 @@ (Nothing) (Nothing)))] [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:9:1-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:9:1-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:1-12 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { DumpSemis.hs:9:1-3 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:9:1-3 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:9:5-6 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:8-9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:9:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:9:8-9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: IO})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:9:11-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:9:11-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { DumpSemis.hs:9:11 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:9:11 }) (AnnParen (AnnParens) (EpaSpan { DumpSemis.hs:9:11 }) @@ -206,25 +231,28 @@ (HsBoxedOrConstraintTuple) [])))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(10,1)-(12,3) } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:13:1 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:13:3 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:13:4 }))]) - (EpaComments - [])) { DumpSemis.hs:(10,1)-(12,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(10,1)-(12,3) }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:3 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:13:4 }))]) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:10:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:10:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (MG @@ -232,18 +260,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,1)-(12,3) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,1)-(12,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(10,1)-(12,3) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:(10,1)-(12,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(10,1)-(12,3) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:10:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:10:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (Prefix) @@ -253,14 +289,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:(10,5)-(12,3) }) + (EpAnnS + (EpaSpan { DumpSemis.hs:(10,5)-(12,3) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:(10,5)-(12,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(10,5)-(12,3) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:10:5 }))) @@ -268,17 +304,18 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(10,7)-(12,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(10,7)-(12,3) }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { DumpSemis.hs:(10,7)-(12,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(10,7)-(12,3) }) (AnnList (Just - (Anchor - { DumpSemis.hs:(11,3)-(12,3) } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:(11,3)-(12,3) })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:10:7-8 }))] @@ -289,14 +326,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(11,3)-(12,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(11,3)-(12,3) }) (AnnList (Just - (Anchor - { DumpSemis.hs:(11,3)-(12,3) } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:(11,3)-(12,3) })) (Nothing) (Nothing) [] @@ -304,21 +337,27 @@ (EpaComments [])) { DumpSemis.hs:(11,3)-(12,3) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:3-15 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:11:3-15 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:3-15 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:11:3-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { DumpSemis.hs:11:3-15 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:11:3-15 }) (AnnList (Just - (Anchor - { DumpSemis.hs:11:6-15 } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:11:6-15 })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:11:3-4 }))] @@ -329,14 +368,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:11:6-15 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:11:6-15 }) (AnnList (Just - (Anchor - { DumpSemis.hs:11:8-13 } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:11:8-13 })) (Just (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:11:6 }))) (Just @@ -349,15 +384,30 @@ (EpaComments [])) { DumpSemis.hs:11:6-15 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:11:13 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:11:13 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:11:13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:11:13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (NoExtField) @@ -365,15 +415,30 @@ (NoExtField) (NoExtField))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:12:3 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:12:3 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:12:3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:12:3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (NoExtField) @@ -381,64 +446,86 @@ (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:14:1-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:14:1-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:1-12 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { DumpSemis.hs:14:1-3 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:14:1-3 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:14:5-6 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:8-9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:14:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:14:8-9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: IO})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:14:11-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:14:11-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { DumpSemis.hs:14:11 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:14:11 }) (AnnParen (AnnParens) (EpaSpan { DumpSemis.hs:14:11 }) @@ -448,27 +535,30 @@ (HsBoxedOrConstraintTuple) [])))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(15,1)-(19,3) } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:20:2 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:20:4 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:20:5 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:20:8 }))]) - (EpaComments - [])) { DumpSemis.hs:(15,1)-(19,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(15,1)-(19,3) }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:2 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:4 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:5 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:20:8 }))]) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:15:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:15:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (MG @@ -476,18 +566,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,1)-(19,3) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,1)-(19,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(15,1)-(19,3) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:(15,1)-(19,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(15,1)-(19,3) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:15:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:15:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (Prefix) @@ -497,14 +595,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:(15,5)-(19,3) }) + (EpAnnS + (EpaSpan { DumpSemis.hs:(15,5)-(19,3) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:(15,5)-(19,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(15,5)-(19,3) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:15:5 }))) @@ -512,17 +610,18 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(15,7)-(19,3) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(15,7)-(19,3) }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { DumpSemis.hs:(15,7)-(19,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(15,7)-(19,3) }) (AnnList (Just - (Anchor - { DumpSemis.hs:(16,3)-(19,3) } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:(16,3)-(19,3) })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:15:7-8 }))] @@ -533,14 +632,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(16,3)-(19,3) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(16,3)-(19,3) }) (AnnList (Just - (Anchor - { DumpSemis.hs:(16,5)-(18,5) } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:(16,5)-(18,5) })) (Just (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:16:3 }))) (Just @@ -551,39 +646,62 @@ (EpaComments [])) { DumpSemis.hs:(16,3)-(19,3) }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:17:5 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:17:7 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:17:8 }))]) - (EpaComments - [])) { DumpSemis.hs:17:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:17:5 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:17:7 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:17:8 }))]) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:17:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:17:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:17:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:17:5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (NoExtField) (NoExtField))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:18:5 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:18:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:18:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:18:5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: b})))) (NoExtField) @@ -591,64 +709,86 @@ (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:21:1-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:21:1-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:1-12 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { DumpSemis.hs:21:1-3 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:21:1-3 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:21:5-6 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: baz}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:8-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:8-9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:21:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:21:8-9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: IO})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:21:11-12 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:21:11-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { DumpSemis.hs:21:11 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:21:11 }) (AnnParen (AnnParens) (EpaSpan { DumpSemis.hs:21:11 }) @@ -658,21 +798,24 @@ (HsBoxedOrConstraintTuple) [])))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:22:1-30 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:23:1 }))]) - (EpaComments - [])) { DumpSemis.hs:22:1-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:1-30 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:23:1 }))]) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: baz})) (MG @@ -680,18 +823,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-30 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:22:1-30 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:22:1-30 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: baz})) (Prefix) @@ -701,14 +852,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:22:5-30 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:22:5-30 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:22:5-30 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:22:5-30 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:22:5 }))) @@ -716,17 +867,18 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:7-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:7-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { DumpSemis.hs:22:7-30 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:22:7-30 }) (AnnList (Just - (Anchor - { DumpSemis.hs:22:10-30 } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:22:10-30 })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { DumpSemis.hs:22:7-8 }))] @@ -737,14 +889,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:22:10-30 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:22:10-30 }) (AnnList (Just - (Anchor - { DumpSemis.hs:22:12-25 } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:22:12-25 })) (Just (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:22:10 }))) (Just @@ -755,71 +903,95 @@ (EpaComments [])) { DumpSemis.hs:22:10-30 }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:22:15 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:22:17 }))]) - (EpaComments - [])) { DumpSemis.hs:22:15 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:15 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:17 }))]) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:15 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:15 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:15 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: s})))) (NoExtField) (NoExtField))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:22:19 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:22:21 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:22:23 }))]) - (EpaComments - [])) { DumpSemis.hs:22:19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:19 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:21 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:23 }))]) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:19 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: s})))) (NoExtField) (NoExtField))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:22:25 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:22:27 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:22:28 }))]) - (EpaComments - [])) { DumpSemis.hs:22:25 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:25 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:27 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:22:28 }))]) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:25 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:25 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:22:25 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:22:25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: s})))) (NoExtField) @@ -827,20 +999,23 @@ (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:24:1-13 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:24:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:1-13 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (MG @@ -848,18 +1023,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1-13 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:1-13 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:24:1-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:24:1-13 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (Prefix) @@ -869,14 +1052,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:24:3-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:24:3-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:24:3-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:24:3-13 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:24:3 }))) @@ -884,30 +1067,43 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:5-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:24:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:24:5-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: undefined}))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:25:1-13 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:25:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:1-13 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: b})) (MG @@ -915,18 +1111,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1-13 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:1-13 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:25:1-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:25:1-13 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: b})) (Prefix) @@ -936,14 +1140,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:25:3-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:25:3-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:25:3-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:25:3-13 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:25:3 }))) @@ -951,31 +1155,44 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:5-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:25:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:25:5-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: undefined}))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:26:1-13 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:27:1 }))]) - (EpaComments - [])) { DumpSemis.hs:26:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:1-13 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:27:1 }))]) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: s})) (MG @@ -983,18 +1200,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1-13 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:1-13 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:26:1-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:26:1-13 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: s})) (Prefix) @@ -1004,14 +1229,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:26:3-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:26:3-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:26:3-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:26:3-13 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:26:3 }))) @@ -1019,33 +1244,39 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:5-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:26:5-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:26:5-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: undefined}))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(28,1)-(29,23) } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:30:1 }))]) - (EpaComments - [])) { DumpSemis.hs:(28,1)-(29,23) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(28,1)-(29,23) }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:30:1 }))]) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { DumpSemis.hs:(28,1)-(29,23) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(28,1)-(29,23) }) [(AddEpAnn AnnClass (EpaSpan { DumpSemis.hs:28:1-5 })) ,(AddEpAnn AnnWhere (EpaSpan { DumpSemis.hs:28:40-44 }))] (EpaComments @@ -1055,18 +1286,26 @@ (3)) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:7-19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:28:7-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: LiftingMonad2})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:22-38 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:28:22-38 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { DumpSemis.hs:28:22-38 } - (UnchangedAnchor)) + (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 })) @@ -1076,33 +1315,49 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:24-28 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:28:24-28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: trans})) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:33-36 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:28:33-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:28:33-36 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:28:33-36 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:28:33-36 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:28:33-36 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))]) (Prefix) [] [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:3-23 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:3-23 }) + (AnnListItem + []) + (EpaComments + []))) (ClassOpSig (EpAnn - (Anchor - { DumpSemis.hs:29:3-7 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:29:3-7 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:29:9-10 })) []) @@ -1110,22 +1365,35 @@ [])) (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:3-7 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:3-7 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: proof}))] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-23 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:12-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-23 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:12-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpSemis.hs:29:12-16 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:29:12-16 }) (NoEpAnns) (EpaComments [])) @@ -1135,33 +1403,49 @@ (EpaSpan { DumpSemis.hs:29:18-19 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:12-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:29:12-16 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:29:12-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:12-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:12-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: trans})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:21-23 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:21-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:29:21-23 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:29:21-23 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:29:21-23 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:29:21-23 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int}))))))))))] {Bag(LocatedA (HsBind GhcPs)): @@ -1170,47 +1454,56 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:31:1-30 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:31:1-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:1-30 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { DumpSemis.hs:31:1 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:1 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { DumpSemis.hs:31:3-4 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:6-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:6-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:6-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:6-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsQualTy (NoExtField) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:31:6-20 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:6-20 }) (AnnContext (Just ((,) @@ -1223,88 +1516,126 @@ (EpaComments [])) { DumpSemis.hs:31:6-20 }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:31:8-11 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { DumpSemis.hs:31:12 }))]) - (EpaComments - [])) { DumpSemis.hs:31:8-11 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:8-11 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { DumpSemis.hs:31:12 }))]) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:8-9 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:8-9 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:8-9 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:8-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Eq})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:11 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:11 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:11 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-18 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:14-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:14-16 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:14-16 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Ord})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:18 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:18 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:18 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))))]) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25-30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:25-30 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { DumpSemis.hs:31:25 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:25 }) (NoEpAnns) (EpaComments [])) @@ -1314,50 +1645,69 @@ (EpaSpan { DumpSemis.hs:31:27-28 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:25 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:25 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:25 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:30 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { DumpSemis.hs:31:30 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:31:30 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:31:30 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:31:30 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:32:1-7 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:32:1-7 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:1-7 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})) (MG @@ -1365,54 +1715,65 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1-7 }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:32:1-7 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:33:1 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:6 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:7 }))]) - (EpaComments - [])) { DumpSemis.hs:32:1-7 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:1-7 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:33:1 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:6 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:7 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:32:1-7 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:32:1-7 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:1 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f})) (Prefix) (NoSrcStrict)) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:3 }) + (AnnListItem + []) + (EpaComments + []))) (VarPat (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))] (GRHSs (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:32:5-7 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:32:5-7 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:32:5-7 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:32:5-7 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:32:5 }))) @@ -1420,33 +1781,46 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:7 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:7 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:32:7 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:32:7 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:34:8-35 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:36 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:35:1 }))]) - (EpaComments - [])) { DumpSemis.hs:34:8-35 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:8-35 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:36 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:35:1 }))]) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x})) (MG @@ -1454,18 +1828,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8-35 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8-35 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:8-35 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:34:8-35 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:8-35 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:8 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x})) (Prefix) @@ -1475,14 +1857,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:34:9-35 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:34:9-35 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:34:9-35 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:9-35 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:9 }))) @@ -1490,12 +1872,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:10-35 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:10-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsLet (EpAnn - (Anchor - { DumpSemis.hs:34:10-35 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:10-35 }) (NoEpAnns) (EpaComments [])) @@ -1505,14 +1890,10 @@ (HsTok)) (HsValBinds (EpAnn - (Anchor - { DumpSemis.hs:34:13-31 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:13-31 }) (AnnList (Just - (Anchor - { DumpSemis.hs:34:14-30 } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:34:14-30 })) (Just (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:34:13 }))) (Just @@ -1534,21 +1915,24 @@ (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:34:19-21 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:22 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:23 }))]) - (EpaComments - [])) { DumpSemis.hs:34:19-21 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:19-21 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:22 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:23 }))]) + (EpaComments + []))) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: y})) (MG @@ -1556,18 +1940,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19-21 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19-21 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:19-21 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:34:19-21 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:19-21 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:19 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: y})) (Prefix) @@ -1577,14 +1969,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:34:20-21 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:34:20-21 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:34:20-21 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:20-21 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:20 }))) @@ -1592,12 +1984,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:21 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:21 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { DumpSemis.hs:34:21 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:21 }) (NoEpAnns) (EpaComments [])) @@ -1611,25 +2006,28 @@ (EmptyLocalBinds (NoExtField)))))])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:34:24-26 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:27 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:28 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:29 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:34:30 }))]) - (EpaComments - [])) { DumpSemis.hs:34:24-26 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:24-26 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:27 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:28 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:29 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:34:30 }))]) + (EpaComments + []))) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: z})) (MG @@ -1637,18 +2035,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24-26 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24-26 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:24-26 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:34:24-26 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:24-26 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:24 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: z})) (Prefix) @@ -1658,14 +2064,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:34:25-26 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:34:25-26 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:34:25-26 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:25-26 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:34:25 }))) @@ -1673,12 +2079,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:26 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:26 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { DumpSemis.hs:34:26 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:34:26 }) (NoEpAnns) (EpaComments [])) @@ -1697,30 +2106,43 @@ (EpaSpan { DumpSemis.hs:34:32-33 })) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:35 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:35 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:34:35 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:34:35 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: y}))))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(36,1)-(44,4) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpSemis.hs:(36,1)-(44,4) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(36,1)-(44,4) }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:36:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: fot})) (MG @@ -1728,50 +2150,61 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(36,1)-(44,4) }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(36,1)-(44,4) } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:45:1 }))]) - (EpaComments - [])) { DumpSemis.hs:(36,1)-(44,4) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(36,1)-(44,4) }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:45:1 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:(36,1)-(44,4) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(36,1)-(44,4) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:1-3 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:36:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: fot})) (Prefix) (NoSrcStrict)) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:36:5 }) + (AnnListItem + []) + (EpaComments + []))) (VarPat (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:36:5 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:36:5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))] (GRHSs (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:(36,7)-(44,4) }) + (EpAnnS + (EpaSpan { DumpSemis.hs:(36,7)-(44,4) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:(36,7)-(44,4) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(36,7)-(44,4) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { DumpSemis.hs:36:7 }))) @@ -1779,12 +2212,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:(37,3)-(44,4) }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:(37,3)-(44,4) }) + (AnnListItem + []) + (EpaComments + []))) (HsCase (EpAnn - (Anchor - { DumpSemis.hs:(37,3)-(44,4) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(37,3)-(44,4) }) (EpAnnHsCase (EpaSpan { DumpSemis.hs:37:3-6 }) (EpaSpan { DumpSemis.hs:37:10-11 }) @@ -1792,25 +2228,31 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:37:8 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:37:8 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:37:8 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:37:8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x})))) (MG (FromSource) (L (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:(38,4)-(44,4) } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:(38,4)-(44,4) }) (AnnList (Just - (Anchor - { DumpSemis.hs:(38,6)-(43,13) } - (UnchangedAnchor))) + (EpaSpan { DumpSemis.hs:(38,6)-(43,13) })) (Just (AddEpAnn AnnOpenC (EpaSpan { DumpSemis.hs:38:4 }))) (Just @@ -1822,26 +2264,27 @@ (EpaComments [])) { DumpSemis.hs:(38,4)-(44,4) }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:39:6-13 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:39:14 }))]) - (EpaComments - [])) { DumpSemis.hs:39:6-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:39:6-13 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:39:14 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:39:6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:39:6 }) [] (EpaComments [])) (CaseAlt) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:39:6 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:39:6 }) + (AnnListItem + []) + (EpaComments + []))) (NPat (EpAnnNotUsed) (L @@ -1861,14 +2304,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:39:8-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:39:8-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:39:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:39:8-9 }) (GrhsAnn (Nothing) (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:39:8-9 }))) @@ -1876,12 +2319,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:39:11-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:39:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpSemis.hs:39:11-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:39:11-13 }) (NoEpAnns) (EpaComments [])) @@ -1891,26 +2337,27 @@ (EmptyLocalBinds (NoExtField))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:40:6-13 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:41:4 }))]) - (EpaComments - [])) { DumpSemis.hs:40:6-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:40:6-13 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:41:4 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:40:6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:40:6 }) [] (EpaComments [])) (CaseAlt) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:40:6 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:40:6 }) + (AnnListItem + []) + (EpaComments + []))) (NPat (EpAnnNotUsed) (L @@ -1930,14 +2377,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:40:8-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:40:8-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:40:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:40:8-9 }) (GrhsAnn (Nothing) (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:40:8-9 }))) @@ -1945,12 +2392,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:40:11-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:40:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpSemis.hs:40:11-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:40:11-13 }) (NoEpAnns) (EpaComments [])) @@ -1960,28 +2410,29 @@ (EmptyLocalBinds (NoExtField))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:41:6-13 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:41:15 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:42:4 }))]) - (EpaComments - [])) { DumpSemis.hs:41:6-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:41:6-13 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:41:15 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:42:4 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:41:6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:41:6 }) [] (EpaComments [])) (CaseAlt) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:41:6 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:41:6 }) + (AnnListItem + []) + (EpaComments + []))) (NPat (EpAnnNotUsed) (L @@ -2001,14 +2452,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:41:8-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:41:8-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:41:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:41:8-9 }) (GrhsAnn (Nothing) (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:41:8-9 }))) @@ -2016,12 +2467,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:41:11-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:41:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpSemis.hs:41:11-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:41:11-13 }) (NoEpAnns) (EpaComments [])) @@ -2031,30 +2485,31 @@ (EmptyLocalBinds (NoExtField))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpSemis.hs:42:6-13 } - (UnchangedAnchor)) - (AnnListItem - [(AddSemiAnn - (EpaSpan { DumpSemis.hs:43:11 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:43:12 })) - ,(AddSemiAnn - (EpaSpan { DumpSemis.hs:43:13 }))]) - (EpaComments - [])) { DumpSemis.hs:42:6-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:42:6-13 }) + (AnnListItem + [(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:11 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:12 })) + ,(AddSemiAnn + (EpaSpan { DumpSemis.hs:43:13 }))]) + (EpaComments + []))) (Match (EpAnn - (Anchor - { DumpSemis.hs:42:6 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:42:6 }) [] (EpaComments [])) (CaseAlt) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:42:6 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:42:6 }) + (AnnListItem + []) + (EpaComments + []))) (NPat (EpAnnNotUsed) (L @@ -2074,14 +2529,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpSemis.hs:42:8-13 }) + (EpAnnS + (EpaSpan { DumpSemis.hs:42:8-13 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { DumpSemis.hs:42:8-9 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:42:8-9 }) (GrhsAnn (Nothing) (AddEpAnn AnnRarrow (EpaSpan { DumpSemis.hs:42:8-9 }))) @@ -2089,12 +2544,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpSemis.hs:42:11-13 }) + ((EpAnnS + (EpaSpan { DumpSemis.hs:42:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpSemis.hs:42:11-13 } - (UnchangedAnchor)) + (EpaSpan { DumpSemis.hs:42:11-13 }) (NoEpAnns) (EpaComments [])) @@ -2105,5 +2563,3 @@ (NoExtField)))))]))))))] (EmptyLocalBinds (NoExtField)))))])))))])) - - diff --git a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr index 8f31c0a248..27f929f14c 100644 --- a/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr +++ b/testsuite/tests/parser/should_compile/DumpTypecheckedAst.stderr @@ -3,137 +3,197 @@ {Bag(LocatedA (HsBind Var)): [(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$tcT} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (1374752024144278257) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (13654949607623281177) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$trModule}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -144,155 +204,228 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsInt{64}Prim (1) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$tc'MkT} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (10715337633704422415) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (12411373583424111944) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$trModule}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -303,155 +436,228 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsInt{64}Prim (3) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$tcPeano} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (14073232900889011755) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (2739668351064589274) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$trModule}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -462,155 +668,228 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsInt{64}Prim (0) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: GHC.Types.krep$*}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$tc'Zero} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (13760111476013868540) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (12314848029315386153) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$trModule}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -621,155 +900,228 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsInt{64}Prim (0) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$tc'Succ} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (1143980031331647856) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsWord{64}Prim (14802086722010293686) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$trModule}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -780,52 +1132,81 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) {HsInt{64}Prim (0) (NoSourceText)})))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -836,34 +1217,50 @@ (False) (2))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -874,34 +1271,50 @@ (False) (1))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -912,303 +1325,525 @@ (False) (0))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: GHC.Types.krep$*}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$tcT}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (WrapExpr (HsWrap @@ -1222,41 +1857,67 @@ [] [])))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (WrapExpr (HsWrap @@ -1270,41 +1931,67 @@ [] [])))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (WrapExpr (HsWrap @@ -1318,14 +2005,29 @@ [] [])))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: $krep}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (WrapExpr (HsWrap @@ -1348,46 +2050,77 @@ (NoTokenLoc) (HsTok)))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: $krep} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: DumpTypecheckedAst.$tcPeano}))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (WrapExpr (HsWrap @@ -1401,68 +2134,100 @@ [] [])))))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (VarBind (NoExtField) {Var: DumpTypecheckedAst.$trModule} (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -1473,36 +2238,52 @@ (NoTokenLoc) (HsTok)))))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsPar (EpAnnNotUsed) (L (NoTokenLoc) (HsTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (XExpr (ConLikeTc ({abstract:ConLike}) [] []))) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { placeholder:-1:-1 } - (UnchangedAnchor)) + (EpaDelta (SameLine 0) []) (NoEpAnns) (EpaComments [])) @@ -1513,7 +2294,12 @@ (NoTokenLoc) (HsTok)))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (XHsBindsLR (AbsBinds [] @@ -1527,20 +2313,23 @@ [({abstract:TcEvBinds})] {Bag(LocatedA (HsBind Var)): [(L - (SrcSpanAnn (EpAnn - (Anchor - { DumpTypecheckedAst.hs:19:1-23 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { DumpTypecheckedAst.hs:19:1-23 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (FunBind ((,) (WpHole) []) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-4 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: main}) (MG (MatchGroupTc @@ -1554,12 +2343,22 @@ (L (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-23 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:1-23 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnnNotUsed) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:1-4 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: main}) (Prefix) (NoSrcStrict)) @@ -1568,30 +2367,50 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { DumpTypecheckedAst.hs:19:6-23 }) + (EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:6-23 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnnNotUsed) [] (L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:8-23 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:8-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsApp (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:8-15 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:8-15 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { <no location info> }) + ((EpAnnS + (EpaSpan { <no location info> }) + (NameAnnTrailing + []) + (EpaComments + []))) {Var: putStrLn}))) (L - (SrcSpanAnn (EpAnnNotUsed) { DumpTypecheckedAst.hs:19:17-23 }) + ((EpAnnS + (EpaSpan { DumpTypecheckedAst.hs:19:17-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsLit (EpAnn - (Anchor - { DumpTypecheckedAst.hs:19:17-23 } - (UnchangedAnchor)) + (EpaSpan { DumpTypecheckedAst.hs:19:17-23 }) (NoEpAnns) (EpaComments [])) @@ -1601,5 +2420,3 @@ (EmptyLocalBinds (NoExtField)))))]))))]} (False))))]} - - diff --git a/testsuite/tests/parser/should_compile/KindSigs.stderr b/testsuite/tests/parser/should_compile/KindSigs.stderr index 020d16aeb4..2076ec0023 100644 --- a/testsuite/tests/parser/should_compile/KindSigs.stderr +++ b/testsuite/tests/parser/should_compile/KindSigs.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { KindSigs.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { KindSigs.hs:6:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { KindSigs.hs:6:17-21 }))] @@ -26,17 +24,25 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:6:8-15 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:6:8-15 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: KindSigs})) (Nothing) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:8:1-16 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:8:1-16 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnn - (Anchor - { KindSigs.hs:8:1-6 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:8:1-6 }) (EpAnnImportDecl (EpaSpan { KindSigs.hs:8:1-6 }) (Nothing) @@ -49,7 +55,12 @@ (NoSourceText) (False)) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:8:8-16 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:8:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Data.Kind}) (NoRawPkgQual) (NotBoot) @@ -58,23 +69,19 @@ (Nothing) (Nothing)))] [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:(11,1)-(12,21) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:(11,1)-(12,21) }) + ((EpAnnS + (EpaSpan { KindSigs.hs:(11,1)-(12,21) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (FamDecl (NoExtField) (FamilyDecl (EpAnn - (Anchor - { KindSigs.hs:(11,1)-(12,21) } - (UnchangedAnchor)) + (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 }))] @@ -83,98 +90,146 @@ (ClosedTypeFamily (Just [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:3-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:3-21 }) + (AnnListItem + []) + (EpaComments + []))) (FamEqn (EpAnn - (Anchor - { KindSigs.hs:12:3-21 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:12:3-21 }) [(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:12:9 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:3-5 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:3-5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Foo})) (HsOuterImplicit (NoExtField)) [(HsValArg (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:7 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:7 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:12:7 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:12:7 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:7 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:7 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))] (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:11-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:11-21 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:12:11-13 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:12:11-13 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:12:15-16 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:11-13 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:11-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:12:11-13 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:12:11-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:11-13 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:11-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:18-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:18-21 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:12:18-21 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:12:18-21 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:12:18-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:12:18-21 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))))])) (TopLevel) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:11:13-15 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:11:13-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Foo})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:11:17 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:11:17 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { KindSigs.hs:11:17 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:11:17 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:11:17 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:11:17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) @@ -186,54 +241,66 @@ (NoExtField))) (Nothing))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:15:1-51 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:15:1-51 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:1-51 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:15:1-51 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:1-51 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:15:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:15:12 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:6-8 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:6-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bar})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:10 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:10 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { KindSigs.hs:15:10 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:10 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:10 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:14-51 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:14-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { KindSigs.hs:15:14 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:14 }) (AnnParen (AnnParens) (EpaSpan { KindSigs.hs:15:14 }) @@ -242,184 +309,241 @@ [])) (HsBoxedOrConstraintTuple) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:15:16-26 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:15:27 }))]) - (EpaComments - [])) { KindSigs.hs:15:16-26 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:16-26 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:15:27 }))]) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:15:16-18 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:16-18 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:20-21 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:16-18 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:16-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:16-18 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:16-18 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:16-18 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:23-26 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:23-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:23-26 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:23-26 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:23-26 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:23-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:15:29-32 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:15:33 }))]) - (EpaComments - [])) { KindSigs.hs:15:29-32 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:29-32 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:15:33 }))]) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:29-32 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:29-32 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:29-32 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:29-32 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:35-49 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:35-49 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:15:35-41 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:35-41 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:15:43-44 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:35-41 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:35-41 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:35-39 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:35-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:35-39 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:35-39 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:35-39 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:35-39 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Maybe})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:41 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:41 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:41 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:41 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:41 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:41 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:46-49 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:46-49 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:15:46-49 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:15:46-49 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:15:46-49 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:15:46-49 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:16:1-54 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:16:1-54 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:1-54 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:16:1-54 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:1-54 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:16:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:16:13 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:6-9 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:6-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bar'})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:11 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { KindSigs.hs:16:11 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:11 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a}))))]) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:15-54 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:15-54 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { KindSigs.hs:16:15-16 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:15-16 }) (AnnParen (AnnParensHash) (EpaSpan { KindSigs.hs:16:15-16 }) @@ -428,157 +552,203 @@ [])) (HsUnboxedTuple) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:16:18-28 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:16:29 }))]) - (EpaComments - [])) { KindSigs.hs:16:18-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:18-28 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:16:29 }))]) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:16:18-20 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:18-20 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:22-23 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:18-20 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:18-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:18-20 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:18-20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:18-20 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:25-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:25-28 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:25-28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:25-28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:16:31-34 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:16:35 }))]) - (EpaComments - [])) { KindSigs.hs:16:31-34 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:31-34 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:16:35 }))]) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:31-34 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:31-34 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:31-34 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:31-34 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:37-51 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:37-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:16:37-43 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:37-43 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:16:45-46 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:37-43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:37-43 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:37-41 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:37-41 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:37-41 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:37-41 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:37-41 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:37-41 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Maybe})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:43 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:43 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:43 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})))))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:48-51 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:48-51 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:16:48-51 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:16:48-51 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:16:48-51 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:16:48-51 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:19:1-26 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:19:1-26 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:1-26 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:19:1-26 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:19:1-26 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:19:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:19:10 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:6-8 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:6-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Baz})) (HsQTvs @@ -586,12 +756,15 @@ []) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:12-26 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:12-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { KindSigs.hs:19:12 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:19:12 }) (AnnParen (AnnParensSquare) (EpaSpan { KindSigs.hs:19:12 }) @@ -599,85 +772,113 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:14-24 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:14-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:19:14-16 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:19:14-16 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:19:18-19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:14-16 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:14-16 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:19:14-16 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:19:14-16 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:14-16 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:14-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:21-24 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:21-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:19:21-24 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:19:21-24 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:19:21-24 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:19:21-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:22:1-44 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:22:1-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:1-44 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { KindSigs.hs:22:1-3 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:1-3 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:5-6 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:1-3 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: qux}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:8-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:8-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:8-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:8-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { KindSigs.hs:22:8-20 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:8-20 }) (NoEpAnns) (EpaComments [])) @@ -687,12 +888,15 @@ (EpaSpan { KindSigs.hs:22:22-23 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:8-20 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:8-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { KindSigs.hs:22:8 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:8 }) (AnnParen (AnnParens) (EpaSpan { KindSigs.hs:22:8 }) @@ -700,52 +904,74 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:9-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:9-19 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:22:9-11 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:9-11 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:13-14 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:9-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:9-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:22:9-11 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:9-11 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:9-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:9-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:16-19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:22:16-19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:16-19 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:16-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:25-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:25-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsFunTy (EpAnn - (Anchor - { KindSigs.hs:22:25-28 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:25-28 }) (NoEpAnns) (EpaComments [])) @@ -755,27 +981,38 @@ (EpaSpan { KindSigs.hs:22:30-31 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:25-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:22:25-28 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:25-28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:25-28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:33-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:33-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { KindSigs.hs:22:33 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:33 }) (AnnParen (AnnParens) (EpaSpan { KindSigs.hs:22:33 }) @@ -783,22 +1020,28 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:34-43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:34-43 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:22:34-35 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:34-35 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:22:37-38 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:34-35 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:34-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { KindSigs.hs:22:34 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:34 }) (AnnParen (AnnParens) (EpaSpan { KindSigs.hs:22:34 }) @@ -808,35 +1051,46 @@ (HsBoxedOrConstraintTuple) [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:40-43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:40-43 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:22:40-43 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:22:40-43 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:22:40-43 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:22:40-43 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))))))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:23:1-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:23:1-12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:1-12 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:1-3 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: qux})) (MG @@ -844,49 +1098,60 @@ (L (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:1-12 }) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:23:1-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:23:1-12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:1-12 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { KindSigs.hs:23:1-12 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:23:1-12 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:1-3 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: qux})) (Prefix) (NoSrcStrict)) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:5 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:5 }) + (AnnListItem + []) + (EpaComments + []))) (WildPat (NoExtField))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:7 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:7 }) + (AnnListItem + []) + (EpaComments + []))) (WildPat (NoExtField)))] (GRHSs (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { KindSigs.hs:23:9-12 }) + (EpAnnS + (EpaSpan { KindSigs.hs:23:9-12 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { KindSigs.hs:23:9-12 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:23:9-12 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:23:9 }))) @@ -894,47 +1159,51 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:23:11-12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:11-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:23:11-12 } - (UnchangedAnchor)) - (NameAnnOnly - (NameParens) - (EpaSpan { KindSigs.hs:23:11 }) - (EpaSpan { KindSigs.hs:23:12 }) - []) - (EpaComments - [])) { KindSigs.hs:23:11-12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:23:11-12 }) + (NameAnnOnly + (NameParens) + (EpaSpan { KindSigs.hs:23:11 }) + (EpaSpan { KindSigs.hs:23:12 }) + []) + (EpaComments + []))) (Exact {Name: ()}))))))] (EmptyLocalBinds (NoExtField)))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:26:1-29 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:26:1-29 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:1-29 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:26:1-29 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:26:1-29 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:26:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:26:11 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:6-9 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:6-9 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Quux})) (HsQTvs @@ -942,12 +1211,15 @@ []) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:13-29 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:13-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitListTy (EpAnn - (Anchor - { KindSigs.hs:26:13 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:26:13 }) [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:26:13 })) ,(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:26:14 })) ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:26:29 }))] @@ -955,67 +1227,87 @@ [])) (IsPromoted) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:16-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:16-27 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:26:16-19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:26:16-19 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:26:21-22 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:16-19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:26:16-19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:26:16-19 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:16-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: True})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:24-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:24-27 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:26:24-27 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:26:24-27 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:26:24-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:26:24-27 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool}))))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:27:1-45 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:27:1-45 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:1-45 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:27:1-45 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:1-45 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:27:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:27:12 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:6-10 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:6-10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Quux'})) (HsQTvs @@ -1023,234 +1315,291 @@ []) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:14-45 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:14-45 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitListTy (EpAnn - (Anchor - { KindSigs.hs:27:14 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:14 }) [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:27:14 })) ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:27:45 }))] (EpaComments [])) (NotPromoted) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:27:16-27 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:27:28 }))]) - (EpaComments - [])) { KindSigs.hs:27:16-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:16-27 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:27:28 }))]) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:27:16-19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:16-19 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:21-22 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:16-19 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:27:16-19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:16-19 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:16-19 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:16-19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: True})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:24-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:24-27 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:27:24-27 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:24-27 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:24-27 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:24-27 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:30-42 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:30-42 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:27:30-34 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:30-34 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:27:36-37 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:30-34 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:30-34 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:27:30-34 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:30-34 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:30-34 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:30-34 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: False})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:39-42 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:39-42 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:27:39-42 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:27:39-42 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:27:39-42 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:27:39-42 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool}))))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:28:1-44 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:28:1-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:1-44 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:28:1-44 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:1-44 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:28:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:28:14 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:6-10 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:6-10 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Quuux})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:12 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { KindSigs.hs:28:12 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:12 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:12 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:12 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: b}))))]) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:16-44 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:16-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitTupleTy (EpAnn - (Anchor - { KindSigs.hs:28:16 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:16 }) [(AddEpAnn AnnSimpleQuote (EpaSpan { KindSigs.hs:28:16 })) ,(AddEpAnn AnnOpenP (EpaSpan { KindSigs.hs:28:17 })) ,(AddEpAnn AnnCloseP (EpaSpan { KindSigs.hs:28:44 }))] (EpaComments [])) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:28:19-39 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:28:40 }))]) - (EpaComments - [])) { KindSigs.hs:28:19-39 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:19-39 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:28:40 }))]) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:28:19-29 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:19-29 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:28:31-32 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:19-29 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:19-29 }) + (AnnListItem + []) + (EpaComments + []))) (HsExplicitListTy (EpAnn - (Anchor - { KindSigs.hs:28:19 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:19 }) [(AddEpAnn AnnOpenS (EpaSpan { KindSigs.hs:28:19 })) ,(AddEpAnn AnnCloseS (EpaSpan { KindSigs.hs:28:29 }))] (EpaComments [])) (NotPromoted) [(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:28:20-22 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { KindSigs.hs:28:23 }))]) - (EpaComments - [])) { KindSigs.hs:28:20-22 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:20-22 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { KindSigs.hs:28:23 }))]) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:28:20-22 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:20-22 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:20-22 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:20-22 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:25-28 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:28:25-28 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:25-28 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:25-28 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:25-28 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool}))))])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:34-39 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:34-39 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { KindSigs.hs:28:34 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:34 }) (AnnParen (AnnParensSquare) (EpaSpan { KindSigs.hs:28:34 }) @@ -1258,57 +1607,74 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:35-38 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:35-38 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:28:35-38 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:35-38 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:35-38 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:35-38 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:42 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:42 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:28:42 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:28:42 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:28:42 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:28:42 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: b}))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:31:1-31 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:31:1-31 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:1-31 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (SynDecl (EpAnn - (Anchor - { KindSigs.hs:31:1-31 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:31:1-31 }) [(AddEpAnn AnnType (EpaSpan { KindSigs.hs:31:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:31:19 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:6-17 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:6-17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Sarsaparilla})) (HsQTvs @@ -1316,85 +1682,113 @@ []) (Prefix) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:21-31 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:21-31 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:31:21-23 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:31:21-23 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:31:25-26 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:21-23 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:21-23 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:31:21-23 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:31:21-23 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:21-23 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:21-23 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:28-31 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:28-31 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:31:28-31 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:31:28-31 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:31:28-31 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:31:28-31 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type}))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:34:1-22 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:34:1-22 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:1-22 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (TypeSig (EpAnn - (Anchor - { KindSigs.hs:34:1-4 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:34:1-4 }) (AnnSig (AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:6-7 })) []) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:1-4 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: true}))] (HsWC (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:9-22 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:9-22 }) + (AnnListItem + []) + (EpaComments + []))) (HsSig (NoExtField) (HsOuterImplicit (NoExtField)) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:9-22 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:9-22 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { KindSigs.hs:34:9 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:34:9 }) (AnnParen (AnnParens) (EpaSpan { KindSigs.hs:34:9 }) @@ -1402,60 +1796,82 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:10-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:10-21 }) + (AnnListItem + []) + (EpaComments + []))) (HsKindSig (EpAnn - (Anchor - { KindSigs.hs:34:10-13 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:34:10-13 }) [(AddEpAnn AnnDcolon (EpaSpan { KindSigs.hs:34:15-16 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:10-13 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:10-13 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:34:10-13 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:34:10-13 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:10-13 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:10-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Bool})))) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:18-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:18-21 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { KindSigs.hs:34:18-21 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:34:18-21 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:34:18-21 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:34:18-21 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Type})))))))))))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { KindSigs.hs:35:1-11 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { KindSigs.hs:35:1-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:1-11 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:1-4 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: true})) (MG @@ -1463,18 +1879,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:1-11 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:1-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:1-11 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { KindSigs.hs:35:1-11 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:35:1-11 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:1-4 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:1-4 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: true})) (Prefix) @@ -1484,14 +1908,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { KindSigs.hs:35:6-11 }) + (EpAnnS + (EpaSpan { KindSigs.hs:35:6-11 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { KindSigs.hs:35:6-11 } - (UnchangedAnchor)) + (EpaSpan { KindSigs.hs:35:6-11 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { KindSigs.hs:35:6 }))) @@ -1499,11 +1923,21 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:8-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:8-11 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { KindSigs.hs:35:8-11 }) + ((EpAnnS + (EpaSpan { KindSigs.hs:35:8-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: True}))))))] (EmptyLocalBinds diff --git a/testsuite/tests/parser/should_compile/T14189.stderr b/testsuite/tests/parser/should_compile/T14189.stderr index 1bd38be52a..fd6269770e 100644 --- a/testsuite/tests/parser/should_compile/T14189.stderr +++ b/testsuite/tests/parser/should_compile/T14189.stderr @@ -13,21 +13,24 @@ [(TyClGroup (NoExtField) [(L - (SrcSpanAnn (EpAnn - (Anchor - { T14189.hs:6:1-42 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T14189.hs:6:1-42 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:1-42 }) + (AnnListItem + []) + (EpaComments + []))) (DataDecl (DataDeclRn (True) {NameSet: [{Name: GHC.Types.Int}]}) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:6-11 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:6-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.MyType}) (HsQTvs [] @@ -41,19 +44,22 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnn - (Anchor - { T14189.hs:6:15-20 } - (UnchangedAnchor)) - (AnnListItem - [(AddVbarAnn - (EpaSpan { T14189.hs:6:22 }))]) - (EpaComments - [])) { T14189.hs:6:15-20 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:15-20 }) + (AnnListItem + [(AddVbarAnn + (EpaSpan { T14189.hs:6:22 }))]) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:15-16 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:15-16 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.MT}) (False) [] @@ -70,28 +76,41 @@ (NoTokenLoc) (HsNormalTok)))) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:18-20 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:18-20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:18-20 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:18-20 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Int}))))]) (Nothing))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T14189.hs:6:24-25 } - (UnchangedAnchor)) - (AnnListItem - [(AddVbarAnn - (EpaSpan { T14189.hs:6:27 }))]) - (EpaComments - [])) { T14189.hs:6:24-25 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:24-25 }) + (AnnListItem + [(AddVbarAnn + (EpaSpan { T14189.hs:6:27 }))]) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:24-25 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:24-25 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.NT}) (False) [] @@ -101,11 +120,21 @@ []) (Nothing))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:29-42 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:29-42 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnnNotUsed) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:29 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:29 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.F}) (False) [] @@ -113,14 +142,10 @@ (RecCon (L (SrcSpanAnn (EpAnn - (Anchor - { T14189.hs:6:31 } - (UnchangedAnchor)) + (EpaSpan { T14189.hs:6:31 }) (AnnList (Just - (Anchor - { T14189.hs:6:33-40 } - (UnchangedAnchor))) + (EpaSpan { T14189.hs:6:33-40 })) (Just (AddEpAnn AnnOpenC (EpaSpan { T14189.hs:6:31 }))) (Just @@ -130,26 +155,48 @@ (EpaComments [])) { T14189.hs:6:31-42 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:33-40 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:33-40 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclField (EpAnnNotUsed) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { T14189.hs:6:33 }) + (EpAnnS + (EpaSpan { T14189.hs:6:33 }) + (NoEpAnns) + (EpaComments + [])) (FieldOcc {Name: T14189.f} (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:33 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:33 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: f}))))] (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:38-40 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:38-40 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnnNotUsed) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:6:38-40 }) + ((EpAnnS + (EpaSpan { T14189.hs:6:38-40 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: GHC.Types.Int}))) (Nothing)))])) (Nothing)))]) @@ -166,14 +213,24 @@ [] []) [(L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:1:8-13 }) + ((EpAnnS + (EpaSpan { T14189.hs:1:8-13 }) + (AnnListItem + []) + (EpaComments + []))) (ImportDecl (XImportDeclPass (EpAnnNotUsed) (NoSourceText) (True)) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:1:8-13 }) + ((EpAnnS + (EpaSpan { T14189.hs:1:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Prelude}) (NoPkgQual) (NotBoot) @@ -184,51 +241,75 @@ (Just [((,) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:3-15 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:3-15 }) + (AnnListItem + []) + (EpaComments + []))) (IEThingWith (EpAnn - (Anchor - { T14189.hs:3:3-8 } - (UnchangedAnchor)) + (EpaSpan { T14189.hs:3:3-8 }) [(AddEpAnn AnnOpenP (EpaSpan { T14189.hs:3:10 })) ,(AddEpAnn AnnCloseP (EpaSpan { T14189.hs:3:15 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:3-8 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:3-8 }) + (AnnListItem + []) + (EpaComments + []))) (IEName (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:3-8 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:3-8 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.MyType}))) (NoIEWildcard) [(L - (SrcSpanAnn (EpAnn - (Anchor - { T14189.hs:3:11 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { T14189.hs:3:12 }))]) - (EpaComments - [])) { T14189.hs:3:11 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:11 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { T14189.hs:3:12 }))]) + (EpaComments + []))) (IEName (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:11 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:11 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.f}))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:13-14 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:13-14 }) + (AnnListItem + []) + (EpaComments + []))) (IEName (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T14189.hs:3:13-14 }) + ((EpAnnS + (EpaSpan { T14189.hs:3:13-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) {Name: T14189.NT})))])) [(AvailTC {Name: T14189.MyType} [{Name: T14189.MyType} ,{Name: T14189.f} ,{Name: T14189.NT}])])]) - (Nothing))) - - + (Nothing)))
\ No newline at end of file diff --git a/testsuite/tests/parser/should_compile/T15323.stderr b/testsuite/tests/parser/should_compile/T15323.stderr index e4911a91b3..84cb8555cc 100644 --- a/testsuite/tests/parser/should_compile/T15323.stderr +++ b/testsuite/tests/parser/should_compile/T15323.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T15323.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T15323.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:3:15-19 }))] @@ -26,49 +24,63 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:3:8-13 }) + ((EpAnnS + (EpaSpan { T15323.hs:3:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T15323})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T15323.hs:(5,1)-(6,54) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T15323.hs:(5,1)-(6,54) }) + ((EpAnnS + (EpaSpan { T15323.hs:(5,1)-(6,54) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T15323.hs:(5,1)-(6,54) } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:(5,1)-(6,54) }) [(AddEpAnn AnnData (EpaSpan { T15323.hs:5:1-4 })) ,(AddEpAnn AnnWhere (EpaSpan { T15323.hs:5:21-25 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:6-17 }) + ((EpAnnS + (EpaSpan { T15323.hs:5:6-17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MaybeDefault})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:19 }) + ((EpAnnS + (EpaSpan { T15323.hs:5:19 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T15323.hs:5:19 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:5:19 }) [] (EpaComments [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:5:19 }) + ((EpAnnS + (EpaSpan { T15323.hs:5:19 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: v}))))]) (Prefix) @@ -80,18 +92,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:5-54 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:5-54 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T15323.hs:6:5-54 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:5-54 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:5-14 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:5-14 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: TestParens})) []) @@ -100,38 +120,47 @@ (EpaSpan { T15323.hs:6:17-18 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:20-54 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:20-54 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterExplicit (EpAnn - (Anchor - { T15323.hs:6:20-25 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:20-25 }) ((,) (AddEpAnn AnnForall (EpaSpan { T15323.hs:6:20-25 })) (AddEpAnn AnnDot (EpaSpan { T15323.hs:6:29 }))) (EpaComments [])) [(L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:27 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:27 }) + (AnnListItem + []) + (EpaComments + []))) (UserTyVar (EpAnn - (Anchor - { T15323.hs:6:27 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:27 }) [] (EpaComments [])) (SpecifiedSpec) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:27 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:27 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: v}))))])) (Just (L (SrcSpanAnn (EpAnn - (Anchor - { T15323.hs:6:31-36 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:31-36 }) (AnnContext (Just ((,) @@ -142,12 +171,15 @@ (EpaComments [])) { T15323.hs:6:31-36 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:31-36 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:31-36 }) + (AnnListItem + []) + (EpaComments + []))) (HsParTy (EpAnn - (Anchor - { T15323.hs:6:31 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:31 }) (AnnParen (AnnParens) (EpaSpan { T15323.hs:6:31 }) @@ -155,76 +187,116 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-35 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:32-35 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-33 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:32-33 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T15323.hs:6:32-33 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:32-33 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:32-33 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:32-33 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Eq})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:35 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:35 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T15323.hs:6:35 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:35 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:35 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:35 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: v}))))))))])) (PrefixConGADT []) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-54 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:41-54 }) + (AnnListItem + []) + (EpaComments + []))) (HsAppTy (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-52 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:41-52 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T15323.hs:6:41-52 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:41-52 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:41-52 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:41-52 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MaybeDefault})))) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:54 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:54 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T15323.hs:6:54 } - (UnchangedAnchor)) + (EpaSpan { T15323.hs:6:54 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T15323.hs:6:54 }) + ((EpAnnS + (EpaSpan { T15323.hs:6:54 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: v})))))) (Nothing)))]) []))))])) - - diff --git a/testsuite/tests/parser/should_compile/T20452.stderr b/testsuite/tests/parser/should_compile/T20452.stderr index af4da2d5a9..e2d5949a06 100644 --- a/testsuite/tests/parser/should_compile/T20452.stderr +++ b/testsuite/tests/parser/should_compile/T20452.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T20452.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T20452.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T20452.hs:3:15-19 }))] @@ -26,43 +24,52 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:3:8-13 }) + ((EpAnnS + (EpaSpan { T20452.hs:3:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T20452})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:5:1-31 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20452.hs:5:1-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:1-31 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T20452.hs:5:1-31 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:5:1-31 }) [(AddEpAnn AnnData (EpaSpan { T20452.hs:5:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:5:24 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:6-11 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:6-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Proxy1})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:14-21 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:14-21 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:5:14-21 } - (UnchangedAnchor)) + (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 }))] @@ -70,22 +77,35 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:15 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:20 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:5:20 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:5:20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:20 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k}))))))]) (Prefix) @@ -97,17 +117,25 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:26-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:26-31 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { T20452.hs:5:26-31 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:5:26-31 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:5:26-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:5:26-31 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Proxy1})) (False) @@ -119,38 +147,42 @@ (Nothing)))]) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:6:1-31 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20452.hs:6:1-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:1-31 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T20452.hs:6:1-31 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:6:1-31 }) [(AddEpAnn AnnData (EpaSpan { T20452.hs:6:1-4 })) ,(AddEpAnn AnnEqual (EpaSpan { T20452.hs:6:24 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:6-11 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:6-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Proxy2})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:13-22 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:13-22 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:6:13-22 } - (UnchangedAnchor)) + (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 })) @@ -160,22 +192,35 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:15 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: a})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:20 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:20 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:6:20 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:6:20 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:20 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:20 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: k}))))))]) (Prefix) @@ -187,17 +232,25 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:26-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:26-31 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclH98 (EpAnn - (Anchor - { T20452.hs:6:26-31 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:6:26-31 }) [] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:6:26-31 }) + ((EpAnnS + (EpaSpan { T20452.hs:6:26-31 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Proxy2})) (False) @@ -209,22 +262,18 @@ (Nothing)))]) [])))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:8:1-85 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20452.hs:8:1-85 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:1-85 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T20452.hs:8:1-85 } - (UnchangedAnchor)) + (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 })) @@ -243,18 +292,26 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:7-12 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:7-12 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Prods1})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:15-26 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:15-26 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:8:15-26 } - (UnchangedAnchor)) + (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 }))] @@ -262,31 +319,47 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:16-18 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: lhs})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:23-25 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:23-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:8:23-25 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:23-25 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:23-25 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:23-25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:30-45 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:30-45 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:8:30-45 } - (UnchangedAnchor)) + (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 }))] @@ -294,31 +367,47 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:31-34 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:31-34 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: name})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:39-44 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:39-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:8:39-44 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:39-44 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:39-44 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:39-44 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:49-75 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:49-75 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:8:49-75 } - (UnchangedAnchor)) + (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 }))] @@ -326,16 +415,24 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:50-52 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:50-52 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: rhs})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:57-74 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:57-74 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { T20452.hs:8:57 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:57 }) (AnnParen (AnnParensSquare) (EpaSpan { T20452.hs:8:57 }) @@ -343,12 +440,15 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:58-73 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:58-73 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { T20452.hs:8:58 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:58 }) (AnnParen (AnnParens) (EpaSpan { T20452.hs:8:58 }) @@ -357,41 +457,50 @@ [])) (HsBoxedOrConstraintTuple) [(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:8:59-64 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { T20452.hs:8:65 }))]) - (EpaComments - [])) { T20452.hs:8:59-64 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:59-64 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { T20452.hs:8:65 }))]) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:8:59-64 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:59-64 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:59-64 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:59-64 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:67-72 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:67-72 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:8:67-72 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:8:67-72 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:8:67-72 }) + ((EpAnnS + (EpaSpan { T20452.hs:8:67-72 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String}))))]))))))]) (Prefix) @@ -403,22 +512,18 @@ [] []))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:9:1-85 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20452.hs:9:1-85 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:1-85 }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (ClassDecl ((,) (EpAnn - (Anchor - { T20452.hs:9:1-85 } - (UnchangedAnchor)) + (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 })) @@ -437,18 +542,26 @@ (HsTok))) (Nothing) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:7-12 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:7-12 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Prods2})) (HsQTvs (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:14-27 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:14-27 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:9:14-27 } - (UnchangedAnchor)) + (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 })) @@ -458,31 +571,47 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:16-18 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:16-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: lhs})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:23-25 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:23-25 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:9:23-25 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:23-25 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:23-25 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:23-25 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:29-46 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:29-46 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:9:29-46 } - (UnchangedAnchor)) + (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 })) @@ -492,31 +621,47 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:31-34 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:31-34 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: name})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:39-44 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:39-44 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:9:39-44 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:39-44 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:39-44 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:39-44 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String})))))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:48-76 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:48-76 }) + (AnnListItem + []) + (EpaComments + []))) (KindedTyVar (EpAnn - (Anchor - { T20452.hs:9:48-76 } - (UnchangedAnchor)) + (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 })) @@ -526,16 +671,24 @@ [])) (()) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:50-52 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:50-52 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: rhs})) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:57-74 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:57-74 }) + (AnnListItem + []) + (EpaComments + []))) (HsListTy (EpAnn - (Anchor - { T20452.hs:9:57 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:57 }) (AnnParen (AnnParensSquare) (EpaSpan { T20452.hs:9:57 }) @@ -543,12 +696,15 @@ (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:58-73 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:58-73 }) + (AnnListItem + []) + (EpaComments + []))) (HsTupleTy (EpAnn - (Anchor - { T20452.hs:9:58 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:58 }) (AnnParen (AnnParens) (EpaSpan { T20452.hs:9:58 }) @@ -557,41 +713,50 @@ [])) (HsBoxedOrConstraintTuple) [(L - (SrcSpanAnn (EpAnn - (Anchor - { T20452.hs:9:59-64 } - (UnchangedAnchor)) - (AnnListItem - [(AddCommaAnn - (EpaSpan { T20452.hs:9:65 }))]) - (EpaComments - [])) { T20452.hs:9:59-64 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:59-64 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { T20452.hs:9:65 }))]) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:9:59-64 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:59-64 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:59-64 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:59-64 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String})))) ,(L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:67-72 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:67-72 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T20452.hs:9:67-72 } - (UnchangedAnchor)) + (EpaSpan { T20452.hs:9:67-72 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T20452.hs:9:67-72 }) + ((EpAnnS + (EpaSpan { T20452.hs:9:67-72 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: String}))))]))))))]) (Prefix) @@ -602,5 +767,3 @@ [] [] [])))])) - - diff --git a/testsuite/tests/parser/should_compile/T20718.stderr b/testsuite/tests/parser/should_compile/T20718.stderr index ebd35e96b7..019b67fe7e 100644 --- a/testsuite/tests/parser/should_compile/T20718.stderr +++ b/testsuite/tests/parser/should_compile/T20718.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T20718.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T20718.hs:3:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T20718.hs:3:15-19 }))] @@ -19,49 +17,37 @@ { T20718.hs:11:1-8 }))) (EpaCommentsBalanced [(L - (Anchor - { T20718.hs:1:1-16 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:1:1-16 }) (EpaComment (EpaLineComment "-- top of file 1") { T20718.hs:1:1 })) ,(L - (Anchor - { T20718.hs:2:1-16 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:2:1-16 }) (EpaComment (EpaLineComment "-- top of file 2") { T20718.hs:1:1-16 })) ,(L - (Anchor - { T20718.hs:5:1-11 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:5:1-11 }) (EpaComment (EpaLineComment "-- before 1") { T20718.hs:3:15-19 })) ,(L - (Anchor - { T20718.hs:6:1-11 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:6:1-11 }) (EpaComment (EpaLineComment "-- before 2") { T20718.hs:5:1-11 }))] [(L - (Anchor - { T20718.hs:10:1-8 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:10:1-8 }) (EpaComment (EpaLineComment "-- end 1") { T20718.hs:8:5 })) ,(L - (Anchor - { T20718.hs:11:1-8 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:11:1-8 }) (EpaComment (EpaLineComment "-- end 2") @@ -72,25 +58,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:3:8-13 }) + ((EpAnnS + (EpaSpan { T20718.hs:3:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T20718})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T20718.hs:8:1-5 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20718.hs:8:1-5 }) + ((EpAnnS + (EpaSpan { T20718.hs:8:1-5 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:8:1 }) + ((EpAnnS + (EpaSpan { T20718.hs:8:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x})) (MG @@ -98,18 +92,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:8:1-5 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:8:1-5 }) + ((EpAnnS + (EpaSpan { T20718.hs:8:1-5 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { T20718.hs:8:1-5 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:8:1-5 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:8:1 }) + ((EpAnnS + (EpaSpan { T20718.hs:8:1 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x})) (Prefix) @@ -119,14 +121,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { T20718.hs:8:3-5 }) + (EpAnnS + (EpaSpan { T20718.hs:8:3-5 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { T20718.hs:8:3-5 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:8:3-5 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { T20718.hs:8:3 }))) @@ -134,12 +136,15 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { T20718.hs:8:5 }) + ((EpAnnS + (EpaSpan { T20718.hs:8:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsOverLit (EpAnn - (Anchor - { T20718.hs:8:5 } - (UnchangedAnchor)) + (EpaSpan { T20718.hs:8:5 }) (NoEpAnns) (EpaComments [])) diff --git a/testsuite/tests/parser/should_compile/T20718b.stderr b/testsuite/tests/parser/should_compile/T20718b.stderr index 48077c4b6b..a216026bb8 100644 --- a/testsuite/tests/parser/should_compile/T20718b.stderr +++ b/testsuite/tests/parser/should_compile/T20718b.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T20718b.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T20718b.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T20718b.hs:4:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T20718b.hs:4:16-20 }))] @@ -19,33 +17,25 @@ { T20718b.hs:7:1-21 }))) (EpaCommentsBalanced [(L - (Anchor - { T20718b.hs:1:1-19 } - (UnchangedAnchor)) + (EpaSpan { T20718b.hs:1:1-19 }) (EpaComment (EpaLineComment "-- header comment 1") { T20718b.hs:1:1 })) ,(L - (Anchor - { T20718b.hs:2:1-19 } - (UnchangedAnchor)) + (EpaSpan { T20718b.hs:2:1-19 }) (EpaComment (EpaLineComment "-- header comment 2") { T20718b.hs:1:1-19 })) ,(L - (Anchor - { T20718b.hs:6:1-21 } - (UnchangedAnchor)) + (EpaSpan { T20718b.hs:6:1-21 }) (EpaComment (EpaLineComment "-- trailing comment 1") { T20718b.hs:4:16-20 })) ,(L - (Anchor - { T20718b.hs:7:1-21 } - (UnchangedAnchor)) + (EpaSpan { T20718b.hs:7:1-21 }) (EpaComment (EpaLineComment "-- trailing comment 2") @@ -57,10 +47,13 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T20718b.hs:4:8-14 }) + ((EpAnnS + (EpaSpan { T20718b.hs:4:8-14 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T20718b})) (Nothing) [] [])) - - diff --git a/testsuite/tests/parser/should_compile/T20846.stderr b/testsuite/tests/parser/should_compile/T20846.stderr index 4a1981b6e1..0204e6387d 100644 --- a/testsuite/tests/parser/should_compile/T20846.stderr +++ b/testsuite/tests/parser/should_compile/T20846.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T20846.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T20846.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T20846.hs:1:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T20846.hs:1:15-19 }))] @@ -26,62 +24,64 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:1:8-13 }) + ((EpAnnS + (EpaSpan { T20846.hs:1:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T20846})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T20846.hs:3:1-11 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20846.hs:3:1-11 }) + ((EpAnnS + (EpaSpan { T20846.hs:3:1-11 }) + (AnnListItem + []) + (EpaComments + []))) (SigD (NoExtField) (FixSig (EpAnn - (Anchor - { T20846.hs:3:1-6 } - (UnchangedAnchor)) + (EpaSpan { T20846.hs:3:1-6 }) [(AddEpAnn AnnInfix (EpaSpan { T20846.hs:3:1-6 }))] (EpaComments [])) (FixitySig (NoExtField) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:3:8-11 }) + ((EpAnnS + (EpaSpan { T20846.hs:3:8-11 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: ++++}))] {Fixity: infixr 9})))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { T20846.hs:4:1-18 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T20846.hs:4:1-18 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:1-18 }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnn - (Anchor - { T20846.hs:4:1-6 } - (UnchangedAnchor)) - (NameAnn - (NameParens) - (EpaSpan { T20846.hs:4:1 }) - (EpaSpan { T20846.hs:4:2-5 }) - (EpaSpan { T20846.hs:4:6 }) - []) - (EpaComments - [])) { T20846.hs:4:1-6 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:1-6 }) + (NameAnn + (NameParens) + (EpaSpan { T20846.hs:4:1 }) + (EpaSpan { T20846.hs:4:2-5 }) + (EpaSpan { T20846.hs:4:6 }) + []) + (EpaComments + []))) (Unqual {OccName: ++++})) (MG @@ -89,29 +89,30 @@ (L (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:4:1-18 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:4:1-18 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:1-18 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { T20846.hs:4:1-18 } - (UnchangedAnchor)) + (EpaSpan { T20846.hs:4:1-18 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnn - (Anchor - { T20846.hs:4:1-6 } - (UnchangedAnchor)) - (NameAnn - (NameParens) - (EpaSpan { T20846.hs:4:1 }) - (EpaSpan { T20846.hs:4:2-5 }) - (EpaSpan { T20846.hs:4:6 }) - []) - (EpaComments - [])) { T20846.hs:4:1-6 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:1-6 }) + (NameAnn + (NameParens) + (EpaSpan { T20846.hs:4:1 }) + (EpaSpan { T20846.hs:4:2-5 }) + (EpaSpan { T20846.hs:4:6 }) + []) + (EpaComments + []))) (Unqual {OccName: ++++})) (Prefix) @@ -121,14 +122,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { T20846.hs:4:8-18 }) + (EpAnnS + (EpaSpan { T20846.hs:4:8-18 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { T20846.hs:4:8-18 } - (UnchangedAnchor)) + (EpaSpan { T20846.hs:4:8-18 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { T20846.hs:4:8 }))) @@ -136,11 +137,21 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:4:10-18 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:10-18 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { T20846.hs:4:10-18 }) + ((EpAnnS + (EpaSpan { T20846.hs:4:10-18 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: undefined}))))))] (EmptyLocalBinds diff --git a/testsuite/tests/printer/T18791.stderr b/testsuite/tests/printer/T18791.stderr index d7a0fb6b96..12390cef8c 100644 --- a/testsuite/tests/printer/T18791.stderr +++ b/testsuite/tests/printer/T18791.stderr @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { T18791.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { T18791.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { T18791.hs:2:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { T18791.hs:2:15-19 }))] @@ -26,32 +24,38 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:2:8-13 }) + ((EpAnnS + (EpaSpan { T18791.hs:2:8-13 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: T18791})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { T18791.hs:(4,1)-(5,17) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T18791.hs:(4,1)-(5,17) }) + ((EpAnnS + (EpaSpan { T18791.hs:(4,1)-(5,17) }) + (AnnListItem + []) + (EpaComments + []))) (TyClD (NoExtField) (DataDecl (EpAnn - (Anchor - { T18791.hs:(4,1)-(5,17) } - (UnchangedAnchor)) + (EpaSpan { T18791.hs:(4,1)-(5,17) }) [(AddEpAnn AnnData (EpaSpan { T18791.hs:4:1-4 })) ,(AddEpAnn AnnWhere (EpaSpan { T18791.hs:4:8-12 }))] (EpaComments [])) (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:4:6 }) + ((EpAnnS + (EpaSpan { T18791.hs:4:6 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: T})) (HsQTvs @@ -66,18 +70,26 @@ (DataTypeCons (False) [(L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:3-17 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:3-17 }) + (AnnListItem + []) + (EpaComments + []))) (ConDeclGADT (EpAnn - (Anchor - { T18791.hs:5:3-17 } - (UnchangedAnchor)) + (EpaSpan { T18791.hs:5:3-17 }) [] (EpaComments [])) (:| (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:3-5 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:3-5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: MkT})) []) @@ -86,7 +98,12 @@ (EpaSpan { T18791.hs:5:7-8 })) (HsNormalTok)) (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:10-17 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:10-17 }) + (AnnListItem + []) + (EpaComments + []))) (HsOuterImplicit (NoExtField))) (Nothing) @@ -98,43 +115,50 @@ (EpaSpan { T18791.hs:5:14-15 })) (HsNormalTok))) (L - (SrcSpanAnn (EpAnn - (Anchor - { T18791.hs:5:10-12 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { T18791.hs:5:10-12 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:10-12 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T18791.hs:5:10-12 } - (UnchangedAnchor)) + (EpaSpan { T18791.hs:5:10-12 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:10-12 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:10-12 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: Int})))))]) (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:17 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:17 }) + (AnnListItem + []) + (EpaComments + []))) (HsTyVar (EpAnn - (Anchor - { T18791.hs:5:17 } - (UnchangedAnchor)) + (EpaSpan { T18791.hs:5:17 }) [] (EpaComments [])) (NotPromoted) (L - (SrcSpanAnn (EpAnnNotUsed) { T18791.hs:5:17 }) + ((EpAnnS + (EpaSpan { T18791.hs:5:17 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: T})))) (Nothing)))]) []))))])) - - diff --git a/testsuite/tests/printer/Test20297.stdout b/testsuite/tests/printer/Test20297.stdout index 586d9fae20..ab1767f504 100644 --- a/testsuite/tests/printer/Test20297.stdout +++ b/testsuite/tests/printer/Test20297.stdout @@ -6,9 +6,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { Test20297.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { Test20297.hs:2:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:2:18-22 }))] @@ -19,9 +17,7 @@ { Test20297.hs:11:22-26 }))) (EpaCommentsBalanced [(L - (Anchor - { Test20297.hs:1:1-33 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:1:1-33 }) (EpaComment (EpaBlockComment "{-# OPTIONS -ddump-parsed-ast #-}") @@ -33,25 +29,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:2:8-16 }) + ((EpAnnS + (EpaSpan { Test20297.hs:2:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Test20297})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.hs:(5,1)-(7,7) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20297.hs:(5,1)-(7,7) }) + ((EpAnnS + (EpaSpan { Test20297.hs:(5,1)-(7,7) }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.hs:5:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (MG @@ -59,18 +63,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(5,1)-(7,7) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(5,1)-(7,7) }) + ((EpAnnS + (EpaSpan { Test20297.hs:(5,1)-(7,7) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.hs:(5,1)-(7,7) } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:(5,1)-(7,7) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.hs:5:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (Prefix) @@ -80,45 +92,48 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.hs:(5,5)-(7,7) }) + (EpAnnS + (EpaSpan { Test20297.hs:(5,5)-(7,7) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.hs:(5,5)-(7,7) } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:(5,5)-(7,7) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:5:5 }))) (EpaComments [(L - (Anchor - { Test20297.hs:6:3-13 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:6:3-13 }) (EpaComment (EpaLineComment "-- comment0") { Test20297.hs:5:7 }))])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:7 }) + ((EpAnnS + (EpaSpan { Test20297.hs:5:7 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:5:7 }) + ((EpAnnS + (EpaSpan { Test20297.hs:5:7 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn - (Anchor - { Test20297.hs:7:3-7 } - (UnchangedAnchor)) + (EpaSpan { <no location info> }) (AnnList - (Just - (Anchor - { Test20297.hs:7:3-7 } - (UnchangedAnchor))) + (Nothing) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:7:3-7 }))] @@ -131,27 +146,28 @@ []} [])))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.hs:(9,1)-(11,26) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [(L - (Anchor - { Test20297.hs:7:9-19 } - (UnchangedAnchor)) - (EpaComment - (EpaLineComment - "-- comment1") - { Test20297.hs:7:3-7 }))])) { Test20297.hs:(9,1)-(11,26) }) + ((EpAnnS + (EpaSpan { Test20297.hs:(9,1)-(11,26) }) + (AnnListItem + []) + (EpaComments + [(L + (EpaSpan { Test20297.hs:7:9-19 }) + (EpaComment + (EpaLineComment + "-- comment1") + { Test20297.hs:7:3-7 }))]))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.hs:9:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (MG @@ -159,18 +175,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(9,1)-(11,26) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:(9,1)-(11,26) }) + ((EpAnnS + (EpaSpan { Test20297.hs:(9,1)-(11,26) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.hs:(9,1)-(11,26) } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:(9,1)-(11,26) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.hs:9:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (Prefix) @@ -180,14 +204,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.hs:(9,5)-(11,26) }) + (EpAnnS + (EpaSpan { Test20297.hs:(9,5)-(11,26) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.hs:(9,5)-(11,26) } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:(9,5)-(11,26) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:9:5 }))) @@ -195,32 +219,36 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:7 }) + ((EpAnnS + (EpaSpan { Test20297.hs:9:7 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:9:7 }) + ((EpAnnS + (EpaSpan { Test20297.hs:9:7 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn - (Anchor - { Test20297.hs:(10,3)-(11,26) } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:(10,3)-(11,26) }) (AnnList (Just - (Anchor - { Test20297.hs:11:9-26 } - (UnchangedAnchor))) + (EpaSpan { Test20297.hs:11:9-26 })) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.hs:10:3-7 }))] []) (EpaComments [(L - (Anchor - { Test20297.hs:10:9-19 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:10:9-19 }) (EpaComment (EpaLineComment "-- comment2") @@ -229,18 +257,21 @@ (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.hs:11:9-26 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20297.hs:11:9-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:9-26 }) + (AnnListItem + []) + (EpaComments + []))) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-15 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:9-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: doStuff})) (MG @@ -248,18 +279,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-26 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:9-26 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.hs:11:9-26 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:11:9-26 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:9-15 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:9-15 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: doStuff})) (Prefix) @@ -269,14 +308,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.hs:11:17-26 }) + (EpAnnS + (EpaSpan { Test20297.hs:11:17-26 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.hs:11:17-26 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:11:17-26 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.hs:11:17 }))) @@ -284,17 +323,18 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:19-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:19-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { Test20297.hs:11:19-26 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:11:19-26 }) (AnnList (Just - (Anchor - { Test20297.hs:11:22-26 } - (UnchangedAnchor))) + (EpaSpan { Test20297.hs:11:22-26 })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { Test20297.hs:11:19-20 }))] @@ -305,14 +345,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { Test20297.hs:11:22-26 } - (UnchangedAnchor)) + (EpaSpan { Test20297.hs:11:22-26 }) (AnnList (Just - (Anchor - { Test20297.hs:11:22-26 } - (UnchangedAnchor))) + (EpaSpan { Test20297.hs:11:22-26 })) (Nothing) (Nothing) [] @@ -320,15 +356,30 @@ (EpaComments [])) { Test20297.hs:11:22-26 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:22-26 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:22-26 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.hs:11:22-26 }) + ((EpAnnS + (EpaSpan { Test20297.hs:11:22-26 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: stuff})))) (NoExtField) @@ -346,9 +397,7 @@ (HsModule (XModulePs (EpAnn - (Anchor - { Test20297.ppr.hs:1:1 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:1:1 }) (AnnsModule [(AddEpAnn AnnModule (EpaSpan { Test20297.ppr.hs:2:1-6 })) ,(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:2:18-22 }))] @@ -359,9 +408,7 @@ { Test20297.ppr.hs:9:20-24 }))) (EpaCommentsBalanced [(L - (Anchor - { Test20297.ppr.hs:1:1-33 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:1:1-33 }) (EpaComment (EpaBlockComment "{-# OPTIONS -ddump-parsed-ast #-}") @@ -373,25 +420,33 @@ (Nothing)) (Just (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:2:8-16 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:2:8-16 }) + (AnnListItem + []) + (EpaComments + []))) {ModuleName: Test20297})) (Nothing) [] [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.ppr.hs:(3,1)-(5,7) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20297.ppr.hs:(3,1)-(5,7) }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:(3,1)-(5,7) }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:3:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:3:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (MG @@ -399,18 +454,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(3,1)-(5,7) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(3,1)-(5,7) }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:(3,1)-(5,7) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.ppr.hs:(3,1)-(5,7) } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:(3,1)-(5,7) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:3:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:3:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: bar})) (Prefix) @@ -420,14 +483,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.ppr.hs:(4,3)-(5,7) }) + (EpAnnS + (EpaSpan { Test20297.ppr.hs:(4,3)-(5,7) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.ppr.hs:(4,3)-(5,7) } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:(4,3)-(5,7) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:4:3 }))) @@ -435,23 +498,28 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:4:5 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:4:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:4:5 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:4:5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn - (Anchor - { Test20297.ppr.hs:5:3-7 } - (UnchangedAnchor)) + (EpaSpan { <no location info> }) (AnnList - (Just - (Anchor - { Test20297.ppr.hs:5:3-7 } - (UnchangedAnchor))) + (Nothing) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:5:3-7 }))] @@ -464,20 +532,23 @@ []} [])))))]))))) ,(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.ppr.hs:(6,1)-(9,24) } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20297.ppr.hs:(6,1)-(9,24) }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:(6,1)-(9,24) }) + (AnnListItem + []) + (EpaComments + []))) (ValD (NoExtField) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:6:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:6:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (MG @@ -485,18 +556,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(6,1)-(9,24) }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:(6,1)-(9,24) }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:(6,1)-(9,24) }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.ppr.hs:(6,1)-(9,24) } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:(6,1)-(9,24) }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:6:1-3 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:6:1-3 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: foo})) (Prefix) @@ -506,14 +585,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.ppr.hs:(7,3)-(9,24) }) + (EpAnnS + (EpaSpan { Test20297.ppr.hs:(7,3)-(9,24) }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.ppr.hs:(7,3)-(9,24) } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:(7,3)-(9,24) }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:7:3 }))) @@ -521,23 +600,29 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:7:5 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:7:5 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:7:5 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:7:5 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: x}))))))] (HsValBinds (EpAnn - (Anchor - { Test20297.ppr.hs:(8,3)-(9,24) } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:(8,3)-(9,24) }) (AnnList (Just - (Anchor - { Test20297.ppr.hs:9:7-24 } - (UnchangedAnchor))) + (EpaSpan { Test20297.ppr.hs:9:7-24 })) (Nothing) (Nothing) [(AddEpAnn AnnWhere (EpaSpan { Test20297.ppr.hs:8:3-7 }))] @@ -548,18 +633,21 @@ (NoAnnSortKey) {Bag(LocatedA (HsBind GhcPs)): [(L - (SrcSpanAnn (EpAnn - (Anchor - { Test20297.ppr.hs:9:7-24 } - (UnchangedAnchor)) - (AnnListItem - []) - (EpaComments - [])) { Test20297.ppr.hs:9:7-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:7-24 }) + (AnnListItem + []) + (EpaComments + []))) (FunBind (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-13 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:7-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: doStuff})) (MG @@ -567,18 +655,26 @@ (L (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-24 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:7-24 }) + (AnnListItem + []) + (EpaComments + []))) (Match (EpAnn - (Anchor - { Test20297.ppr.hs:9:7-24 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:9:7-24 }) [] (EpaComments [])) (FunRhs (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:7-13 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:7-13 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: doStuff})) (Prefix) @@ -588,14 +684,14 @@ (EpaComments []) [(L - (SrcSpanAnn - (EpAnnNotUsed) - { Test20297.ppr.hs:9:15-24 }) + (EpAnnS + (EpaSpan { Test20297.ppr.hs:9:15-24 }) + (NoEpAnns) + (EpaComments + [])) (GRHS (EpAnn - (Anchor - { Test20297.ppr.hs:9:15-24 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:9:15-24 }) (GrhsAnn (Nothing) (AddEpAnn AnnEqual (EpaSpan { Test20297.ppr.hs:9:15 }))) @@ -603,17 +699,18 @@ [])) [] (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:17-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:17-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsDo (EpAnn - (Anchor - { Test20297.ppr.hs:9:17-24 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:9:17-24 }) (AnnList (Just - (Anchor - { Test20297.ppr.hs:9:20-24 } - (UnchangedAnchor))) + (EpaSpan { Test20297.ppr.hs:9:20-24 })) (Nothing) (Nothing) [(AddEpAnn AnnDo (EpaSpan { Test20297.ppr.hs:9:17-18 }))] @@ -624,14 +721,10 @@ (Nothing)) (L (SrcSpanAnn (EpAnn - (Anchor - { Test20297.ppr.hs:9:20-24 } - (UnchangedAnchor)) + (EpaSpan { Test20297.ppr.hs:9:20-24 }) (AnnList (Just - (Anchor - { Test20297.ppr.hs:9:20-24 } - (UnchangedAnchor))) + (EpaSpan { Test20297.ppr.hs:9:20-24 })) (Nothing) (Nothing) [] @@ -639,15 +732,30 @@ (EpaComments [])) { Test20297.ppr.hs:9:20-24 }) [(L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:20-24 }) + (AnnListItem + []) + (EpaComments + []))) (BodyStmt (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:20-24 }) + (AnnListItem + []) + (EpaComments + []))) (HsVar (NoExtField) (L - (SrcSpanAnn (EpAnnNotUsed) { Test20297.ppr.hs:9:20-24 }) + ((EpAnnS + (EpaSpan { Test20297.ppr.hs:9:20-24 }) + (NameAnnTrailing + []) + (EpaComments + []))) (Unqual {OccName: stuff})))) (NoExtField) @@ -655,4 +763,3 @@ (EmptyLocalBinds (NoExtField)))))]))))]} [])))))])))))])) - diff --git a/testsuite/tests/th/TH_dataD1.hs b/testsuite/tests/th/TH_dataD1.hs index 9d0c95b1a9..4a521b13b4 100644 --- a/testsuite/tests/th/TH_dataD1.hs +++ b/testsuite/tests/th/TH_dataD1.hs @@ -1,4 +1,4 @@ - +{-# LANGUAGE TemplateHaskell #-} module TH_dataD1 where import Language.Haskell.TH @@ -9,4 +9,3 @@ ds = [d| [normalC (mkName "K") []] [] ; return [d]}) |] - diff --git a/utils/check-exact/ExactPrint.hs b/utils/check-exact/ExactPrint.hs index 5db255f765..a0fa33f7cb 100644 --- a/utils/check-exact/ExactPrint.hs +++ b/utils/check-exact/ExactPrint.hs @@ -113,6 +113,7 @@ defaultEPState = EPState , dPriorEndPosition = (1,1) , uAnchorSpan = badRealSrcSpan , uExtraDP = Nothing + , pAcceptSpan = False , epComments = [] , epCommentsApplied = [] , epEof = Nothing @@ -174,6 +175,13 @@ data EPState = EPState -- Annotation , uExtraDP :: !(Maybe Anchor) -- ^ Used to anchor a -- list + , pAcceptSpan :: Bool -- ^ When we have processed an + -- entry of EpaDelta, accept the + -- next `EpaSpan` start as the + -- current output position. i.e. do + -- not advance epPos. Achieved by + -- setting dPriorEndPosition to the + -- end of the span. -- Print phase , epPos :: !Pos -- ^ Current output position @@ -233,9 +241,12 @@ instance HasEntry (SrcSpanAnn' (EpAnn an)) where fromAnn (SrcSpanAnn an _) = fromAnn an instance HasEntry (EpAnn a) where - fromAnn (EpAnn anchor _ cs) = mkEntry anchor cs + fromAnn (EpAnn anc _ cs) = mkEntry anc cs fromAnn EpAnnNotUsed = NoEntryVal +instance HasEntry (EpAnnS a) where + fromAnn (EpAnnS anc _ cs) = mkEntry anc cs + -- --------------------------------------------------------------------- fromAnn' :: (HasEntry a) => a -> Entry @@ -255,6 +266,7 @@ cua NoCanUpdateAnchor _ = return [] -- | "Enter" an annotation, by using the associated 'anchor' field as -- the new reference point for calculating all DeltaPos positions. +-- This is the heart of the exact printing process. -- -- This is combination of the ghc=exactprint Delta.withAST and -- Print.exactPC functions and effectively does the delta processing @@ -267,10 +279,20 @@ enterAnn NoEntryVal a = do debugM $ "enterAnn:done:NO ANN:p =" ++ show (p, astId a) return r enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do + acceptSpan <- getAcceptSpan + setAcceptSpan False + case anchor' of + EpaDelta _ _ -> setAcceptSpan True + EpaSpan _ -> return () p <- getPosP debugM $ "enterAnn:starting:(p,a) =" ++ show (p, astId a) - -- debugM $ "enterAnn:(cs) =" ++ showGhc (cs) - let curAnchor = anchor anchor' -- As a base for the current AST element + debugM $ "enterAnn:(anchor') =" ++ showGhc anchor' + debugM $ "enterAnn:anchor_op=" ++ showGhc (anchor_op anchor') + prevAnchor <- getAnchorU + let curAnchor = case anchor' of + EpaSpan (RealSrcSpan r _) -> r + _ -> prevAnchor + -- anchor anchor' -- As a base for the current AST element debugM $ "enterAnn:(curAnchor):=" ++ show (rs2range curAnchor) case canUpdateAnchor of CanUpdateAnchor -> pushAppliedComments @@ -280,14 +302,17 @@ enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do printComments curAnchor priorCs <- cua canUpdateAnchor takeAppliedComments -- no pop -- ------------------------- - case anchor_op anchor' of - MovedAnchor dp -> do - debugM $ "enterAnn: MovedAnchor:" ++ show dp + case anchor' of + EpaDelta dp _ -> do + debugM $ "enterAnn: EpaDelta:" ++ show dp -- Set the original anchor as prior end, so the rest of this AST -- fragment has a reference setPriorEndNoLayoutD (ss2pos curAnchor) _ -> do - return () + if acceptSpan + then setPriorEndNoLayoutD (ss2pos curAnchor) + else return () + -- ------------------------- if ((fst $ fst $ rs2range curAnchor) >= 0) then @@ -319,19 +344,18 @@ enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do -- changed. off (ss2delta priorEndAfterComments curAnchor) debugM $ "enterAnn: (edp',off,priorEndAfterComments,curAnchor):" ++ show (edp',off,priorEndAfterComments,rs2range curAnchor) - let edp'' = case anchor_op anchor' of - MovedAnchor dp -> dp + let edp'' = case anchor' of + EpaDelta dp _ -> dp _ -> edp' -- --------------------------------------------- - -- let edp = edp'' med <- getExtraDP setExtraDP Nothing let edp = case med of Nothing -> edp'' - Just (Anchor _ (MovedAnchor dp)) -> dp + Just (EpaDelta dp _) -> dp -- Replace original with desired one. Allows all -- list entry values to be DP (1,0) - Just (Anchor r _) -> dp + Just (EpaSpan (RealSrcSpan r _)) -> dp where dp = adjustDeltaForOffset off (ss2delta priorEndAfterComments r) @@ -368,6 +392,7 @@ enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do mapM_ printOneComment (map tokComment $ getFollowingComments cs) debugM $ "ending trailing comments" + -----------------------------------------merge A eof <- getEofPos case eof of Nothing -> return () @@ -379,7 +404,10 @@ enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do printStringAtLsDelta dp "" setEofPos Nothing -- Only do this once - let newAchor = anchor' { anchor_op = MovedAnchor edp } + -- let newAchor = anchor' { anchor_op = MovedAnchor edp } + -----------------------------------------merge A end + -- let newAchor = anchor' { anchor_op = MovedAnchor edp } + let newAchor = EpaDelta edp [] let r = case canUpdateAnchor of CanUpdateAnchor -> setAnnotationAnchor a' newAchor (mkEpaComments (priorCs++ postCs) []) CanUpdateAnchorOnly -> setAnnotationAnchor a' newAchor emptyComments @@ -387,6 +415,13 @@ enterAnn (Entry anchor' cs flush canUpdateAnchor) a = do -- debugM $ "calling setAnnotationAnchor:(curAnchor, newAchor,priorCs,postCs)=" ++ showAst (show (rs2range curAnchor), newAchor, priorCs, postCs) -- debugM $ "calling setAnnotationAnchor:(newAchor,postCs)=" ++ showAst (newAchor, postCs) debugM $ "enterAnn:done:(p,a) =" ++ show (p0, astId a') + + -- AZ experiment. Under some circumstances we need to do this. Which? + -- case anchor' of + -- EpaDelta _ _ -> return () + -- EpaSpan r -> do + -- debugM $ "enterAnn:end: setPriorEndNoLayoutD:r=" ++ showAst r + -- setPriorEndNoLayoutD (ss2posEnd r) return r -- --------------------------------------------------------------------- @@ -482,7 +517,7 @@ printSourceText (SourceText txt) _ = printStringAdvance txt >> return () -- --------------------------------------------------------------------- printStringAtSs :: (Monad m, Monoid w) => SrcSpan -> String -> EP w m () -printStringAtSs ss str = printStringAtRs (realSrcSpan ss) str >> return () +printStringAtSs ss str = printStringAtRs (realSrcSpan "aa1" ss) str >> return () printStringAtRs :: (Monad m, Monoid w) => RealSrcSpan -> String -> EP w m EpaLocation printStringAtRs pa str = printStringAtRsC CaptureComments pa str @@ -544,7 +579,7 @@ printStringAtAAL (EpAnn anc an cs) l str = do printStringAtAAC :: (Monad m, Monoid w) => CaptureComments -> EpaLocation -> String -> EP w m EpaLocation -printStringAtAAC capture (EpaSpan r _) s = printStringAtRsC capture r s +printStringAtAAC capture (EpaSpan (RealSrcSpan r _)) s = printStringAtRsC capture r s printStringAtAAC capture (EpaDelta d cs) s = do mapM_ (printOneComment . tokComment) cs pe1 <- getPriorEndD @@ -559,12 +594,13 @@ printStringAtAAC capture (EpaDelta d cs) s = do NoCaptureComments -> return [] debugM $ "printStringAtAA:(pe1,pe2,p1,p2,cs')=" ++ show (pe1,pe2,p1,p2,cs') return (EpaDelta d (map comment2LEpaComment cs')) +printStringAtAAC _ _ _ = error "printStringAtAAC" -- --------------------------------------------------------------------- markExternalSourceText :: (Monad m, Monoid w) => SrcSpan -> SourceText -> String -> EP w m () -markExternalSourceText l NoSourceText txt = printStringAtRs (realSrcSpan l) txt >> return () -markExternalSourceText l (SourceText txt) _ = printStringAtRs (realSrcSpan l) txt >> return () +markExternalSourceText l NoSourceText txt = printStringAtRs (realSrcSpan "aa2" l) txt >> return () +markExternalSourceText l (SourceText txt) _ = printStringAtRs (realSrcSpan "aa3" l) txt >> return () -- --------------------------------------------------------------------- @@ -1096,11 +1132,10 @@ markLensKwM (EpAnn anc a cs) l kw = do -- --------------------------------------------------------------------- -markALocatedA :: (Monad m, Monoid w) => EpAnn AnnListItem -> EP w m (EpAnn AnnListItem) -markALocatedA EpAnnNotUsed = return EpAnnNotUsed -markALocatedA (EpAnn anc a cs) = do +markALocatedA :: (Monad m, Monoid w) => EpAnnS AnnListItem -> EP w m (EpAnnS AnnListItem) +markALocatedA (EpAnnS anc a cs) = do t <- markTrailing (lann_trailing a) - return (EpAnn anc (a { lann_trailing = t }) cs) + return (EpAnnS anc (a { lann_trailing = t }) cs) markEpAnnL :: (Monad m, Monoid w) => EpAnn ann -> Lens ann [AddEpAnn] -> AnnKeywordId -> EP w m (EpAnn ann) @@ -1221,24 +1256,30 @@ printOneComment c@(Comment _str loc _r _mo) = do MovedAnchor dp -> return dp _ -> do pe <- getPriorEndD - let dp = ss2delta pe (anchor loc) - debugM $ "printOneComment:(dp,pe,anchor loc)=" ++ showGhc (dp,pe,ss2pos $ anchor loc) + debugM $ "printOneComment:pe=" ++ showGhc pe + -- let dp = ss2delta pe (anchor loc) + let dp = case loc of + EpaSpan (RealSrcSpan r _) -> ss2delta pe r + EpaSpan ss -> error ("printOneComment:ss=" ++ showGhc ss) + EpaDelta dp1 _ -> dp1 + debugM $ "printOneComment:(dp,pe,loc)=" ++ showGhc (dp,pe,loc) adjustDeltaForOffsetM dp mep <- getExtraDP dp' <- case mep of - Just (Anchor _ (MovedAnchor edp)) -> do + Just (EpaDelta edp _) -> do debugM $ "printOneComment:edp=" ++ show edp ddd <- fmap unTweakDelta $ adjustDeltaForOffsetM edp debugM $ "printOneComment:ddd=" ++ show ddd fmap unTweakDelta $ adjustDeltaForOffsetM edp _ -> return dp -- Start of debug printing - -- LayoutStartCol dOff <- getLayoutOffsetD - -- debugM $ "printOneComment:(dp,dp',dOff)=" ++ showGhc (dp,dp',dOff) + LayoutStartCol dOff <- getLayoutOffsetD + debugM $ "printOneComment:(dp,dp',dOff,loc)=" ++ showGhc (dp,dp',dOff,loc) -- End of debug printing -- setPriorEndD (ss2posEnd (anchor loc)) updateAndApplyComment c dp' - printQueuedComment (anchor loc) c dp' + + printQueuedComment c dp' -- | For comment-related deltas starting on a new line we have an -- off-by-one problem. Adjust @@ -1252,25 +1293,36 @@ updateAndApplyComment (Comment str anc pp mo) dp = do -- debugM $ "updateAndApplyComment: (dp,anc',co)=" ++ showAst (dp,anc',co) applyComment (Comment str anc' pp mo) where - anc' = anc { anchor_op = op} + -- anc' = anc { anchor_op = op} + anc' = op (r,c) = ss2posEnd pp - la = anchor anc - dp'' = if r == 0 - then (ss2delta (r,c+0) la) - else (ss2delta (r,c) la) - dp' = if pp == anchor anc - then dp - else dp'' + -- la = anchor anc + -- dp'' = if r == 0 + -- then (ss2delta (r,c+0) la) + -- else (ss2delta (r,c) la) + -- la = anchor anc + dp'' = case anc of + EpaDelta dp1 _ -> dp1 + EpaSpan (RealSrcSpan la _) -> + if r == 0 + then (ss2delta (r,c+0) la) + else (ss2delta (r,c) la) + EpaSpan ss -> error ("updateAndApplyComment:ss=" ++ showGhc ss) + dp' = case anc of + EpaSpan (RealSrcSpan r1 _) -> + if pp == r1 + then dp + else dp'' + _ -> dp'' op' = case dp' of SameLine n -> if n >= 0 - then MovedAnchor dp' - else MovedAnchor dp - _ -> MovedAnchor dp' - op = if str == "" && op' == MovedAnchor (SameLine 0) -- EOF comment - then MovedAnchor dp - -- else op' - else MovedAnchor dp + then EpaDelta dp' [] + else EpaDelta dp [] + _ -> EpaDelta dp' [] + op = if str == "" && op' == EpaDelta (SameLine 0) [] -- EOF comment + then EpaDelta dp [] + else EpaDelta dp [] -- --------------------------------------------------------------------- @@ -1281,7 +1333,11 @@ commentAllocation ss = do -- RealSrcSpan, which affects comparison, as the Ord instance for -- RealSrcSpan compares the file first. So we sort via ss2pos -- TODO: this is inefficient, use Pos all the way through - let (earlier,later) = partition (\(Comment _str loc _r _mo) -> (ss2pos $ anchor loc) <= (ss2pos ss)) cs + let (earlier,later) = partition (\(Comment _str loc _r _mo) -> + case loc of + EpaSpan (RealSrcSpan r _) -> (ss2pos r) <= (ss2pos ss) + _ -> True -- Choose one + ) cs putUnallocatedComments later -- debugM $ "commentAllocation:(ss,earlier,later)" ++ show (rs2range ss,earlier,later) return earlier @@ -1309,8 +1365,7 @@ instance (ExactPrint a) => ExactPrint (Located a) where UnhelpfulSpan _ -> NoEntryVal _ -> Entry (hackSrcSpanToAnchor l) emptyComments NoFlushComments CanUpdateAnchorOnly - setAnnotationAnchor (L _ a) anc _cs = (L (hackAnchorToSrcSpan anc) a) - `debug` ("setAnnotationAnchor(Located):" ++ showAst anc) + setAnnotationAnchor (L l a) _anc _cs = L l a exact (L l a) = L l <$> markAnnotated a @@ -1320,16 +1375,24 @@ instance (ExactPrint a) => ExactPrint (LocatedA a) where exact (L la a) = do debugM $ "LocatedA a:la loc=" ++ show (ss2range $ locA la) a' <- markAnnotated a - ann' <- markALocatedA (ann la) - return (L (la { ann = ann'}) a') + la' <- markALocatedA la + return (L la' a') instance (ExactPrint a) => ExactPrint (LocatedAn NoEpAnns a) where + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor la anc cs = setAnchorAnI la anc cs + exact (L la a) = do + a' <- markAnnotated a + return (L la a') + +instance (ExactPrint a) => ExactPrint (LocatedAnS NoEpAnns a) where getAnnotationEntry = entryFromLocatedA setAnnotationAnchor la anc cs = setAnchorAn la anc cs exact (L la a) = do a' <- markAnnotated a return (L la a') + instance (ExactPrint a) => ExactPrint [a] where getAnnotationEntry = const NoEntryVal setAnnotationAnchor ls _ _ = ls @@ -1391,6 +1454,8 @@ instance ExactPrint (HsModule GhcPs) where Just (pos, prior) -> do debugM $ "am_eof:" ++ showGhc (pos, prior) setEofPos (Just (pos, prior)) + -- let dp = origDelta pos prior + -- printStringAtLsDelta dp "" let anf = an0 { anns = (anns an0) { am_decls = am_decls' }} debugM $ "HsModule, anf=" ++ showAst anf @@ -1410,24 +1475,24 @@ instance ExactPrint ModuleName where -- --------------------------------------------------------------------- instance ExactPrint (LocatedP (WarningTxt GhcPs)) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI - exact (L (SrcSpanAnn an l) (WarningTxt mb_cat (L la src) ws)) = do + exact (L (SrcSpanAnn an l) (WarningTxt mb_cat src ws)) = do an0 <- markAnnOpenP an src "{-# WARNING" an1 <- markEpAnnL an0 lapr_rest AnnOpenS ws' <- markAnnotated ws an2 <- markEpAnnL an1 lapr_rest AnnCloseS an3 <- markAnnCloseP an2 - return (L (SrcSpanAnn an3 l) (WarningTxt mb_cat (L la src) ws')) + return (L (SrcSpanAnn an3 l) (WarningTxt mb_cat src ws')) - exact (L (SrcSpanAnn an l) (DeprecatedTxt (L ls src) ws)) = do + exact (L (SrcSpanAnn an l) (DeprecatedTxt src ws)) = do an0 <- markAnnOpenP an src "{-# DEPRECATED" an1 <- markEpAnnL an0 lapr_rest AnnOpenS ws' <- markAnnotated ws an2 <- markEpAnnL an1 lapr_rest AnnCloseS an3 <- markAnnCloseP an2 - return (L (SrcSpanAnn an3 l) (DeprecatedTxt (L ls src) ws')) + return (L (SrcSpanAnn an3 l) (DeprecatedTxt src ws')) -- --------------------------------------------------------------------- @@ -2052,8 +2117,8 @@ instance ExactPrint (TyFamInstDecl GhcPs) where -- --------------------------------------------------------------------- instance ExactPrint (LocatedP OverlapMode) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI -- NOTE: NoOverlap is only used in the typechecker exact (L (SrcSpanAnn an l) (NoOverlap src)) = do @@ -2317,13 +2382,17 @@ instance ExactPrint (HsValBindsLR GhcPs GhcPs) where setAnnotationAnchor a _ _ = a exact (ValBinds sortKey binds sigs) = do - ds <- setLayoutBoth $ withSortKey sortKey - (prepareListAnnotationA (bagToList binds) - ++ prepareListAnnotationA sigs - ) + -- ds <- setLayoutBoth $ withSortKeyBind sortKey + -- (prepareListAnnotationA (bagToList binds) + -- ++ prepareListAnnotationA sigs + -- ) + -- let + -- binds' = listToBag $ undynamic ds + -- sigs' = undynamic ds + setLayoutBoth $ mapM markAnnotated $ hsDeclsValBinds (ValBinds sortKey binds sigs) let - binds' = listToBag $ undynamic ds - sigs' = undynamic ds + binds' = binds + sigs' = sigs return (ValBinds sortKey binds' sigs') exact (XValBindsLR _) = panic "XValBindsLR" @@ -2364,21 +2433,37 @@ instance ExactPrint HsIPName where prepareListAnnotationF :: (Monad m, Monoid w) => EpAnn [AddEpAnn] -> [LDataFamInstDecl GhcPs] -> [(RealSrcSpan,EP w m Dynamic)] -prepareListAnnotationF an ls = map (\b -> (realSrcSpan $ getLocA b, go b)) ls +prepareListAnnotationF an ls = map (\b -> (realSrcSpan "aa4" $ getLocA b, go b)) ls where go (L l a) = do d' <- markAnnotated (DataFamInstDeclWithContext an NotTopLevel a) return (toDyn (L l (dc_d d'))) -prepareListAnnotationA :: (Monad m, Monoid w, ExactPrint (LocatedAn an a)) - => [LocatedAn an a] -> [(RealSrcSpan,EP w m Dynamic)] -prepareListAnnotationA ls = map (\b -> (realSrcSpan $ getLocA b,go b)) ls +prepareListAnnotationA :: (Monad m, Monoid w, ExactPrint (LocatedAnS an a)) + => [LocatedAnS an a] -> [(RealSrcSpan,EP w m Dynamic)] +prepareListAnnotationA ls = map (\b -> (realSrcSpan "aa5" $ getLocA b,go b)) ls where go b = do b' <- markAnnotated b return (toDyn b') -withSortKey :: (Monad m, Monoid w) => AnnSortKey -> [(RealSrcSpan, EP w m Dynamic)] -> EP w m [Dynamic] +-- withSortKeyBind :: (Monad m, Monoid w) +-- => AnnSortKey [(DeclTag, Int)] -> [(RealSrcSpan, EP w m Dynamic)] -> EP w m [Dynamic] +-- withSortKeyBind annSortKey xs = do +-- debugM $ "withSortKey:annSortKey=" ++ showAst annSortKey +-- let ordered = case annSortKey of +-- NoAnnSortKey -> sortBy orderByFst xs +-- -- Just keys -> error $ "withSortKey: keys" ++ show keys +-- AnnSortKey keys -> orderByKey xs keys +-- -- `debug` ("withSortKey:" ++ +-- -- showPprUnsafe (map fst (sortBy (comparing (flip elemIndex keys . fst)) xs), +-- -- map fst xs, +-- -- keys) +-- -- ) +-- mapM snd ordered + +withSortKey :: (Monad m, Monoid w) + => AnnSortKey [RealSrcSpan] -> [(RealSrcSpan, EP w m Dynamic)] -> EP w m [Dynamic] withSortKey annSortKey xs = do debugM $ "withSortKey:annSortKey=" ++ showAst annSortKey let ordered = case annSortKey of @@ -2701,7 +2786,12 @@ instance ExactPrint (HsExpr GhcPs) where setAnnotationAnchor a@(HsPragE{}) _ _s = a exact (HsVar x n) = do - n' <- markAnnotated n + -- The parser inserts a placeholder value for a record pun rhs. This must be + -- filtered. + let pun_RDR = "pun-right-hand-side" + n' <- if (showPprUnsafe n /= pun_RDR) + then markAnnotated n + else return n return (HsVar x n') exact x@(HsUnboundVar an _) = do case an of @@ -2865,7 +2955,9 @@ instance ExactPrint (HsExpr GhcPs) where expr' <- markAnnotated expr an0 <- markEpAnnL an lidl AnnOpenC fields' <- markAnnotated fields + debugM $ "RecordUpd after fields" an1 <- markEpAnnL an0 lidl AnnCloseC + debugM $ "RecordUpd after AnnCLoseC" return (RecordUpd an1 expr' fields') exact (HsGetField an expr field) = do expr' <- markAnnotated expr @@ -3006,7 +3098,7 @@ exactMdo an (Just module_name) kw = markEpAnnLMS an lal_rest kw (Just n) markMaybeDodgyStmts :: (Monad m, Monoid w, ExactPrint (LocatedAn an a)) => EpAnn AnnList -> LocatedAn an a -> EP w m (EpAnn AnnList, LocatedAn an a) markMaybeDodgyStmts an stmts = - if isGoodSrcSpan (getLocA stmts) + if isGoodSrcSpan (getLocI stmts) then do r <- markAnnotatedWithLayout stmts return (an, r) @@ -3061,7 +3153,7 @@ instance ExactPrint (MatchGroup GhcPs (LocatedA (HsExpr GhcPs))) where setAnnotationAnchor a _ _ = a exact (MG x matches) = do -- TODO:AZ use SortKey, in MG ann. - matches' <- if isGoodSrcSpan (getLocA matches) + matches' <- if isGoodSrcSpan (getLocI matches) then markAnnotated matches else return matches return (MG x matches') @@ -3071,7 +3163,7 @@ instance ExactPrint (MatchGroup GhcPs (LocatedA (HsCmd GhcPs))) where setAnnotationAnchor a _ _ = a exact (MG x matches) = do -- TODO:AZ use SortKey, in MG ann. - matches' <- if isGoodSrcSpan (getLocA matches) + matches' <- if isGoodSrcSpan (getLocI matches) then markAnnotated matches else return matches return (MG x matches') @@ -3093,7 +3185,7 @@ instance (ExactPrint body) => ExactPrint (HsRecFields GhcPs body) where -- --------------------------------------------------------------------- instance (ExactPrint body) - => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (FieldOcc GhcPs)) body) where + => ExactPrint (HsFieldBind (LocatedAnS NoEpAnns (FieldOcc GhcPs)) body) where getAnnotationEntry x = fromAnn (hfbAnn x) setAnnotationAnchor (HsFieldBind an f arg isPun) anc cs = (HsFieldBind (setAnchorEpa an anc cs) f arg isPun) exact (HsFieldBind an f arg isPun) = do @@ -3101,9 +3193,9 @@ instance (ExactPrint body) f' <- markAnnotated f (an0, arg') <- if isPun then return (an, arg) else do - an0 <- markEpAnnL an lidl AnnEqual - arg' <- markAnnotated arg - return (an0, arg') + an0 <- markEpAnnL an lidl AnnEqual + arg' <- markAnnotated arg + return (an0, arg') return (HsFieldBind an0 f' arg' isPun) -- --------------------------------------------------------------------- @@ -3118,16 +3210,32 @@ instance (ExactPrint body) f' <- markAnnotated f (an0, arg') <- if isPun then return (an, arg) else do - an0 <- markEpAnnL an lidl AnnEqual - arg' <- markAnnotated arg - return (an0, arg') + an0 <- markEpAnnL an lidl AnnEqual + arg' <- markAnnotated arg + return (an0, arg') + return (HsFieldBind an0 f' arg' isPun) + +-- Odd that we need this one too. +instance (ExactPrint body) + => ExactPrint (HsFieldBind (LocatedAnS NoEpAnns (FieldLabelStrings GhcPs)) body) where + getAnnotationEntry x = fromAnn (hfbAnn x) + setAnnotationAnchor (HsFieldBind an f arg isPun) anc cs = (HsFieldBind (setAnchorEpa an anc cs) f arg isPun) + + 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 + arg' <- markAnnotated arg + return (an0, arg') return (HsFieldBind an0 f' arg' isPun) -- --------------------------------------------------------------------- -- instance ExactPrint (HsRecUpdField GhcPs q) where instance (ExactPrint (LocatedA body)) - => ExactPrint (HsFieldBind (LocatedAn NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) where + => ExactPrint (HsFieldBind (LocatedAnS NoEpAnns (AmbiguousFieldOcc GhcPs)) (LocatedA body)) where getAnnotationEntry x = fromAnn (hfbAnn x) setAnnotationAnchor (HsFieldBind an f arg isPun) anc cs = (HsFieldBind (setAnchorEpa an anc cs) f arg isPun) exact (HsFieldBind an f arg isPun) = do @@ -3135,7 +3243,7 @@ instance (ExactPrint (LocatedA body)) f' <- markAnnotated f an0 <- if isPun then return an else markEpAnnL an lidl AnnEqual - arg' <- if ((locA $ getLoc arg) == noSrcSpan ) + arg' <- if isPun then return arg else markAnnotated arg return (HsFieldBind an0 f' arg' isPun) @@ -4018,7 +4126,7 @@ instance ExactPrint (DerivStrategy GhcPs) where instance (ExactPrint a) => ExactPrint (LocatedC a) where getAnnotationEntry (L sann _) = fromAnn sann - setAnnotationAnchor = setAnchorAn + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn EpAnnNotUsed l) a) = do a' <- markAnnotated a @@ -4063,10 +4171,7 @@ instance ExactPrint (LocatedN RdrName) where getAnnotationEntry (L sann _) = fromAnn sann setAnnotationAnchor = setAnchorAn - exact x@(L (SrcSpanAnn EpAnnNotUsed l) n) = do - _ <- printUnicode (spanAsAnchor l) n - return x - exact (L (SrcSpanAnn (EpAnn anc ann cs) ll) n) = do + exact (L (EpAnnS anc ann cs) n) = do ann' <- case ann of NameAnn a o l c t -> do @@ -4108,7 +4213,7 @@ instance ExactPrint (LocatedN RdrName) where _anc' <- printUnicode anc n t' <- markTrailing t return (NameAnnTrailing t') - return (L (SrcSpanAnn (EpAnn anc ann' cs) ll) n) + return (L (EpAnnS anc ann' cs) n) locFromAdd :: AddEpAnn -> EpaLocation locFromAdd (AddEpAnn _ loc) = loc @@ -4117,12 +4222,16 @@ printUnicode :: (Monad m, Monoid w) => Anchor -> RdrName -> EP w m Anchor printUnicode anc n = do let str = case (showPprUnsafe n) of -- TODO: unicode support? - "forall" -> if spanLength (anchor anc) == 1 then "∀" else "forall" + -- "forall" -> if spanLength (anchor anc) == 1 then "∀" else "forall" + "forall" -> case anc of + EpaSpan (RealSrcSpan r _) -> if spanLength r == 1 then "∀" else "forall" + _ -> "forall" s -> s - loc <- printStringAtAAC NoCaptureComments (EpaDelta (SameLine 0) []) str + loc <- printStringAtAAC NoCaptureComments anc str case loc of - EpaSpan _ _ -> return anc - EpaDelta dp [] -> return anc { anchor_op = MovedAnchor dp } + EpaSpan _ -> return anc + -- EpaDelta dp [] -> return anc { anchor_op = MovedAnchor dp } + EpaDelta dp [] -> return $ EpaDelta dp [] EpaDelta _ _cs -> error "printUnicode should not capture comments" @@ -4132,12 +4241,15 @@ markName :: (Monad m, Monoid w) markName adorn open mname close = do let (kwo,kwc) = adornments adorn (AddEpAnn _ open') <- markKwC CaptureComments (AddEpAnn kwo open) + -- debugM $ "mname: " ++ showAst mname mname' <- case mname of Nothing -> return Nothing - Just (name, a) -> do - name' <- printStringAtAAC CaptureComments name (showPprUnsafe a) - return (Just (name',a)) + Just (loc, name) -> do + debugM $ "(loc,name): " ++ showAst (loc,name) + -- debugM $ "name:[" ++ (showPprUnsafe name) ++ "]" + loc' <- printStringAtAAC CaptureComments loc (showPprUnsafe name) + return (Just (loc',name)) (AddEpAnn _ close') <- markKwC CaptureComments (AddEpAnn kwc close) return (open', mname', close') @@ -4342,8 +4454,8 @@ instance (ExactPrint a) => ExactPrint (HsScaled GhcPs a) where -- --------------------------------------------------------------------- instance ExactPrint (LocatedP CType) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact x@(L (SrcSpanAnn EpAnnNotUsed _) ct) = withPpr ct >> return x exact (L (SrcSpanAnn an ll) @@ -4382,8 +4494,8 @@ instance ExactPrint (SourceText, RuleName) where -- --------------------------------------------------------------------- instance ExactPrint (LocatedL [LocatedA (IE GhcPs)]) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn an l) ies) = do debugM $ "LocatedL [LIE" @@ -4395,8 +4507,8 @@ instance ExactPrint (LocatedL [LocatedA (IE GhcPs)]) where instance (ExactPrint (Match GhcPs (LocatedA body))) => ExactPrint (LocatedL [LocatedA (Match GhcPs (LocatedA body))]) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L la a) = do let an = ann la debugM $ "LocatedL [LMatch" @@ -4409,8 +4521,8 @@ instance (ExactPrint (Match GhcPs (LocatedA body))) return (L (la { ann = an3}) a') instance ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr GhcPs)))]) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn an l) stmts) = do debugM $ "LocatedL [ExprLStmt" (an'', stmts') <- markAnnList True an $ do @@ -4426,8 +4538,8 @@ instance ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsExpr Gh -- instance ExactPrint (LocatedL [CmdLStmt GhcPs]) where instance ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd GhcPs)))]) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn ann l) es) = do debugM $ "LocatedL [CmdLStmt" an0 <- markLensMAA ann lal_open @@ -4436,16 +4548,16 @@ instance ExactPrint (LocatedL [LocatedA (StmtLR GhcPs GhcPs (LocatedA (HsCmd Ghc return (L (SrcSpanAnn an1 l) es') instance ExactPrint (LocatedL [LocatedA (ConDeclField GhcPs)]) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn an l) fs) = do debugM $ "LocatedL [LConDeclField" (an', fs') <- markAnnList True an (markAnnotated fs) return (L (SrcSpanAnn an' l) fs') instance ExactPrint (LocatedL (BF.BooleanFormula (LocatedN RdrName))) where - getAnnotationEntry = entryFromLocatedA - setAnnotationAnchor = setAnchorAn + getAnnotationEntry = entryFromLocatedI + setAnnotationAnchor = setAnchorAnI exact (L (SrcSpanAnn an l) bf) = do debugM $ "LocatedL [LBooleanFormula" (an', bf') <- markAnnList True an (markAnnotated bf) @@ -4568,9 +4680,9 @@ instance ExactPrint (Pat GhcPs) where setAnnotationAnchor (SigPat an a b) anc cs = (SigPat (setAnchorEpa an anc cs) a b) exact (WildPat w) = do - anchor <- getAnchorU - debugM $ "WildPat:anchor=" ++ show anchor - _ <- printStringAtRs anchor "_" + anc <- getAnchorU + debugM $ "WildPat:anc=" ++ show anc + _ <- printStringAtRs anc "_" return (WildPat w) exact (VarPat x n) = do -- The parser inserts a placeholder value for a record pun rhs. This must be @@ -4751,9 +4863,12 @@ exactConArgs (RecCon rpats) = do -- --------------------------------------------------------------------- -entryFromLocatedA :: LocatedAn ann a -> Entry +entryFromLocatedA :: LocatedAnS ann a -> Entry entryFromLocatedA (L la _) = fromAnn la +entryFromLocatedI :: LocatedAn ann a -> Entry +entryFromLocatedI (L la _) = fromAnn la + -- ===================================================================== -- Utility stuff -- --------------------------------------------------------------------- @@ -4783,8 +4898,8 @@ isGoodDeltaWithOffset dp colOffset = isGoodDelta (deltaPos l c) -- | Print a comment, using the current layout offset to convert the -- @DeltaPos@ to an absolute position. -printQueuedComment :: (Monad m, Monoid w) => RealSrcSpan -> Comment -> DeltaPos -> EP w m () -printQueuedComment _loc Comment{commentContents} dp = do +printQueuedComment :: (Monad m, Monoid w) => Comment -> DeltaPos -> EP w m () +printQueuedComment Comment{commentContents} dp = do p <- getPosP d <- getPriorEndD colOffset <- getLayoutOffsetP @@ -4850,6 +4965,13 @@ getPriorEndD = gets dPriorEndPosition getAnchorU :: (Monad m, Monoid w) => EP w m RealSrcSpan getAnchorU = gets uAnchorSpan +getAcceptSpan ::(Monad m, Monoid w) => EP w m Bool +getAcceptSpan = gets pAcceptSpan + +setAcceptSpan ::(Monad m, Monoid w) => Bool -> EP w m () +setAcceptSpan f = + modify (\s -> s { pAcceptSpan = f }) + setPriorEndD :: (Monad m, Monoid w) => Pos -> EP w m () setPriorEndD pe = do setPriorEndNoLayoutD pe diff --git a/utils/check-exact/Main.hs b/utils/check-exact/Main.hs index 74525dd5f9..84e913ad7e 100644 --- a/utils/check-exact/Main.hs +++ b/utils/check-exact/Main.hs @@ -36,8 +36,8 @@ import GHC.Data.FastString -- --------------------------------------------------------------------- _tt :: IO () -_tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/master/_build/stage1/lib/" --- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/ghc/_build/stage1/lib/" +-- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/master/_build/stage1/lib/" +_tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/ghc/_build/stage1/lib/" -- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/exactprint/_build/stage1/lib" -- _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/epw/_build/stage1/lib" @@ -61,7 +61,7 @@ _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/master/_b -- "../../testsuite/tests/ghc-api/exactprint/LocalDecls.hs" (Just changeLocalDecls) -- "../../testsuite/tests/ghc-api/exactprint/LocalDecls2.hs" (Just changeLocalDecls2) -- "../../testsuite/tests/ghc-api/exactprint/WhereIn3a.hs" (Just changeWhereIn3a) - -- "../../testsuite/tests/ghc-api/exactprint/WhereIn3b.hs" (Just changeWhereIn3b) + "../../testsuite/tests/ghc-api/exactprint/WhereIn3b.hs" (Just changeWhereIn3b) -- "../../testsuite/tests/ghc-api/exactprint/AddLocalDecl1.hs" (Just addLocaLDecl1) -- "../../testsuite/tests/ghc-api/exactprint/AddLocalDecl2.hs" (Just addLocaLDecl2) -- "../../testsuite/tests/ghc-api/exactprint/AddLocalDecl3.hs" (Just addLocaLDecl3) @@ -205,8 +205,12 @@ _tt = testOneFile changers "/home/alanz/mysrc/git.haskell.org/worktree/master/_b -- "../../testsuite/tests/printer/Test16279.hs" Nothing -- "../../testsuite/tests/printer/HsDocTy.hs" Nothing -- "../../testsuite/tests/printer/Test22765.hs" Nothing - "../../testsuite/tests/printer/Test22771.hs" Nothing - + -- "../../testsuite/tests/printer/Test22771.hs" Nothing + -- "../../testsuite/tests/hiefile/should_compile/hie003.hs" Nothing + -- "../../testsuite/tests/th/TH_dataD1.hs" Nothing + -- "../../testsuite/tests/printer/Test20297.hs" Nothing + -- "../../testsuite/tests/overloadedlists/should_fail/overloadedlistsfail01.hs" Nothing + -- "../../testsuite/tests/typecheck/should_fail/tcfail181.hs" Nothing -- cloneT does not need a test, function can be retired @@ -412,7 +416,8 @@ changeRename2 _libdir parsed = return (rename "joe" [((2,1),(2,5))] parsed) rename :: (Data a, ExactPrint a) => String -> [(Pos, Pos)] -> a -> a rename newNameStr spans' a - = everywhere (mkT replaceRdr) (makeDeltaAst a) + -- = everywhere (mkT replaceRdr) (makeDeltaAst a) + = everywhere (mkT replaceRdr) a where newName = mkRdrUnqual (mkVarOcc newNameStr) @@ -421,18 +426,19 @@ rename newNameStr spans' a replaceRdr :: LocatedN RdrName -> LocatedN RdrName replaceRdr (L ln _) - | cond (locA ln) = L ln newName + | cond (locN ln) = L ln newName replaceRdr x = x -- --------------------------------------------------------------------- changeWhereIn4 :: Changer changeWhereIn4 _libdir parsed - = return (everywhere (mkT replace) (makeDeltaAst parsed)) + -- = return (everywhere (mkT replace) (makeDeltaAst parsed)) + = return (everywhere (mkT replace) parsed) where replace :: LocatedN RdrName -> LocatedN RdrName replace (L ln _n) - | ss2range (locA ln) == ((12,16),(12,17)) = L ln (mkRdrUnqual (mkVarOcc "p_2")) + | ss2range (locN ln) == ((12,16),(12,17)) = L ln (mkRdrUnqual (mkVarOcc "p_2")) replace x = x -- --------------------------------------------------------------------- @@ -447,8 +453,8 @@ changeLetIn1 _libdir parsed let (HsValBinds x (ValBinds xv bagDecls sigs)) = localDecls [l2,_l1] = map wrapDecl $ bagToList bagDecls bagDecls' = listToBag $ concatMap decl2Bind [l2] - (L (SrcSpanAnn _ le) e) = expr - a = (SrcSpanAnn (EpAnn (Anchor (realSrcSpan le) (MovedAnchor (SameLine 1))) mempty emptyComments) le) + (L (EpAnnS _ _ _) e) = expr + a = (EpAnnS (EpaDelta (SameLine 1) []) mempty emptyComments) expr' = L a e tkIn' = L (TokenLoc (EpaDelta (DifferentLine 1 0) [])) HsTok in (HsLet an tkLet @@ -464,10 +470,12 @@ changeAddDecl1 libdir top = do Right decl <- withDynFlags libdir (\df -> parseDecl df "<interactive>" "nn = n2") let decl' = setEntryDP decl (DifferentLine 2 0) - let (p',_,_) = runTransform doAddDecl + let (p',_,_w) = runTransform doAddDecl doAddDecl = everywhereM (mkM replaceTopLevelDecls) top replaceTopLevelDecls :: ParsedSource -> Transform ParsedSource replaceTopLevelDecls m = insertAtStart m decl' + + debugM $ "log:[\n" ++ intercalate "\n" _w ++ "]log end\n" return p' -- --------------------------------------------------------------------- @@ -475,10 +483,12 @@ changeAddDecl1 libdir top = do changeAddDecl2 :: Changer changeAddDecl2 libdir top = do Right decl <- withDynFlags libdir (\df -> parseDecl df "<interactive>" "nn = n2") - let decl' = setEntryDP (makeDeltaAst decl) (DifferentLine 2 0) + -- let decl' = setEntryDP (makeDeltaAst decl) (DifferentLine 2 0) + let decl' = setEntryDP decl (DifferentLine 2 0) let (p',_,_) = runTransform doAddDecl - doAddDecl = everywhereM (mkM replaceTopLevelDecls) (makeDeltaAst top) + -- doAddDecl = everywhereM (mkM replaceTopLevelDecls) (makeDeltaAst top) + doAddDecl = everywhereM (mkM replaceTopLevelDecls) top replaceTopLevelDecls :: ParsedSource -> Transform ParsedSource replaceTopLevelDecls m = insertAtEnd m decl' return p' @@ -520,9 +530,9 @@ changeLocalDecls libdir (L l p) = do let oldBinds = concatMap decl2Bind oldDecls' (os:oldSigs) = concatMap decl2Sig oldDecls' os' = setEntryDP os (DifferentLine 2 0) - let sortKey = captureOrder decls - let (EpAnn anc (AnnList (Just (Anchor anc2 _)) a b c dd) cs) = van - let van' = (EpAnn anc (AnnList (Just (Anchor anc2 (MovedAnchor (DifferentLine 1 4)))) a b c dd) cs) + let sortKey = captureOrderBinds decls + let (EpAnn anc (AnnList (Just _) a b c dd) cs) = van + let van' = (EpAnn anc (AnnList (Just (EpaDelta (DifferentLine 1 4) [])) a b c dd) cs) let binds' = (HsValBinds van' (ValBinds sortKey (listToBag $ decl':oldBinds) (sig':os':oldSigs))) @@ -545,15 +555,14 @@ changeLocalDecls2 libdir (L l p) = do replaceLocalBinds :: LMatch GhcPs (LHsExpr GhcPs) -> Transform (LMatch GhcPs (LHsExpr GhcPs)) replaceLocalBinds (L lm (Match ma mln pats (GRHSs _ rhs EmptyLocalBinds{}))) = do - newSpan <- uniqueSrcSpanT - let anc = (Anchor (rs newSpan) (MovedAnchor (DifferentLine 1 2))) - let anc2 = (Anchor (rs newSpan) (MovedAnchor (DifferentLine 1 4))) + let anc = (EpaDelta (DifferentLine 1 2) []) + let anc2 = (EpaDelta (DifferentLine 1 4) []) let an = EpAnn anc (AnnList (Just anc2) Nothing Nothing [AddEpAnn AnnWhere (EpaDelta (SameLine 0) [])] []) emptyComments let decls = [s,d] - let sortKey = captureOrder decls + let sortKey = captureOrderBinds decls let binds = (HsValBinds an (ValBinds sortKey (listToBag $ [decl']) [sig'])) return (L lm (Match ma mln pats (GRHSs emptyComments rhs binds))) @@ -582,8 +591,9 @@ changeWhereIn3b _libdir (L l p) = do de1' = setEntryDP de1 (DifferentLine 2 0) d2' = setEntryDP d2 (DifferentLine 2 0) decls' = d2':de1':de0':tdecls + -- decls' = decls debugM $ unlines w - debugM $ "changeWhereIn3b:de1':" ++ showAst de1' + -- debugM $ "changeWhereIn3b:de1':" ++ showAst de1' let p2 = p { hsmodDecls = decls'} return (L l p2) @@ -594,12 +604,14 @@ addLocaLDecl1 libdir top = do Right (L ld (ValD _ decl)) <- withDynFlags libdir (\df -> parseDecl df "decl" "nn = 2") let decl' = setEntryDP (L ld decl) (DifferentLine 1 5) doAddLocal = do - let lp = makeDeltaAst top + -- let lp = makeDeltaAst top + let lp = top (de1:d2:d3:_) <- hsDecls lp (de1'',d2') <- balanceComments de1 d2 (de1',_) <- modifyValD (getLocA de1'') de1'' $ \_m d -> do return ((wrapDecl decl' : d),Nothing) replaceDecls lp [de1', d2', d3] + -- `debug` ("addLocaLDecl1: (de1'', de1):" ++ showAst (de1'', de1)) (lp',_,w) <- runTransformT doAddLocal debugM $ "addLocaLDecl1:" ++ intercalate "\n" w @@ -633,7 +645,8 @@ addLocaLDecl3 libdir top = do Right newDecl <- withDynFlags libdir (\df -> parseDecl df "decl" "nn = 2") let doAddLocal = do - let lp = makeDeltaAst top + -- let lp = makeDeltaAst top + let lp = top (de1:d2:_) <- hsDecls lp (de1'',d2') <- balanceComments de1 d2 @@ -718,7 +731,8 @@ addLocaLDecl6 libdir lp = do rmDecl1 :: Changer rmDecl1 _libdir top = do let doRmDecl = do - let lp = makeDeltaAst top + -- let lp = makeDeltaAst top + let lp = top tlDecs0 <- hsDecls lp tlDecs <- balanceCommentsList $ captureLineSpacing tlDecs0 let (de1:_s1:_d2:d3:ds) = tlDecs @@ -798,7 +812,8 @@ rmDecl5 _libdir lp = do let go :: HsExpr GhcPs -> Transform (HsExpr GhcPs) go (HsLet a tkLet lb tkIn expr) = do - decs <- hsDeclsValBinds lb + let decs = hsDeclsLocalBinds lb + -- decs <- hsDeclsValBinds lb let hdecs : _ = decs let dec = last decs _ <- transferEntryDP hdecs dec @@ -838,7 +853,8 @@ rmDecl7 :: Changer rmDecl7 _libdir top = do let doRmDecl = do - let lp = makeDeltaAst top + -- let lp = makeDeltaAst top + let lp = top tlDecs <- hsDecls lp [s1,de1,d2,d3] <- balanceCommentsList tlDecs @@ -894,11 +910,11 @@ addHiding1 _libdir (L l p) = do l2 <- uniqueSrcSpanT let [L li imp1,imp2] = hsmodImports p - n1 = L (noAnnSrcSpanDP0 l1) (mkVarUnqual (mkFastString "n1")) - n2 = L (noAnnSrcSpanDP0 l2) (mkVarUnqual (mkFastString "n2")) - v1 = L (addComma $ noAnnSrcSpanDP0 l1) (IEVar noExtField (L (noAnnSrcSpanDP0 l1) (IEName noExtField n1))) - v2 = L ( noAnnSrcSpanDP0 l2) (IEVar noExtField (L (noAnnSrcSpanDP0 l2) (IEName noExtField n2))) - impHiding = L (SrcSpanAnn (EpAnn (Anchor (realSrcSpan l0) m0) + n1 = L (noAnnSrcSpanDP0 l1) (mkVarUnqual (mkFastString "n1")) :: LIdP GhcPs + n2 = L (noAnnSrcSpanDP0 l2) (mkVarUnqual (mkFastString "n2")) :: LIdP GhcPs + v1 = L (addComma $ noAnnSrcSpanDP0 l1) (IEVar noExtField (L (noAnnSrcSpanDP0 l1) (IEName noExtField n1))) :: LIE GhcPs + v2 = L ( noAnnSrcSpanDP0 l2) (IEVar noExtField (L (noAnnSrcSpanDP0 l2) (IEName noExtField n2))) :: LIE GhcPs + impHiding = L (SrcSpanAnn (EpAnn (EpaDelta m0 []) (AnnList Nothing (Just (AddEpAnn AnnOpenP d1)) (Just (AddEpAnn AnnCloseP d0)) @@ -906,7 +922,8 @@ addHiding1 _libdir (L l p) = do []) emptyComments) l0) [v1,v2] imp1' = imp1 { ideclImportList = Just (EverythingBut,impHiding)} - p' = p { hsmodImports = [L li imp1',imp2]} + imp2' = setEntryDP imp2 (DifferentLine 2 0) + p' = p { hsmodImports = [L li imp1',imp2']} return (L l p') let (lp',_,_w) = runTransform doTransform @@ -918,23 +935,24 @@ addHiding1 _libdir (L l p) = do addHiding2 :: Changer addHiding2 _libdir top = do let doTransform = do - let (L l p) = makeDeltaAst top + -- let (L l p) = makeDeltaAst top + let (L l p) = top l1 <- uniqueSrcSpanT l2 <- uniqueSrcSpanT let [L li imp1] = hsmodImports p Just (_,L lh ns) = ideclImportList imp1 - lh' = (SrcSpanAnn (EpAnn (Anchor (realSrcSpan (locA lh)) m0) + lh' = (SrcSpanAnn (EpAnn (EpaDelta m0 []) (AnnList Nothing (Just (AddEpAnn AnnOpenP d1)) (Just (AddEpAnn AnnCloseP d0)) [(AddEpAnn AnnHiding d1)] []) - emptyComments) (locA lh)) - n1 = L (noAnnSrcSpanDP0 l1) (mkVarUnqual (mkFastString "n1")) - n2 = L (noAnnSrcSpanDP0 l2) (mkVarUnqual (mkFastString "n2")) - v1 = L (addComma $ noAnnSrcSpanDP0 l1) (IEVar noExtField (L (noAnnSrcSpanDP0 l1) (IEName noExtField n1))) - v2 = L ( noAnnSrcSpanDP0 l2) (IEVar noExtField (L (noAnnSrcSpanDP0 l2) (IEName noExtField n2))) + emptyComments) (locI lh)) + n1 = L (noAnnSrcSpanDP0 l1) (mkVarUnqual (mkFastString "n1")) :: LIdP GhcPs + n2 = L (noAnnSrcSpanDP0 l2) (mkVarUnqual (mkFastString "n2")) :: LIdP GhcPs + v1 = L (addComma $ noAnnSrcSpanDP0 l1) (IEVar noExtField (L (noAnnSrcSpanDP0 l1) (IEName noExtField n1))) :: LIE GhcPs + v2 = L ( noAnnSrcSpanDP0 l2) (IEVar noExtField (L (noAnnSrcSpanDP0 l2) (IEName noExtField n2))) :: LIE GhcPs L ln n = last ns n' = L (addComma ln) n imp1' = imp1 { ideclImportList = Just (EverythingBut, L lh' (init ns ++ [n',v1,v2]))} diff --git a/utils/check-exact/Parsers.hs b/utils/check-exact/Parsers.hs index 2eadcacab9..54e33b37cf 100644 --- a/utils/check-exact/Parsers.hs +++ b/utils/check-exact/Parsers.hs @@ -284,7 +284,7 @@ fixModuleTrailingComments (GHC.L l p) = GHC.L l p' rebalance cs = cs' where cs' = case GHC.hsmodLayout $ GHC.hsmodExt p of - GHC.ExplicitBraces _ (GHC.L (GHC.TokenLoc (GHC.EpaSpan ss _)) _) -> + GHC.ExplicitBraces _ (GHC.L (GHC.TokenLoc (GHC.EpaSpan (GHC.RealSrcSpan ss _))) _) -> let pc = GHC.priorComments cs fc = GHC.getFollowingComments cs diff --git a/utils/check-exact/Preprocess.hs b/utils/check-exact/Preprocess.hs index 55d84763f5..efd6e28722 100644 --- a/utils/check-exact/Preprocess.hs +++ b/utils/check-exact/Preprocess.hs @@ -75,14 +75,14 @@ checkLine line s size = length pragma mSrcLoc = mkSrcLoc (mkFastString "LINE") ss = mkSrcSpan (mSrcLoc line 1) (mSrcLoc line (size+1)) - in (res, Just $ mkLEpaComment pragma (GHC.spanAsAnchor ss) (GHC.realSrcSpan ss)) + in (res, Just $ mkLEpaComment pragma (GHC.spanAsAnchor ss) (GHC.realSrcSpan "checkLine" ss)) -- Deal with shebang/cpp directives too -- x | "#" `isPrefixOf` s = ("",Just $ Comment ((line, 1), (line, length s)) s) | "#!" `isPrefixOf` s = let mSrcLoc = mkSrcLoc (mkFastString "SHEBANG") ss = mkSrcSpan (mSrcLoc line 1) (mSrcLoc line (length s)) in - ("",Just $ mkLEpaComment s (GHC.spanAsAnchor ss) (GHC.realSrcSpan ss)) + ("",Just $ mkLEpaComment s (GHC.spanAsAnchor ss) (GHC.realSrcSpan "checkLine2" ss)) | otherwise = (s, Nothing) getPragma :: String -> (String, String) @@ -224,7 +224,7 @@ getPreprocessedSrcDirectPrim cppOptions src_fn = do txt <- GHC.liftIO $ readFileGhc hspp_fn return (txt, buf, dflags') -showErrorMessages :: GHC.Messages GHC.DriverMessage -> String +showErrorMessages :: (GHC.Diagnostic a) => GHC.Messages a -> String showErrorMessages msgs = GHC.renderWithContext GHC.defaultSDocContext $ GHC.vcat @@ -275,7 +275,7 @@ makeBufSpan :: GHC.SrcSpan -> GHC.PsSpan makeBufSpan ss = pspan where bl = GHC.BufPos 0 - pspan = GHC.PsSpan (GHC.realSrcSpan ss) (GHC.BufSpan bl bl) + pspan = GHC.PsSpan (GHC.realSrcSpan "makeBufSpan" ss) (GHC.BufSpan bl bl) -- --------------------------------------------------------------------- diff --git a/utils/check-exact/Transform.hs b/utils/check-exact/Transform.hs index 45f3612a76..a2faefe81e 100644 --- a/utils/check-exact/Transform.hs +++ b/utils/check-exact/Transform.hs @@ -46,8 +46,8 @@ module Transform , WithWhere(..) -- ** New gen functions - , noAnnSrcSpanDP - , noAnnSrcSpanDP0 + , noAnnSrcSpanDP, noAnnSrcSpanDPI + , noAnnSrcSpanDP0, noAnnSrcSpanDP0I , noAnnSrcSpanDP1 , noAnnSrcSpanDPn , d0, d1, dn @@ -68,8 +68,8 @@ module Transform , anchorEof -- ** Managing lists, pure functions - , captureOrder - , captureLineSpacing + , captureOrder, captureOrderBinds + , captureLineSpacing, captureLineSpacingI , captureMatchLineSpacing , captureTypeSigSpacing @@ -79,7 +79,7 @@ module Transform -- * Pure functions , setEntryDP , getEntryDP - , transferEntryDP + , transferEntryDP, transferEntryDPI , transferEntryDP' , wrapSig, wrapDecl , decl2Sig, decl2Bind @@ -95,6 +95,7 @@ import qualified Control.Monad.Fail as Fail import GHC hiding (parseModule, parsedSource) import GHC.Data.Bag import GHC.Data.FastString +import qualified GHC.Data.Strict as Strict import Data.Data import Data.List ( sortBy ) @@ -177,9 +178,28 @@ srcSpanStartLine' _ = 0 -- |If a list has been re-ordered or had items added, capture the new order in -- the appropriate 'AnnSortKey' attached to the 'Annotation' for the list. -captureOrder :: [LocatedA b] -> AnnSortKey +captureOrder :: [LocatedA b] -> AnnSortKey [RealSrcSpan] captureOrder ls = AnnSortKey $ map (rs . getLocA) ls +captureOrderBinds :: [LHsDecl GhcPs] -> AnnSortKey [DeclTag] +captureOrderBinds ls = AnnSortKey $ map go ls + where + go (L _ (TyClD _ _)) = TyClDTag + go (L _ (InstD _ _)) = InstDTag + go (L _ (DerivD _ _)) = DerivDTag + go (L _ (ValD _ _)) = ValDTag + go (L _ (SigD _ _)) = SigDTag + go (L _ (KindSigD _ _)) = KindSigDTag + go (L _ (DefD _ _)) = DefDTag + go (L _ (ForD _ _)) = ForDTag + go (L _ (WarningD _ _)) = WarningDTag + go (L _ (AnnD _ _)) = AnnDTag + go (L _ (RuleD _ _)) = RuleDTag + go (L _ (SpliceD _ _)) = SpliceDTag + go (L _ (DocD _ _)) = DocDTag + go (L _ (RoleAnnotD _ _)) = RoleAnnotDTag + go (L _ (XHsDecl _)) = error "captureOrderBinds" + -- --------------------------------------------------------------------- captureMatchLineSpacing :: LHsDecl GhcPs -> LHsDecl GhcPs @@ -190,8 +210,17 @@ captureMatchLineSpacing (L l (ValD x (FunBind a b (MG c (L d ms ))))) ms' = captureLineSpacing ms captureMatchLineSpacing d = d -captureLineSpacing :: Default t +captureLineSpacingI :: Default t => [LocatedAn t e] -> [LocatedAn t e] +captureLineSpacingI [] = [] +captureLineSpacingI [d] = [d] +captureLineSpacingI (de1:d2:ds) = de1:captureLineSpacingI (d2':ds) + where + (l1,_) = ss2pos $ rs $ getLocI de1 + (l2,_) = ss2pos $ rs $ getLocI d2 + d2' = setEntryDPI d2 (deltaPos (l2-l1) 0) + +captureLineSpacing :: [LocatedA e] -> [LocatedA e] captureLineSpacing [] = [] captureLineSpacing [d] = [d] captureLineSpacing (de1:d2:ds) = de1:captureLineSpacing (d2':ds) @@ -210,30 +239,31 @@ captureTypeSigSpacing (L l (SigD x (TypeSig (EpAnn anc (AnnSig dc rs') cs) ns (H -- AnnDColon, and to the start of the ty AddEpAnn kw dca = dc rd = case last ns of - L (SrcSpanAnn EpAnnNotUsed ll) _ -> realSrcSpan ll - L (SrcSpanAnn (EpAnn anc' _ _) _) _ -> anchor anc' -- TODO MovedAnchor? + L (EpAnnS anc' _ _) _ -> anchor anc' -- TODO MovedAnchor? dc' = case dca of - EpaSpan r _ -> AddEpAnn kw (EpaDelta (ss2delta (ss2posEnd rd) r) []) - EpaDelta _ _ -> AddEpAnn kw dca + EpaSpan (RealSrcSpan r _) -> AddEpAnn kw (EpaDelta (ss2delta (ss2posEnd rd) r) []) + _ -> AddEpAnn kw dca -- --------------------------------- ty' :: LHsSigType GhcPs ty' = case ty of - (L (SrcSpanAnn EpAnnNotUsed ll) b) - -> let - op = case dca of - EpaSpan r _ -> MovedAnchor (ss2delta (ss2posEnd r) (realSrcSpan ll)) - EpaDelta _ _ -> MovedAnchor (SameLine 1) - in (L (SrcSpanAnn (EpAnn (Anchor (realSrcSpan ll) op) mempty emptyComments) ll) b) - (L (SrcSpanAnn (EpAnn (Anchor r op) a c) ll) b) + -- (L (EpAnnS (Anchor r op) a c) b) + -- -> let + -- op' = case op of + -- MovedAnchor _ -> op + -- _ -> case dca of + -- EpaSpan dcr -> MovedAnchor (ss2delta (ss2posEnd dcr) r) + -- EpaDelta _ _ -> MovedAnchor (SameLine 1) + -- in (L (EpAnnS (Anchor r op') a c) b) + (L (EpAnnS anc0 a c) b) -> let - op' = case op of - MovedAnchor _ -> op + anc' = case anc0 of + EpaDelta _ _ -> anc0 _ -> case dca of - EpaSpan dcr _ -> MovedAnchor (ss2delta (ss2posEnd dcr) r) - EpaDelta _ _ -> MovedAnchor (SameLine 1) - in (L (SrcSpanAnn (EpAnn (Anchor r op') a c) ll) b) + EpaSpan _ -> error "todo" + EpaDelta _ _ -> EpaDelta (SameLine 1) [] + in (L (EpAnnS anc' a c) b) captureTypeSigSpacing s = s @@ -255,15 +285,15 @@ decl2Sig _ = [] -- --------------------------------------------------------------------- --- |Convert a 'LSig' into a 'LHsDecl' -wrapSig :: LSig GhcPs -> LHsDecl GhcPs -wrapSig (L l s) = L l (SigD NoExtField s) +-- -- |Convert a 'LSig' into a 'LHsDecl' +-- wrapSig :: LSig GhcPs -> LHsDecl GhcPs +-- wrapSig (L l s) = L l (SigD NoExtField s) -- --------------------------------------------------------------------- --- |Convert a 'LHsBind' into a 'LHsDecl' -wrapDecl :: LHsBind GhcPs -> LHsDecl GhcPs -wrapDecl (L l s) = L l (ValD NoExtField s) +-- -- |Convert a 'LHsBind' into a 'LHsDecl' +-- wrapDecl :: LHsBind GhcPs -> LHsDecl GhcPs +-- wrapDecl (L l s) = L l (ValD NoExtField s) -- --------------------------------------------------------------------- @@ -282,18 +312,59 @@ setEntryDPDecl d dp = setEntryDP d dp -- |Set the true entry 'DeltaPos' from the annotation for a given AST -- element. This is the 'DeltaPos' ignoring any comments. -setEntryDP :: Default t => LocatedAn t a -> DeltaPos -> LocatedAn t a -setEntryDP (L (SrcSpanAnn EpAnnNotUsed l) a) dp +setEntryDP :: LocatedAnS t a -> DeltaPos -> LocatedAnS t a +setEntryDP (L (EpAnnS _ an (EpaComments [])) a) dp + = L (EpAnnS (EpaDelta dp []) an (EpaComments [])) a +setEntryDP (L (EpAnnS (EpaDelta d _) an cs) a) dp + = L (EpAnnS (EpaDelta d' []) an cs') a + where + (d',cs') = case cs of + EpaComments (h:t) -> + let + (dp0,c') = go h + in + (dp0, EpaComments (c':t)) + EpaCommentsBalanced (h:t) ts -> + let + (dp0,c') = go h + in + (dp0, EpaCommentsBalanced (c':t) ts) + _ -> (dp, cs) + go (L (EpaDelta ma c0) c) = (d, L (EpaDelta ma c0) c) + go (L (EpaSpan _) c) = (d, L (EpaDelta dp []) c) +setEntryDP (L (EpAnnS (EpaSpan (RealSrcSpan r _)) an cs) a) dp + = case sortEpaComments (priorComments cs) of + [] -> L (EpAnnS (EpaDelta dp []) an cs) a + (L ca c:cs') -> + L (EpAnnS (EpaDelta edp []) an cs'') a + where + cs'' = setPriorComments cs (L (EpaDelta dp []) c:cs') + lc = head $ reverse $ (L ca c:cs') + -- delta = tweakDelta $ ss2delta (ss2pos $ anchor $ getLoc lc) r + delta = case getLoc lc of + EpaSpan (RealSrcSpan rr _) -> tweakDelta $ ss2delta (ss2pos rr) r + _ -> DifferentLine 1 0 + line = getDeltaLine delta + col = deltaColumn delta + edp' = if line == 0 then SameLine col + else DifferentLine line col + edp = edp' `debug` ("setEntryDP :" ++ showGhc (edp', (getLoc lc), r)) + + +-- |Set the true entry 'DeltaPos' from the annotation for a given AST +-- element. This is the 'DeltaPos' ignoring any comments. +setEntryDPI :: Default t => LocatedAn t a -> DeltaPos -> LocatedAn t a +setEntryDPI (L (SrcSpanAnn EpAnnNotUsed l) a) dp = L (SrcSpanAnn - (EpAnn (Anchor (realSrcSpan l) (MovedAnchor dp)) def emptyComments) + (EpAnn (EpaDelta dp []) def emptyComments) l) a -setEntryDP (L (SrcSpanAnn (EpAnn (Anchor r _) an (EpaComments [])) l) a) dp +setEntryDPI (L (SrcSpanAnn (EpAnn _ an (EpaComments [])) l) a) dp = L (SrcSpanAnn - (EpAnn (Anchor r (MovedAnchor dp)) an (EpaComments [])) + (EpAnn (EpaDelta dp []) an (EpaComments [])) l) a -setEntryDP (L (SrcSpanAnn (EpAnn (Anchor r (MovedAnchor d)) an cs) l) a) dp +setEntryDPI (L (SrcSpanAnn (EpAnn (EpaDelta d _) an cs) l) a) dp = L (SrcSpanAnn - (EpAnn (Anchor r (MovedAnchor d')) an cs') + (EpAnn (EpaDelta d' []) an cs') l) a where (d',cs') = case cs of @@ -308,65 +379,72 @@ setEntryDP (L (SrcSpanAnn (EpAnn (Anchor r (MovedAnchor d)) an cs) l) a) dp in (dp0, EpaCommentsBalanced (c':t) ts) _ -> (dp, cs) - go (L (Anchor rr (MovedAnchor ma)) c) = (d, L (Anchor rr (MovedAnchor ma)) c) - go (L (Anchor rr _) c) = (d, L (Anchor rr (MovedAnchor dp)) c) -setEntryDP (L (SrcSpanAnn (EpAnn (Anchor r _) an cs) l) a) dp + go (L (EpaDelta ma c0) c) = (d, L (EpaDelta ma c0) c) + go (L (EpaSpan _) c) = (d, L (EpaDelta dp []) c) +setEntryDPI (L (SrcSpanAnn (EpAnn (EpaSpan (RealSrcSpan r _)) an cs) l) a) dp = case sortEpaComments (priorComments cs) of [] -> L (SrcSpanAnn - (EpAnn (Anchor r (MovedAnchor dp)) an cs) + (EpAnn (EpaDelta dp []) an cs) l) a (L ca c:cs') -> L (SrcSpanAnn - (EpAnn (Anchor r (MovedAnchor edp)) an cs'') + (EpAnn (EpaDelta edp []) an cs'') l) a where - cs'' = setPriorComments cs (L (Anchor (anchor ca) (MovedAnchor dp)) c:cs') - lc = last $ (L ca c:cs') - delta = tweakDelta $ ss2delta (ss2pos $ anchor $ getLoc lc) r + cs'' = setPriorComments cs (L (EpaDelta dp []) c:cs') + lc = head $ reverse $ (L ca c:cs') + -- delta = tweakDelta $ ss2delta (ss2pos $ anchor $ getLoc lc) r + delta = case getLoc lc of + EpaSpan (RealSrcSpan rr _) -> tweakDelta $ ss2delta (ss2pos rr) r + EpaSpan _ -> tweakDelta (SameLine 0) + EpaDelta dp _ -> tweakDelta dp line = getDeltaLine delta col = deltaColumn delta edp' = if line == 0 then SameLine col else DifferentLine line col - edp = edp' `debug` ("setEntryDP :" ++ showGhc (edp', (ss2pos $ anchor $ getLoc lc), r)) - + edp = edp' `debug` ("setEntryDPI :" ++ showGhc (edp', (getLoc lc), r)) -- --------------------------------------------------------------------- getEntryDP :: LocatedAn t a -> DeltaPos -getEntryDP (L (SrcSpanAnn (EpAnn (Anchor _ (MovedAnchor dp)) _ _) _) _) = dp +getEntryDP (L (SrcSpanAnn (EpAnn (EpaDelta dp []) _ _) _) _) = dp getEntryDP _ = SameLine 1 -- --------------------------------------------------------------------- addEpaLocationDelta :: LayoutStartCol -> RealSrcSpan -> EpaLocation -> EpaLocation addEpaLocationDelta _off _anc (EpaDelta d cs) = EpaDelta d cs -addEpaLocationDelta off anc (EpaSpan r _) +addEpaLocationDelta off anc (EpaSpan (RealSrcSpan r _)) = EpaDelta (adjustDeltaForOffset off (ss2deltaEnd anc r)) [] +addEpaLocationDelta _off _anc loc = loc -- Set the entry DP for an element coming after an existing keyword annotation setEntryDPFromAnchor :: LayoutStartCol -> EpaLocation -> LocatedA t -> LocatedA t -setEntryDPFromAnchor _off (EpaDelta _ _) (L la a) = L la a -setEntryDPFromAnchor off (EpaSpan anc _) ll@(L la _) = setEntryDP ll dp' +setEntryDPFromAnchor off (EpaSpan (RealSrcSpan anc _)) ll@(L la _) = setEntryDP ll dp' where - r = case la of - (SrcSpanAnn EpAnnNotUsed l) -> realSrcSpan l - (SrcSpanAnn (EpAnn (Anchor r' _) _ _) _) -> r' - dp' = adjustDeltaForOffset off (ss2deltaEnd anc r) + -- r = case la of + -- (EpAnnS (Anchor r' _) _ _) -> r' + -- dp' = adjustDeltaForOffset off (ss2deltaEnd anc r) + dp' = case la of + (EpAnnS (EpaSpan (RealSrcSpan r' _)) _ _) -> adjustDeltaForOffset off (ss2deltaEnd anc r') + (EpAnnS (EpaSpan _) _ _) -> adjustDeltaForOffset off (SameLine 0) + (EpAnnS (EpaDelta dp _) _ _) -> adjustDeltaForOffset off dp +setEntryDPFromAnchor _off _ (L la a) = L la a -- --------------------------------------------------------------------- -- |Take the annEntryDelta associated with the first item and associate it with the second. -- Also transfer any comments occuring before it. -transferEntryDP :: (Monad m, Monoid t2, Typeable t1, Typeable t2) +transferEntryDPI :: (Monad m, Monoid t2, Typeable t1, Typeable t2) => LocatedAn t1 a -> LocatedAn t2 b -> TransformT m (LocatedAn t2 b) -transferEntryDP (L (SrcSpanAnn EpAnnNotUsed l1) _) (L (SrcSpanAnn EpAnnNotUsed _) b) = do +transferEntryDPI (L (SrcSpanAnn EpAnnNotUsed l1) _) (L (SrcSpanAnn EpAnnNotUsed _) b) = do logTr $ "transferEntryDP': EpAnnNotUsed,EpAnnNotUsed" return (L (SrcSpanAnn EpAnnNotUsed l1) b) -transferEntryDP (L (SrcSpanAnn (EpAnn anc _an cs) _l1) _) (L (SrcSpanAnn EpAnnNotUsed l2) b) = do +transferEntryDPI (L (SrcSpanAnn (EpAnn anc _an cs) _l1) _) (L (SrcSpanAnn EpAnnNotUsed l2) b) = do logTr $ "transferEntryDP': EpAnn,EpAnnNotUsed" return (L (SrcSpanAnn (EpAnn anc mempty cs) l2) b) -transferEntryDP (L (SrcSpanAnn (EpAnn anc1 an1 cs1) _l1) _) (L (SrcSpanAnn (EpAnn _anc2 an2 cs2) l2) b) = do +transferEntryDPI (L (SrcSpanAnn (EpAnn anc1 an1 cs1) _l1) _) (L (SrcSpanAnn (EpAnn _anc2 an2 cs2) l2) b) = do logTr $ "transferEntryDP': EpAnn,EpAnn" -- Problem: if the original had preceding comments, blindly -- transferring the location is not correct @@ -376,13 +454,27 @@ transferEntryDP (L (SrcSpanAnn (EpAnn anc1 an1 cs1) _l1) _) (L (SrcSpanAnn (EpAn (L anc _:_) -> do logDataWithAnnsTr "transferEntryDP':priorComments anc=" anc return (L (SrcSpanAnn (EpAnn anc1 (combine an1 an2) (cs1 <> cs2)) l2) b) -transferEntryDP (L (SrcSpanAnn EpAnnNotUsed _l1) _) (L (SrcSpanAnn (EpAnn anc2 an2 cs2) l2) b) = do +transferEntryDPI (L (SrcSpanAnn EpAnnNotUsed _l1) _) (L (SrcSpanAnn (EpAnn anc2 an2 cs2) l2) b) = do logTr $ "transferEntryDP': EpAnnNotUsed,EpAnn" return (L (SrcSpanAnn (EpAnn anc2' an2 cs2) l2) b) where anc2' = case anc2 of - Anchor _a op -> Anchor (realSrcSpan l2) op + -- Anchor _a op -> Anchor (realSrcSpan "transferEntryDP" l2) op + EpaDelta _dp _cs -> anc2 + EpaSpan _ -> EpaSpan (RealSrcSpan (realSrcSpan "transferEntryDP" l2) Strict.Nothing) +transferEntryDP :: (Monad m, Typeable an) + => LocatedAnS an a -> LocatedAnS an b -> TransformT m (LocatedAnS an b) +transferEntryDP (L (EpAnnS anc1 an1 cs1) _) (L (EpAnnS _anc2 an2 cs2) b) = do + logTr $ "transferEntryDP': EpAnn,EpAnn" + -- Problem: if the original had preceding comments, blindly + -- transferring the location is not correct + case priorComments cs1 of + [] -> return (L (EpAnnS anc1 (combine an1 an2) cs2) b) + -- TODO: what happens if the receiving side already has comments? + (L anc _:_) -> do + logDataWithAnnsTr "transferEntryDP':priorComments anc=" anc + return (L (EpAnnS anc1 (combine an1 an2) (cs1 <> cs2)) b) -- |If a and b are the same type return first arg, else return second combine :: (Typeable a, Typeable b) => a -> b -> b @@ -401,7 +493,7 @@ pushDeclDP :: HsDecl GhcPs -> DeltaPos -> HsDecl GhcPs pushDeclDP (ValD x (FunBind a b (MG c (L d ms )))) dp = ValD x (FunBind a b (MG c (L d' ms'))) where - L d' _ = setEntryDP (L d ms) dp + L d' _ = setEntryDPI (L d ms) dp ms' :: [LMatch GhcPs (LHsExpr GhcPs)] ms' = case ms of [] -> [] @@ -449,24 +541,33 @@ balanceCommentsFB (L lf (FunBind x n (MG o (L lm matches)))) second = do -- + move the interior ones to the first match, -- + move the trailing ones to the last match. let - split = splitCommentsEnd (realSrcSpan $ locA lf) (epAnnComments $ ann lf) - split2 = splitCommentsStart (realSrcSpan $ locA lf) (EpaComments (sortEpaComments $ priorComments split)) - - before = sortEpaComments $ priorComments split2 - middle = sortEpaComments $ getFollowingComments split2 - after = sortEpaComments $ getFollowingComments split - - lf' = setCommentsSrcAnn lf (EpaComments before) + (before,middle,after) = case s_entry lf of + EpaSpan (RealSrcSpan ss _) -> + let + split = splitCommentsEnd ss (s_comments lf) + split2 = splitCommentsStart ss (EpaComments (sortEpaComments $ priorComments split)) + + before = sortEpaComments $ priorComments split2 + middle = sortEpaComments $ getFollowingComments split2 + after = sortEpaComments $ getFollowingComments split + in (before,middle,after) + _ -> (priorComments $ s_comments lf, + [], + getFollowingComments $ s_comments lf) + + lf' = setCommentsEpAnnS lf (EpaComments before) logTr $ "balanceCommentsFB (before, after): " ++ showAst (before, after) - let matches' = case matches of + -- let matches' = case matches of + let matches' :: [LocatedA (Match GhcPs (LHsExpr GhcPs))] + matches' = case matches of (L lm' m':ms') -> - (L (addCommentsToSrcAnn lm' (EpaComments middle )) m':ms') - _ -> error "balanceCommentsFB" + (L (addCommentsToEpAnnS lm' (EpaComments middle )) m':ms') + _ -> error "balanceCommentsFB3" matches'' <- balanceCommentsList' matches' let (m,ms) = case reverse matches'' of (L lm' m':ms') -> - (L (addCommentsToSrcAnn lm' (EpaCommentsBalanced [] after)) m',ms') - _ -> error "balanceCommentsFB" + (L (addCommentsToEpAnnS lm' (EpaCommentsBalanced [] after)) m',ms') + _ -> error "balanceCommentsFB4" (m',second') <- balanceComments' m second m'' <- balanceCommentsMatch m' let (m''',lf'') = case ms of @@ -485,28 +586,28 @@ balanceCommentsMatch (L l (Match am mctxt pats (GRHSs xg grhss binds))) = do return (L l'' (Match am mctxt pats (GRHSs xg grhss' binds'))) where simpleBreak (r,_) = r /= 0 - (SrcSpanAnn an1 _loc1) = l - anc1 = addCommentOrigDeltas $ epAnnComments an1 + an1 = l + anc1 = addCommentOrigDeltas $ s_comments an1 cs1f = getFollowingComments anc1 (move',stay') = break simpleBreak (trailingCommentsDeltas (anchorFromLocatedA (L l ())) cs1f) move = map snd move' stay = map snd stay' (l'', grhss', binds', logInfo) = case reverse grhss of - [] -> (l, [], binds, (EpaComments [], SrcSpanAnn EpAnnNotUsed noSrcSpan)) + [] -> (l, [], binds, (EpaComments [], noSrcSpanA)) (L lg g@(GRHS EpAnnNotUsed _grs _rhs):gs) - -> (l, reverse (L lg g:gs), binds, (EpaComments [], SrcSpanAnn EpAnnNotUsed noSrcSpan)) + -> (l, reverse (L lg g:gs), binds, (EpaComments [], noSrcSpanA)) (L lg (GRHS ag grs rhs):gs) -> let anc1' = setFollowingComments anc1 stay - an1' = setCommentsSrcAnn l anc1' + an1' = setCommentsEpAnnS l anc1' -- --------------------------------- (moved,bindsm) = pushTrailingComments WithWhere (EpaCommentsBalanced [] move) binds -- --------------------------------- (EpAnn anc an lgc) = ag - lgc' = splitCommentsEnd (realSrcSpan $ locA lg) $ addCommentOrigDeltas lgc + lgc' = splitCommentsEnd (realSrcSpan "balanceCommentsMatch" $ locA lg) $ addCommentOrigDeltas lgc ag' = if moved then EpAnn anc an lgc' else EpAnn anc an (lgc' <> (EpaCommentsBalanced [] move)) @@ -520,10 +621,10 @@ pushTrailingComments _ _cs (HsIPBinds _ _) = error "TODO: pushTrailingComments:H pushTrailingComments w cs lb@(HsValBinds an _) = (True, HsValBinds an' vb) where - (decls, _, _ws1) = runTransform (hsDeclsValBinds lb) + decls = hsDeclsLocalBinds lb (an', decls') = case reverse decls of [] -> (addCommentsToEpAnn (spanHsLocaLBinds lb) an cs, decls) - (L la d:ds) -> (an, L (addCommentsToSrcAnn la cs) d:ds) + (L la d:ds) -> (an, L (addCommentsToEpAnnS la cs) d:ds) (vb,_ws2) = case runTransform (replaceDeclsValbinds w lb (reverse decls')) of ((HsValBinds _ vb'), _, ws2') -> (vb', ws2') _ -> (ValBinds NoAnnSortKey emptyBag [], []) @@ -546,7 +647,7 @@ balanceCommentsList' (a:b:ls) = do -- Many of these should in fact be following comments for the previous anchor balanceComments' :: (Monad m) => LocatedA a -> LocatedA b -> TransformT m (LocatedA a, LocatedA b) balanceComments' la1 la2 = do - logTr $ "balanceComments': (loc1,loc2)=" ++ showGhc (ss2range loc1,ss2range loc2) + -- logTr $ "balanceComments': (loc1,loc2)=" ++ showGhc (ss2range loc1,ss2range loc2) logTr $ "balanceComments': (anc1)=" ++ showAst (anc1) logTr $ "balanceComments': (cs1s)=" ++ showAst (cs1s) logTr $ "balanceComments': (cs1stay,cs1move)=" ++ showAst (cs1stay,cs1move) @@ -554,10 +655,14 @@ balanceComments' la1 la2 = do return (la1', la2') where simpleBreak n (r,_) = r > n - L (SrcSpanAnn an1 loc1) f = la1 - L (SrcSpanAnn an2 loc2) s = la2 - anc1 = addCommentOrigDeltas $ epAnnComments an1 - anc2 = addCommentOrigDeltas $ epAnnComments an2 + -- L (SrcSpanAnn an1 loc1) f = la1 + L an1 f = la1 + -- L (SrcSpanAnn an2 loc2) s = la2 + L an2 s = la2 + -- anc1 = addCommentOrigDeltas $ s_comments an1 + -- anc2 = addCommentOrigDeltas $ s_comments an2 + anc1 = s_comments an1 + anc2 = s_comments an2 cs1s = splitCommentsEnd (anchorFromLocatedA la1) anc1 cs1p = priorCommentsDeltas (anchorFromLocatedA la1) (priorComments cs1s) @@ -577,8 +682,8 @@ balanceComments' la1 la2 = do move = sortEpaComments $ map snd (cs1move ++ move'' ++ move') stay = sortEpaComments $ map snd (cs1stay ++ stay') - an1' = setCommentsSrcAnn (getLoc la1) (EpaCommentsBalanced (map snd cs1p) move) - an2' = setCommentsSrcAnn (getLoc la2) (EpaCommentsBalanced stay (map snd cs2f)) + an1' = setCommentsEpAnnS (getLoc la1) (EpaCommentsBalanced (map snd cs1p) move) + an2' = setCommentsEpAnnS (getLoc la2) (EpaCommentsBalanced stay (map snd cs2f)) la1' = L an1' f la2' = L an2' s @@ -586,27 +691,30 @@ balanceComments' la1 la2 = do trailingCommentsDeltas :: RealSrcSpan -> [LEpaComment] -> [(Int, LEpaComment)] trailingCommentsDeltas _ [] = [] -trailingCommentsDeltas anc (la@(L l _):las) - = deltaComment anc la : trailingCommentsDeltas (anchor l) las +trailingCommentsDeltas rs (la@(L (EpaDelta dp _) _):las) + = (getDeltaLine dp, la): trailingCommentsDeltas rs las +trailingCommentsDeltas rs (la@(L l _):las) + = deltaComment rs la : trailingCommentsDeltas (anchor l) las where - deltaComment anc' (L loc c) = (abs(ll - al), L loc c) + deltaComment rs' (L loc c) = (abs(ll - al), L loc c) where - (al,_) = ss2posEnd anc' + (al,_) = ss2posEnd rs' (ll,_) = ss2pos (anchor loc) -- AZ:TODO: this is identical to commentsDeltas priorCommentsDeltas :: RealSrcSpan -> [LEpaComment] -> [(Int, LEpaComment)] -priorCommentsDeltas anc cs = go anc (reverse $ sortEpaComments cs) +priorCommentsDeltas rs cs = go rs (reverse $ sortEpaComments cs) where go :: RealSrcSpan -> [LEpaComment] -> [(Int, LEpaComment)] go _ [] = [] - go anc' (la@(L l _):las) = deltaComment anc' la : go (anchor l) las + go rs' (la@(L (EpaDelta dp _) _):las) = (deltaLine dp, la) : go rs' las + go rs' (la@(L l _):las) = deltaComment rs' la : go (anchor l) las deltaComment :: RealSrcSpan -> LEpaComment -> (Int, LEpaComment) - deltaComment anc' (L loc c) = (abs(ll - al), L loc c) + deltaComment rs' (L loc c) = (abs(ll - al), L loc c) where - (al,_) = ss2pos anc' + (al,_) = ss2pos rs' (ll,_) = ss2pos (anchor loc) @@ -617,14 +725,16 @@ priorCommentsDeltas anc cs = go anc (reverse $ sortEpaComments cs) splitCommentsEnd :: RealSrcSpan -> EpAnnComments -> EpAnnComments splitCommentsEnd p (EpaComments cs) = cs' where - cmp (L (Anchor l _) _) = ss2pos l > ss2posEnd p + cmp (L (EpaSpan (RealSrcSpan l _)) _) = ss2pos l > ss2posEnd p + cmp (L _ _) = True (before, after) = break cmp cs cs' = case after of [] -> EpaComments cs _ -> EpaCommentsBalanced before after splitCommentsEnd p (EpaCommentsBalanced cs ts) = EpaCommentsBalanced cs' ts' where - cmp (L (Anchor l _) _) = ss2pos l > ss2posEnd p + cmp (L (EpaSpan (RealSrcSpan l _)) _) = ss2pos l > ss2posEnd p + cmp (L _ _) = True (before, after) = break cmp cs cs' = before ts' = after <> ts @@ -634,33 +744,34 @@ splitCommentsEnd p (EpaCommentsBalanced cs ts) = EpaCommentsBalanced cs' ts' splitCommentsStart :: RealSrcSpan -> EpAnnComments -> EpAnnComments splitCommentsStart p (EpaComments cs) = cs' where - cmp (L (Anchor l _) _) = ss2pos l > ss2pos p + cmp (L (EpaSpan (RealSrcSpan l _)) _) = ss2pos l > ss2posEnd p + cmp (L _ _) = True (before, after) = break cmp cs cs' = case after of [] -> EpaComments cs _ -> EpaCommentsBalanced before after splitCommentsStart p (EpaCommentsBalanced cs ts) = EpaCommentsBalanced cs' ts' where - cmp (L (Anchor l _) _) = ss2pos l > ss2pos p + cmp (L (EpaSpan (RealSrcSpan l _)) _) = ss2pos l > ss2posEnd p + cmp (L _ _) = True (before, after) = break cmp cs cs' = before ts' = after <> ts -moveLeadingComments :: (Data t, Data u, Monoid t, Monoid u) - => LocatedAn t a -> SrcAnn u -> (LocatedAn t a, SrcAnn u) -moveLeadingComments from@(L (SrcSpanAnn EpAnnNotUsed _) _) to = (from, to) +moveLeadingComments :: (Data t, Data u, Monoid u) + => LocatedAnS t a -> EpAnnS u -> (LocatedAnS t a, EpAnnS u) moveLeadingComments (L la a) lb = (L la' a, lb') `debug` ("moveLeadingComments: (before, after, la', lb'):" ++ showAst (before, after, la', lb')) where - split = splitCommentsEnd (realSrcSpan $ locA la) (epAnnComments $ ann la) + split = splitCommentsEnd (realSrcSpan "moveLeadingComments" $ locA la) (s_comments la) before = sortEpaComments $ priorComments split after = sortEpaComments $ getFollowingComments split -- TODO: need to set an entry delta on lb' to zero, and move the -- original spacing to the first comment. - la' = setCommentsSrcAnn la (EpaComments after) - lb' = addCommentsToSrcAnn lb (EpaCommentsBalanced before []) + la' = setCommentsEpAnnS la (EpaComments after) + lb' = addCommentsToEpAnnS lb (EpaCommentsBalanced before []) -- | A GHC comment includes the span of the preceding (non-comment) -- token. Takes an original list of comments, and converts the @@ -679,33 +790,25 @@ addCommentOrigDeltasAnn :: (EpAnn a) -> (EpAnn a) addCommentOrigDeltasAnn EpAnnNotUsed = EpAnnNotUsed addCommentOrigDeltasAnn (EpAnn e a cs) = EpAnn e a (addCommentOrigDeltas cs) +addCommentOrigDeltasEpAnnS :: (EpAnnS a) -> (EpAnnS a) +addCommentOrigDeltasEpAnnS (EpAnnS e a cs) = EpAnnS e a (addCommentOrigDeltas cs) + -- TODO: this is replicating functionality in ExactPrint. Sort out the -- import loop` anchorFromLocatedA :: LocatedA a -> RealSrcSpan -anchorFromLocatedA (L (SrcSpanAnn an loc) _) - = case an of - EpAnnNotUsed -> realSrcSpan loc - (EpAnn anc _ _) -> anchor anc +anchorFromLocatedA (L (EpAnnS anc _ _) _) = anchor anc -- | A GHC comment includes the span of the preceding token. Take an -- original comment, and convert the 'Anchor to have a have a -- `MovedAnchor` operation based on the original location, only if it -- does not already have one. commentOrigDelta :: LEpaComment -> LEpaComment -commentOrigDelta (L (GHC.Anchor la _) (GHC.EpaComment t pp)) - = (L (GHC.Anchor la op) (GHC.EpaComment t pp)) - `debug` ("commentOrigDelta: (la, pp, r,c, op)=" ++ showAst (la, pp, r,c, op)) +commentOrigDelta (L (EpaSpan (RealSrcSpan la _)) (GHC.EpaComment t pp)) + = (L op (GHC.EpaComment t pp)) where - (r,c) = ss2posEnd pp - - op' = if r == 0 - then MovedAnchor (ss2delta (r,c+1) la) - -- then MovedAnchor (ss2delta (r,c+0) la) - -- else MovedAnchor (ss2delta (r,c) la) - else MovedAnchor (tweakDelta $ ss2delta (r,c) la) - op = if t == EpaEofComment && op' == MovedAnchor (SameLine 0) - then MovedAnchor (DifferentLine 1 0) - else op' + op = EpaDelta (origDelta la pp) [] +commentOrigDelta (L anc (GHC.EpaComment t pp)) + = (L anc (GHC.EpaComment t pp)) -- --------------------------------------------------------------------- @@ -722,8 +825,8 @@ balanceSameLineComments (L la (Match anm mctxt pats (GRHSs x grhss lb))) = do (L lg g@(GRHS EpAnnNotUsed _gs _rhs):grs) -> (la,reverse $ (L lg g):grs,[]) (L lg (GRHS ga gs rhs):grs) -> (la'',reverse $ (L lg (GRHS ga' gs rhs)):grs,[(gac,(csp,csf))]) where - (SrcSpanAnn an1 _loc1) = la - anc1 = addCommentOrigDeltas $ epAnnComments an1 + an1 = la + anc1 = addCommentOrigDeltas $ s_comments an1 (EpAnn anc an _) = ga :: EpAnn GrhsAnn (csp,csf) = case anc1 of EpaComments cs -> ([],cs) @@ -738,8 +841,7 @@ balanceSameLineComments (L la (Match anm mctxt pats (GRHSs x grhss lb))) = do gac' = setFollowingComments gac (sortEpaComments $ gfc ++ move) ga' = (EpAnn anc an gac') - an1' = setCommentsSrcAnn la cs1 - la'' = an1' + la'' = setCommentsEpAnnS la cs1 -- --------------------------------------------------------------------- @@ -751,26 +853,34 @@ anchorEof (L l m@(HsModule (XModulePs an _lo _ _) _mn _exps _imps _decls)) = L l -- --------------------------------------------------------------------- commentsOrigDeltasDecl :: LHsDecl GhcPs -> LHsDecl GhcPs -commentsOrigDeltasDecl (L (SrcSpanAnn an l) d) = L (SrcSpanAnn an' l) d - where - an' = addCommentOrigDeltasAnn an +commentsOrigDeltasDecl (L an d) = L (addCommentOrigDeltasEpAnnS an) d -- --------------------------------------------------------------------- -- | Create a @SrcSpanAnn@ with a @MovedAnchor@ operation using the -- given @DeltaPos@. -noAnnSrcSpanDP :: (Monoid ann) => SrcSpan -> DeltaPos -> SrcSpanAnn' (EpAnn ann) -noAnnSrcSpanDP l dp - = SrcSpanAnn (EpAnn (Anchor (realSrcSpan l) (MovedAnchor dp)) mempty emptyComments) l +noAnnSrcSpanDP :: (Monoid ann) => SrcSpan -> DeltaPos -> (EpAnnS ann) +noAnnSrcSpanDP _ dp + = EpAnnS (EpaDelta dp []) mempty emptyComments + +-- | Create a @SrcSpanAnn@ with a @MovedAnchor@ operation using the +-- given @DeltaPos@. +noAnnSrcSpanDPI :: (Monoid ann) => SrcSpan -> DeltaPos -> SrcSpanAnn' (EpAnn ann) +noAnnSrcSpanDPI l dp + = SrcSpanAnn (EpAnn (EpaDelta dp []) mempty emptyComments) l + +noAnnSrcSpanDP0I :: (Monoid ann) => SrcSpan -> SrcSpanAnn' (EpAnn ann) +noAnnSrcSpanDP0I l = noAnnSrcSpanDPI l (SameLine 0) -noAnnSrcSpanDP0 :: (Monoid ann) => SrcSpan -> SrcSpanAnn' (EpAnn ann) +noAnnSrcSpanDP0 :: (Monoid ann) => SrcSpan -> (EpAnnS ann) +-- noAnnSrcSpanDP0 :: SrcSpan -> SrcSpanAnnA noAnnSrcSpanDP0 l = noAnnSrcSpanDP l (SameLine 0) noAnnSrcSpanDP1 :: (Monoid ann) => SrcSpan -> SrcSpanAnn' (EpAnn ann) -noAnnSrcSpanDP1 l = noAnnSrcSpanDP l (SameLine 1) +noAnnSrcSpanDP1 l = noAnnSrcSpanDPI l (SameLine 1) noAnnSrcSpanDPn :: (Monoid ann) => SrcSpan -> Int -> SrcSpanAnn' (EpAnn ann) -noAnnSrcSpanDPn l s = noAnnSrcSpanDP l (SameLine s) +noAnnSrcSpanDPn l s = noAnnSrcSpanDPI l (SameLine s) d0 :: EpaLocation d0 = EpaDelta (SameLine 0) [] @@ -781,20 +891,18 @@ d1 = EpaDelta (SameLine 1) [] dn :: Int -> EpaLocation dn n = EpaDelta (SameLine n) [] -m0 :: AnchorOperation -m0 = MovedAnchor $ SameLine 0 +m0 :: DeltaPos +m0 = SameLine 0 -m1 :: AnchorOperation -m1 = MovedAnchor $ SameLine 1 +m1 :: DeltaPos +m1 = SameLine 1 -mn :: Int -> AnchorOperation -mn n = MovedAnchor $ SameLine n +mn :: Int -> DeltaPos +mn n = SameLine n addComma :: SrcSpanAnnA -> SrcSpanAnnA -addComma (SrcSpanAnn EpAnnNotUsed l) - = (SrcSpanAnn (EpAnn (spanAsAnchor l) (AnnListItem [AddCommaAnn d0]) emptyComments) l) -addComma (SrcSpanAnn (EpAnn anc (AnnListItem as) cs) l) - = (SrcSpanAnn (EpAnn anc (AnnListItem (AddCommaAnn d0:as)) cs) l) +addComma (EpAnnS anc (AnnListItem as) cs) + = (EpAnnS anc (AnnListItem (AddCommaAnn d0:as)) cs) -- --------------------------------------------------------------------- @@ -809,8 +917,11 @@ insertAt :: (HasDecls ast) -> Transform ast insertAt f t decl = do oldDecls <- hsDecls t + logTr $ "oldDecls:" ++ showAst oldDecls oldDeclsb <- balanceCommentsList oldDecls + logTr $ "oldDeclsb:" ++ showAst oldDeclsb let oldDecls' = map commentsOrigDeltasDecl oldDeclsb + logTr $ "oldDecls':" ++ showAst oldDecls' replaceDecls t (f decl oldDecls') -- |Insert a declaration at the beginning or end of the subdecls of the given @@ -894,7 +1005,7 @@ instance HasDecls ParsedSource where -- --------------------------------------------------------------------- instance HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) where - hsDecls (L _ (Match _ _ _ (GRHSs _ _ lb))) = hsDeclsValBinds lb + hsDecls (L _ (Match _ _ _ (GRHSs _ _ lb))) = return $ hsDeclsLocalBinds lb replaceDecls (L l (Match xm c p (GRHSs xr rhs binds))) [] = do @@ -923,19 +1034,20 @@ instance HasDecls (LocatedA (Match GhcPs (LocatedA (HsExpr GhcPs)))) where -- --------------------------------------------------------------------- instance HasDecls (LocatedA (HsExpr GhcPs)) where - hsDecls (L _ (HsLet _ _ decls _ _ex)) = hsDeclsValBinds decls + hsDecls (L _ (HsLet _ _ decls _ _ex)) = return $ hsDeclsLocalBinds decls hsDecls _ = return [] replaceDecls (L ll (HsLet x tkLet binds tkIn ex)) newDecls = do logTr "replaceDecls HsLet" - let lastAnc = realSrcSpan $ spanHsLocaLBinds binds + let lastAnc = realSrcSpan "replaceDecls" $ spanHsLocaLBinds binds -- TODO: may be an intervening comment, take account for lastAnc let (tkLet', tkIn', ex',newDecls') = case (tkLet, tkIn) of (L (TokenLoc l) ls, L (TokenLoc i) is) -> let off = case l of - (EpaSpan r _) -> LayoutStartCol $ snd $ ss2pos r + (EpaSpan (RealSrcSpan r _)) -> LayoutStartCol $ snd $ ss2pos r + (EpaSpan _) -> LayoutStartCol 0 -- Arbitrary (EpaDelta (SameLine _) _) -> LayoutStartCol 0 (EpaDelta (DifferentLine _ c) _) -> LayoutStartCol c ex'' = setEntryDPFromAnchor off i ex @@ -965,7 +1077,7 @@ instance HasDecls (LocatedA (HsExpr GhcPs)) where -- cannot be a member of 'HasDecls' because a 'FunBind' is not idempotent -- for 'hsDecls' \/ 'replaceDecls'. 'hsDeclsPatBindD' \/ 'replaceDeclsPatBindD' is -- idempotent. -hsDeclsPatBindD :: (Monad m) => LHsDecl GhcPs -> TransformT m [LHsDecl GhcPs] +hsDeclsPatBindD :: LHsDecl GhcPs -> [LHsDecl GhcPs] hsDeclsPatBindD (L l (ValD _ d)) = hsDeclsPatBind (L l d) hsDeclsPatBindD x = error $ "hsDeclsPatBindD called for:" ++ showGhc x @@ -973,8 +1085,8 @@ hsDeclsPatBindD x = error $ "hsDeclsPatBindD called for:" ++ showGhc x -- cannot be a member of 'HasDecls' because a 'FunBind' is not idempotent -- for 'hsDecls' \/ 'replaceDecls'. 'hsDeclsPatBind' \/ 'replaceDeclsPatBind' is -- idempotent. -hsDeclsPatBind :: (Monad m) => LHsBind GhcPs -> TransformT m [LHsDecl GhcPs] -hsDeclsPatBind (L _ (PatBind _ _ (GRHSs _ _grhs lb))) = hsDeclsValBinds lb +hsDeclsPatBind :: LHsBind GhcPs -> [LHsDecl GhcPs] +hsDeclsPatBind (L _ (PatBind _ _ (GRHSs _ _grhs lb))) = hsDeclsLocalBinds lb hsDeclsPatBind x = error $ "hsDeclsPatBind called for:" ++ showGhc x -- ------------------------------------- @@ -1006,7 +1118,7 @@ replaceDeclsPatBind x _ = error $ "replaceDeclsPatBind called for:" ++ showGhc x -- --------------------------------------------------------------------- instance HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) where - hsDecls (L _ (LetStmt _ lb)) = hsDeclsValBinds lb + hsDecls (L _ (LetStmt _ lb)) = return $ hsDeclsLocalBinds lb hsDecls (L _ (LastStmt _ e _ _)) = hsDecls e hsDecls (L _ (BindStmt _ _pat e)) = hsDecls e hsDecls (L _ (BodyStmt _ e _ _)) = hsDecls e @@ -1040,29 +1152,49 @@ instance HasDecls (LocatedA (Stmt GhcPs (LocatedA (HsExpr GhcPs)))) where -- |Look up the annotated order and sort the decls accordingly -- TODO:AZ: this should be pure orderedDecls :: (Monad m) - => AnnSortKey -> [LHsDecl GhcPs] -> TransformT m [LHsDecl GhcPs] + => AnnSortKey [RealSrcSpan] -> [LHsDecl GhcPs] -> TransformT m [LHsDecl GhcPs] orderedDecls sortKey decls = do case sortKey of NoAnnSortKey -> do -- return decls - return $ sortBy (\a b -> compare (realSrcSpan $ getLocA a) (realSrcSpan $ getLocA b)) decls + return $ sortBy (\a b -> compare (realSrcSpan "orderedDecls" $ getLocA a) (realSrcSpan "orderedDecls" $ getLocA b)) decls AnnSortKey keys -> do let ds = map (\s -> (rs $ getLocA s,s)) decls ordered = map snd $ orderByKey ds keys return ordered +-- orderedDeclsBinds :: (Monad m) +-- => AnnSortKey [DeclTag] +-- -> [LHsDecl GhcPs] -> [LHsDecl GhcPs] +-- -> TransformT m [LHsDecl GhcPs] +-- orderedDeclsBinds sortKey binds sigs = do +-- case sortKey of +-- NoAnnSortKey -> do +-- -- return decls +-- return $ sortBy (\a b -> +-- compare (realSrcSpan "orderedDecls" $ getLocA a) +-- (realSrcSpan "orderedDecls" $ getLocA b)) (binds ++ sigs) +-- AnnSortKey keys -> do +-- let +-- go [] _ _ = [] +-- go (ValDTag:ks) (b:bs) ss = b : go ks bs ss +-- go (SigDTag:ks) bs (s:ss) = s : go ks bs ss +-- go (_:ks) bs ss = go ks bs ss + +-- return (go keys binds sigs) + -- --------------------------------------------------------------------- -hsDeclsValBinds :: (Monad m) => HsLocalBinds GhcPs -> TransformT m [LHsDecl GhcPs] -hsDeclsValBinds lb = case lb of - HsValBinds _ (ValBinds sortKey bs sigs) -> do - let - bds = map wrapDecl (bagToList bs) - sds = map wrapSig sigs - orderedDecls sortKey (bds ++ sds) - HsValBinds _ (XValBindsLR _) -> error $ "hsDecls.XValBindsLR not valid" - HsIPBinds {} -> return [] - EmptyLocalBinds {} -> return [] +-- hsDeclsValBinds :: (Monad m) => HsLocalBinds GhcPs -> TransformT m [LHsDecl GhcPs] +-- hsDeclsValBinds lb = case lb of +-- HsValBinds _ (ValBinds sortKey bs sigs) -> do +-- let +-- bds = map wrapDecl (bagToList bs) +-- sds = map wrapSig sigs +-- orderedDeclsBinds sortKey bds sds +-- HsValBinds _ (XValBindsLR _) -> error $ "hsDecls.XValBindsLR not valid" +-- HsIPBinds {} -> return [] +-- EmptyLocalBinds {} -> return [] data WithWhere = WithWhere | WithoutWhere @@ -1082,10 +1214,10 @@ replaceDeclsValbinds w b@(HsValBinds a _) new = do logTr "replaceDeclsValbinds" let oldSpan = spanHsLocaLBinds b - an <- oldWhereAnnotation a w (realSrcSpan oldSpan) + an <- oldWhereAnnotation a w (realSrcSpan "replaceDeclsValbinds" oldSpan) let decs = listToBag $ concatMap decl2Bind new let sigs = concatMap decl2Sig new - let sortKey = captureOrder new + let sortKey = captureOrderBinds new return (HsValBinds an (ValBinds sortKey decs sigs)) replaceDeclsValbinds _ (HsIPBinds {}) _new = error "undefined replaceDecls HsIPBinds" replaceDeclsValbinds w (EmptyLocalBinds _) new @@ -1096,20 +1228,18 @@ replaceDeclsValbinds w (EmptyLocalBinds _) new newSigs = concatMap decl2Sig new let decs = listToBag $ newBinds let sigs = newSigs - let sortKey = captureOrder new + let sortKey = captureOrderBinds new return (HsValBinds an (ValBinds sortKey decs sigs)) oldWhereAnnotation :: (Monad m) => EpAnn AnnList -> WithWhere -> RealSrcSpan -> TransformT m (EpAnn AnnList) oldWhereAnnotation EpAnnNotUsed ww _oldSpan = do - newSpan <- uniqueSrcSpanT let w = case ww of WithWhere -> [AddEpAnn AnnWhere (EpaDelta (SameLine 0) [])] WithoutWhere -> [] - let anc2' = Anchor (rs newSpan) (MovedAnchor (SameLine 1)) + let anc2' = EpaDelta (SameLine 1) [] (anc, anc2) <- do - newSpan' <- uniqueSrcSpanT - return ( Anchor (rs newSpan') (MovedAnchor (DifferentLine 1 2)) + return (EpaDelta (DifferentLine 1 2) [] , anc2') let an = EpAnn anc (AnnList (Just anc2) Nothing Nothing w []) @@ -1132,9 +1262,8 @@ oldWhereAnnotation (EpAnn anc an cs) ww _oldSpan = do newWhereAnnotation :: (Monad m) => WithWhere -> TransformT m (EpAnn AnnList) newWhereAnnotation ww = do - newSpan <- uniqueSrcSpanT - let anc = Anchor (rs newSpan) (MovedAnchor (DifferentLine 1 2)) - let anc2 = Anchor (rs newSpan) (MovedAnchor (DifferentLine 1 4)) + let anc = EpaDelta (DifferentLine 1 2) [] + let anc2 = EpaDelta (DifferentLine 1 4) [] let w = case ww of WithWhere -> [AddEpAnn AnnWhere (EpaDelta (SameLine 0) [])] WithoutWhere -> [] @@ -1160,7 +1289,7 @@ modifyValD :: forall m t. (HasTransform m) modifyValD p pb@(L ss (ValD _ (PatBind {} ))) f = if (locA ss) == p then do - ds <- liftT $ hsDeclsPatBindD pb + let ds = hsDeclsPatBindD pb (ds',r) <- f (error "modifyValD.PatBind should not touch Match") ds pb' <- liftT $ replaceDeclsPatBindD pb ds' return (pb',r) diff --git a/utils/check-exact/Types.hs b/utils/check-exact/Types.hs index 381d157e8b..b50a0b9d86 100644 --- a/utils/check-exact/Types.hs +++ b/utils/check-exact/Types.hs @@ -45,9 +45,16 @@ instance Ord Comment where -- When we have CPP injected comments with a fake filename, or LINE -- pragma, the file name changes, so we need to compare the -- locations only, with out the filename. - compare (Comment _ ss1 _ _) (Comment _ ss2 _ _) = compare (ss2pos $ anchor ss1) (ss2pos $ anchor ss2) - where - ss2pos ss = (srcSpanStartLine ss,srcSpanStartCol ss) + -- compare (Comment _ ss1 _ _) (Comment _ ss2 _ _) = compare (ss2pos $ anchor ss1) (ss2pos $ anchor ss2) + compare (Comment _ ss1 _ _) (Comment _ ss2 _ _) = compare ss1 ss2 + +ss2pos :: RealSrcSpan -> Pos +ss2pos ss = (srcSpanStartLine ss,srcSpanStartCol ss) + +instance Ord EpaLocation where + compare (EpaSpan (RealSrcSpan l1 m1)) (EpaSpan (RealSrcSpan l2 m2)) = compare (ss2pos l1, m1) (ss2pos l2, m2) + compare _ _ = EQ + instance Outputable Comment where ppr x = text (show x) diff --git a/utils/check-exact/Utils.hs b/utils/check-exact/Utils.hs index 14a05a2337..9165445e9a 100644 --- a/utils/check-exact/Utils.hs +++ b/utils/check-exact/Utils.hs @@ -20,7 +20,6 @@ module Utils where import Control.Monad (when) -import Data.Function import Data.Maybe (isJust) import Data.Ord (comparing) @@ -31,6 +30,7 @@ import qualified Orphans as Orphans import GHC hiding (EpaComment) import qualified GHC +import GHC.Data.Bag import GHC.Types.Name import GHC.Types.Name.Reader import GHC.Types.SrcLoc @@ -120,23 +120,23 @@ undelta (l,_) (DifferentLine dl dc) (LayoutStartCol co) = (fl,fc) fc = co + dc undeltaSpan :: RealSrcSpan -> AnnKeywordId -> DeltaPos -> AddEpAnn -undeltaSpan anchor kw dp = AddEpAnn kw (EpaSpan sp Strict.Nothing) +undeltaSpan anc kw dp = AddEpAnn kw (EpaSpan (RealSrcSpan sp Strict.Nothing)) where - (l,c) = undelta (ss2pos anchor) dp (LayoutStartCol 0) + (l,c) = undelta (ss2pos anc) dp (LayoutStartCol 0) len = length (keywordToString kw) sp = range2rs ((l,c),(l,c+len)) -- --------------------------------------------------------------------- adjustDeltaForOffset :: LayoutStartCol -> DeltaPos -> DeltaPos -adjustDeltaForOffset _colOffset dp@(SameLine _) = dp +adjustDeltaForOffset _colOffset dp@(SameLine _) = dp adjustDeltaForOffset (LayoutStartCol colOffset) (DifferentLine l c) = DifferentLine l (c - colOffset) -- --------------------------------------------------------------------- -ss2pos :: RealSrcSpan -> Pos -ss2pos ss = (srcSpanStartLine ss,srcSpanStartCol ss) +-- ss2pos :: RealSrcSpan -> Pos +-- ss2pos ss = (srcSpanStartLine ss,srcSpanStartCol ss) ss2posEnd :: RealSrcSpan -> Pos ss2posEnd ss = (srcSpanEndLine ss,srcSpanEndCol ss) @@ -233,7 +233,6 @@ ghcCommentText (L _ (GHC.EpaComment (EpaDocComment s) _)) = exactPrintHsDoc ghcCommentText (L _ (GHC.EpaComment (EpaDocOptions s) _)) = s ghcCommentText (L _ (GHC.EpaComment (EpaLineComment s) _)) = s ghcCommentText (L _ (GHC.EpaComment (EpaBlockComment s) _)) = s -ghcCommentText (L _ (GHC.EpaComment (EpaEofComment) _)) = "" tokComment :: LEpaComment -> Comment tokComment t@(L lt c) = mkComment (normaliseCommentText $ ghcCommentText t) lt (ac_prior_tok c) @@ -248,7 +247,6 @@ comment2LEpaComment :: Comment -> LEpaComment comment2LEpaComment (Comment s anc r _mk) = mkLEpaComment s anc r mkLEpaComment :: String -> Anchor -> RealSrcSpan -> LEpaComment -mkLEpaComment "" anc r = (L anc (GHC.EpaComment (EpaEofComment) r)) mkLEpaComment s anc r = (L anc (GHC.EpaComment (EpaLineComment s) r)) mkComment :: String -> Anchor -> RealSrcSpan -> Comment @@ -262,7 +260,8 @@ normaliseCommentText (x:xs) = x:normaliseCommentText xs -- |Must compare without span filenames, for CPP injected comments with fake filename cmpComments :: Comment -> Comment -> Ordering -cmpComments (Comment _ l1 _ _) (Comment _ l2 _ _) = compare (ss2pos $ anchor l1) (ss2pos $ anchor l2) +-- cmpComments (Comment _ l1 _ _) (Comment _ l2 _ _) = compare (ss2pos $ anchor l1) (ss2pos $ anchor l2) +cmpComments (Comment _ l1 _ _) (Comment _ l2 _ _) = compare l1 l2 -- |Sort, comparing without span filenames, for CPP injected comments with fake filename sortComments :: [Comment] -> [Comment] @@ -272,14 +271,16 @@ sortComments cs = sortBy cmpComments cs sortEpaComments :: [LEpaComment] -> [LEpaComment] sortEpaComments cs = sortBy cmp cs where - cmp (L l1 _) (L l2 _) = compare (ss2pos $ anchor l1) (ss2pos $ anchor l2) + -- cmp (L l1 _) (L l2 _) = compare (ss2pos $ anchor l1) (ss2pos $ anchor l2) + cmp (L l1 _) (L l2 _) = compare l1 l2 -- | Makes a comment which originates from a specific keyword. mkKWComment :: AnnKeywordId -> EpaLocation -> Comment -mkKWComment kw (EpaSpan ss _) - = Comment (keywordToString kw) (Anchor ss UnchangedAnchor) ss (Just kw) +mkKWComment kw (EpaSpan (RealSrcSpan ss mb)) + = Comment (keywordToString kw) (EpaSpan (RealSrcSpan ss mb)) ss (Just kw) mkKWComment kw (EpaDelta dp _) - = Comment (keywordToString kw) (Anchor placeholderRealSpan (MovedAnchor dp)) placeholderRealSpan (Just kw) + = Comment (keywordToString kw) (EpaDelta dp []) placeholderRealSpan (Just kw) +mkKWComment _ _ = error "mkKWComment on UnhelpfulSpan" -- | Detects a comment which originates from a specific keyword. isKWComment :: Comment -> Bool @@ -288,8 +289,8 @@ isKWComment c = isJust (commentOrigin c) noKWComments :: [Comment] -> [Comment] noKWComments = filter (\c -> not (isKWComment c)) -sortAnchorLocated :: [GenLocated Anchor a] -> [GenLocated Anchor a] -sortAnchorLocated = sortBy (compare `on` (anchor . getLoc)) +-- sortAnchorLocated :: [GenLocated Anchor a] -> [GenLocated Anchor a] +-- sortAnchorLocated = sortBy (compare `on` (anchor . getLoc)) -- | Calculates the distance from the start of a string to the end of -- a string. @@ -341,19 +342,22 @@ name2String = showPprUnsafe -- --------------------------------------------------------------------- locatedAnAnchor :: LocatedAn a t -> RealSrcSpan -locatedAnAnchor (L (SrcSpanAnn EpAnnNotUsed l) _) = realSrcSpan l +locatedAnAnchor (L (SrcSpanAnn EpAnnNotUsed l) _) = realSrcSpan "locatedAnAnchor" l locatedAnAnchor (L (SrcSpanAnn (EpAnn a _ _) _) _) = anchor a -- --------------------------------------------------------------------- -setAnchorAn :: (Default an) => LocatedAn an a -> Anchor -> EpAnnComments -> LocatedAn an a -setAnchorAn (L (SrcSpanAnn EpAnnNotUsed l) a) anc cs +setAnchorAnI :: (Default an) => LocatedAn an a -> Anchor -> EpAnnComments -> LocatedAn an a +setAnchorAnI (L (SrcSpanAnn EpAnnNotUsed l) a) anc cs = (L (SrcSpanAnn (EpAnn anc Orphans.def cs) l) a) -- `debug` ("setAnchorAn: anc=" ++ showAst anc) -setAnchorAn (L (SrcSpanAnn (EpAnn _ an _) l) a) anc cs +setAnchorAnI (L (SrcSpanAnn (EpAnn _ an _) l) a) anc cs = (L (SrcSpanAnn (EpAnn anc an cs) l) a) -- `debug` ("setAnchorAn: anc=" ++ showAst anc) +setAnchorAn :: LocatedAnS an a -> Anchor -> EpAnnComments -> LocatedAnS an a +setAnchorAn (L (EpAnnS _ an _) a) anc cs = (L (EpAnnS anc an cs) a) + setAnchorEpa :: (Default an) => EpAnn an -> Anchor -> EpAnnComments -> EpAnn an setAnchorEpa EpAnnNotUsed anc cs = EpAnn anc Orphans.def cs setAnchorEpa (EpAnn _ an _) anc cs = EpAnn anc an cs @@ -365,13 +369,14 @@ setAnchorEpaL (EpAnn _ an _) anc cs = EpAnn anc (an {al_anchor = Nothing}) cs setAnchorHsModule :: HsModule GhcPs -> Anchor -> EpAnnComments -> HsModule GhcPs setAnchorHsModule hsmod anc cs = hsmod { hsmodExt = (hsmodExt hsmod) {hsmodAnn = an'} } where - anc' = anc { anchor_op = UnchangedAnchor } + -- anc' = anc { anchor_op = UnchangedAnchor } + anc' = anc an' = setAnchorEpa (hsmodAnn $ hsmodExt hsmod) anc' cs -- |Version of l2l that preserves the anchor, immportant if it has an -- updated AnchorOperation moveAnchor :: Monoid b => SrcAnn a -> SrcAnn b -moveAnchor (SrcSpanAnn EpAnnNotUsed l) = noAnnSrcSpan l +moveAnchor (SrcSpanAnn EpAnnNotUsed l) = noAnnSrcSpanI l moveAnchor (SrcSpanAnn (EpAnn anc _ cs) l) = SrcSpanAnn (EpAnn anc mempty cs) l -- --------------------------------------------------------------------- @@ -393,8 +398,7 @@ addEpAnnLoc (AddEpAnn _ l) = l -- TODO: move this to GHC anchorToEpaLocation :: Anchor -> EpaLocation -anchorToEpaLocation (Anchor r UnchangedAnchor) = EpaSpan r Strict.Nothing -anchorToEpaLocation (Anchor _ (MovedAnchor dp)) = EpaDelta dp [] +anchorToEpaLocation anc = anc -- --------------------------------------------------------------------- -- Horrible hack for dealing with some things still having a SrcSpan, @@ -421,25 +425,80 @@ To be absolutely sure, we make the delta versions use -ve values. -} +-- TODO:AZ get rid of this hackSrcSpanToAnchor :: SrcSpan -> Anchor hackSrcSpanToAnchor (UnhelpfulSpan s) = error $ "hackSrcSpanToAnchor : UnhelpfulSpan:" ++ show s -hackSrcSpanToAnchor (RealSrcSpan r Strict.Nothing) = Anchor r UnchangedAnchor -hackSrcSpanToAnchor (RealSrcSpan r (Strict.Just (BufSpan (BufPos s) (BufPos e)))) - = if s <= 0 && e <= 0 - then Anchor r (MovedAnchor (deltaPos (-s) (-e))) - `debug` ("hackSrcSpanToAnchor: (r,s,e)=" ++ showAst (r,s,e) ) - else Anchor r UnchangedAnchor - +hackSrcSpanToAnchor (RealSrcSpan r mb) + = case mb of + (Strict.Just (BufSpan (BufPos s) (BufPos e))) -> + if s <= 0 && e <= 0 + -- then Anchor r (MovedAnchor (deltaPos (-s) (-e))) + then EpaDelta (deltaPos (-s) (-e)) [] + `debug` ("hackSrcSpanToAnchor: (r,s,e)=" ++ showAst (r,s,e) ) + -- else Anchor r UnchangedAnchor + else EpaSpan (RealSrcSpan r mb) + _ -> EpaSpan (RealSrcSpan r mb) + +-- TODO:AZ get rid of this hackAnchorToSrcSpan :: Anchor -> SrcSpan -hackAnchorToSrcSpan (Anchor r UnchangedAnchor) = RealSrcSpan r Strict.Nothing -hackAnchorToSrcSpan (Anchor r (MovedAnchor dp)) - = RealSrcSpan r (Strict.Just (BufSpan (BufPos s) (BufPos e))) - `debug` ("hackAnchorToSrcSpan: (r,dp,s,e)=" ++ showAst (r,dp,s,e) ) - where - s = - (getDeltaLine dp) - e = - (deltaColumn dp) +-- hackAnchorToSrcSpan (EpaSpan r _) = RealSrcSpan (setRealSrcSpanBufSpan r) Strict.Nothing +-- hackAnchorToSrcSpan (Anchor r (MovedAnchor dp)) +hackAnchorToSrcSpan (EpaSpan ss) = ss +hackAnchorToSrcSpan _ = error $ "hackAnchorToSrcSpan" - -- --------------------------------------------------------------------- +-- --------------------------------------------------------------------- + +orderedDeclsBinds + :: AnnSortKey [DeclTag] + -> [LHsDecl GhcPs] -> [LHsDecl GhcPs] + -> [LHsDecl GhcPs] +orderedDeclsBinds sortKey binds sigs = + case sortKey of + NoAnnSortKey -> + sortBy (\a b -> compare (realSrcSpan "orderedDecls" $ getLocA a) + (realSrcSpan "orderedDecls" $ getLocA b)) (binds ++ sigs) + AnnSortKey keys -> + let + go [] _ _ = [] + go (ValDTag:ks) (b:bs) ss = b : go ks bs ss + go (SigDTag:ks) bs (s:ss) = s : go ks bs ss + go (_:ks) bs ss = go ks bs ss + in + go keys binds sigs + +hsDeclsLocalBinds :: HsLocalBinds GhcPs -> [LHsDecl GhcPs] +hsDeclsLocalBinds lb = case lb of + HsValBinds _ (ValBinds sortKey bs sigs) -> + let + bds = map wrapDecl (bagToList bs) + sds = map wrapSig sigs + in + orderedDeclsBinds sortKey bds sds + HsValBinds _ (XValBindsLR _) -> error $ "hsDecls.XValBindsLR not valid" + HsIPBinds {} -> [] + EmptyLocalBinds {} -> [] + +hsDeclsValBinds :: (HsValBindsLR GhcPs GhcPs) -> [LHsDecl GhcPs] +hsDeclsValBinds (ValBinds sortKey bs sigs) = + let + bds = map wrapDecl (bagToList bs) + sds = map wrapSig sigs + in + orderedDeclsBinds sortKey bds sds +hsDeclsValBinds XValBindsLR{} = error "hsDeclsValBinds" + +-- --------------------------------------------------------------------- + +-- |Convert a 'LSig' into a 'LHsDecl' +wrapSig :: LSig GhcPs -> LHsDecl GhcPs +wrapSig (L l s) = L l (SigD NoExtField s) + +-- --------------------------------------------------------------------- + +-- |Convert a 'LHsBind' into a 'LHsDecl' +wrapDecl :: LHsBind GhcPs -> LHsDecl GhcPs +wrapDecl (L l s) = L l (ValD NoExtField s) +-- --------------------------------------------------------------------- showAst :: (Data a) => a -> String showAst ast diff --git a/utils/haddock b/utils/haddock -Subproject 03ba53ca764f56a13d12607c110f923f129e809 +Subproject 257d39f8593a8668d5b0165d77e21dee68a261c |