summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanielRrr <daniel.rogozin@serokell.io>2021-11-03 20:51:12 +0300
committerDanielRrr <daniel.rogozin@serokell.io>2022-07-23 15:35:47 +0300
commitad392e4bfc5d58461940d9c9b0e94ade8136e4bf (patch)
tree8f4328b0d005f0932e9e5a074513225f91355bd9
parenta45f961602c9bbe349c68de2071cb44c872fdadb (diff)
downloadhaskell-ad392e4bfc5d58461940d9c9b0e94ade8136e4bf.tar.gz
parser and renamer checkpoint
-rw-r--r--compiler/GHC/Parser/Types.hs2
-rw-r--r--compiler/Language/Haskell/Syntax/Pat.hs-boot3
2 files changed, 5 insertions, 0 deletions
diff --git a/compiler/GHC/Parser/Types.hs b/compiler/GHC/Parser/Types.hs
index a89472cc5f..53cb3d93fc 100644
--- a/compiler/GHC/Parser/Types.hs
+++ b/compiler/GHC/Parser/Types.hs
@@ -54,6 +54,7 @@ pprSumOrTuple boxity = \case
-- | See Note [Ambiguous syntactic categories] and Note [PatBuilder]
data PatBuilder p
= PatBuilderPat (Pat p)
+ | PatBuilderMatchPat (MatchPat p)
| PatBuilderPar (LHsToken "(" p) (LocatedA (PatBuilder p)) (LHsToken ")" p)
| PatBuilderApp (LocatedA (PatBuilder p)) (LocatedA (PatBuilder p))
| PatBuilderAppType (LocatedA (PatBuilder p)) (LHsToken "@" p) (HsPatSigType GhcPs)
@@ -68,6 +69,7 @@ data MatchPatBuilder p
instance Outputable (PatBuilder GhcPs) where
ppr (PatBuilderPat p) = ppr p
+ ppr (PatBuilderMatchPat p) = ppr p
ppr (PatBuilderPar _ (L _ p) _) = parens (ppr p)
ppr (PatBuilderApp (L _ p1) (L _ p2)) = ppr p1 <+> ppr p2
ppr (PatBuilderAppType (L _ p) _ t) = ppr p <+> text "@" <> ppr t
diff --git a/compiler/Language/Haskell/Syntax/Pat.hs-boot b/compiler/Language/Haskell/Syntax/Pat.hs-boot
index 4ff0371e39..29ec86565f 100644
--- a/compiler/Language/Haskell/Syntax/Pat.hs-boot
+++ b/compiler/Language/Haskell/Syntax/Pat.hs-boot
@@ -9,5 +9,8 @@ import Language.Haskell.Syntax.Extension ( XRec )
import Data.Kind
type role Pat nominal
+type role MatchPat nominal
data Pat (i :: Type)
type LPat i = XRec i (Pat i)
+data MatchPat i
+type LMatchPat i = XRec i (MatchPat i)