diff options
author | DanielRrr <daniel.rogozin@serokell.io> | 2021-11-03 20:51:12 +0300 |
---|---|---|
committer | DanielRrr <daniel.rogozin@serokell.io> | 2022-07-23 15:35:47 +0300 |
commit | ad392e4bfc5d58461940d9c9b0e94ade8136e4bf (patch) | |
tree | 8f4328b0d005f0932e9e5a074513225f91355bd9 | |
parent | a45f961602c9bbe349c68de2071cb44c872fdadb (diff) | |
download | haskell-ad392e4bfc5d58461940d9c9b0e94ade8136e4bf.tar.gz |
parser and renamer checkpoint
-rw-r--r-- | compiler/GHC/Parser/Types.hs | 2 | ||||
-rw-r--r-- | compiler/Language/Haskell/Syntax/Pat.hs-boot | 3 |
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) |