diff --git a/compiler/GHC/Parser/Annotation.hs b/compiler/GHC/Parser/Annotation.hs index de074daad0e9d170077bd1e594bf8e4d6d8b257b..2728a7d4c11adbb798583f04abd154ffc43d4580 100644 --- a/compiler/GHC/Parser/Annotation.hs +++ b/compiler/GHC/Parser/Annotation.hs @@ -1393,7 +1393,7 @@ instance (Semigroup a) => Semigroup (EpAnn a) where -- annotations must follow it. So we combine them which yields the -- largest span -instance Semigroup Anchor where +instance Semigroup EpaLocation where EpaSpan s1 m1 <> EpaSpan s2 m2 = EpaSpan (combineRealSrcSpans s1 s2) (liftA2 combineBufSpans m1 m2) EpaSpan s1 m1 <> _ = EpaSpan s1 m1 _ <> EpaSpan s2 m2 = EpaSpan s2 m2 diff --git a/utils/check-exact/Orphans.hs b/utils/check-exact/Orphans.hs index c4e04ef5c0b16286e49639a3d1bac712360a0084..4d5a50a96a724dcc8f15025a50e1c579398be0ad 100644 --- a/utils/check-exact/Orphans.hs +++ b/utils/check-exact/Orphans.hs @@ -5,65 +5,61 @@ module Orphans where import GHC hiding (EpaComment) --- --------------------------------------------------------------------- --- Orphan NoAnn instances. See https://gitlab.haskell.org/ghc/ghc/-/issues/20372 +-- -- --------------------------------------------------------------------- instance NoAnn [a] where noAnn = [] -instance NoAnn AnnPragma where - noAnn = AnnPragma noAnn noAnn noAnn - -instance NoAnn EpAnnImportDecl where - noAnn = EpAnnImportDecl noAnn Nothing Nothing Nothing Nothing Nothing +instance (NoAnn a, NoAnn b) => NoAnn (a, b) where + noAnn = (noAnn, noAnn) -instance NoAnn AnnParen where - noAnn = AnnParen AnnParens noAnn noAnn +instance NoAnn EpaLocation where + noAnn = EpaDelta (SameLine 0) [] -instance NoAnn HsRuleAnn where - noAnn = HsRuleAnn Nothing Nothing noAnn +instance NoAnn EpAnnSumPat where + noAnn = EpAnnSumPat [] [] [] -instance NoAnn AnnSig where - noAnn = AnnSig noAnn noAnn +instance NoAnn AnnPragma where + noAnn = AnnPragma noAnn noAnn [] -instance NoAnn GrhsAnn where - noAnn = GrhsAnn Nothing noAnn +instance NoAnn AddEpAnn where + noAnn = AddEpAnn noAnn noAnn -instance NoAnn EpAnnUnboundVar where - noAnn = EpAnnUnboundVar noAnn noAnn +instance NoAnn AnnKeywordId where + noAnn = Annlarrowtail {- gotta pick one -} -instance (NoAnn a, NoAnn b) => NoAnn (a, b) where - noAnn = (noAnn, noAnn) +instance NoAnn AnnParen where + noAnn = AnnParen AnnParens noAnn noAnn -instance NoAnn AnnExplicitSum where - noAnn = AnnExplicitSum noAnn noAnn noAnn noAnn +instance NoAnn AnnsIf where + noAnn = AnnsIf noAnn noAnn noAnn Nothing Nothing instance NoAnn EpAnnHsCase where noAnn = EpAnnHsCase noAnn noAnn noAnn -instance NoAnn AnnsIf where - noAnn = AnnsIf noAnn noAnn noAnn noAnn noAnn - -instance NoAnn (Maybe a) where - noAnn = Nothing +instance NoAnn AnnFieldLabel where + noAnn = AnnFieldLabel Nothing instance NoAnn AnnProjection where noAnn = AnnProjection noAnn noAnn -instance NoAnn AnnFieldLabel where - noAnn = AnnFieldLabel Nothing +instance NoAnn AnnExplicitSum where + noAnn = AnnExplicitSum noAnn noAnn noAnn noAnn -instance NoAnn EpaLocation where - noAnn = EpaDelta (SameLine 0) [] +instance NoAnn EpAnnUnboundVar where + noAnn = EpAnnUnboundVar noAnn noAnn -instance NoAnn AddEpAnn where - noAnn = AddEpAnn noAnn noAnn +instance NoAnn GrhsAnn where + noAnn = GrhsAnn Nothing noAnn -instance NoAnn AnnKeywordId where - noAnn = Annlarrowtail {- gotta pick one -} +instance NoAnn HsRuleAnn where + noAnn = HsRuleAnn Nothing Nothing noAnn -instance NoAnn EpAnnSumPat where - noAnn = EpAnnSumPat noAnn noAnn noAnn +instance NoAnn AnnSig where + noAnn = AnnSig noAnn noAnn + +instance NoAnn EpAnnImportDecl where + noAnn = EpAnnImportDecl noAnn Nothing Nothing Nothing Nothing Nothing instance NoAnn AnnsModule where - noAnn = AnnsModule [] mempty Nothing + noAnn = AnnsModule [] [] Nothing