aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsimonmar <unknown>2002-04-10 16:10:26 +0000
committersimonmar <unknown>2002-04-10 16:10:26 +0000
commitbb8560a1c47490cbe1ed348ce047ecbb9dcc3e19 (patch)
treecceab38cad78d4a4d77d5ecbc74d26a641bfc653
parent76bd7b3484f8a6353736437f0b7fb0c1cdf199b6 (diff)
[haddock @ 2002-04-10 16:10:26 by simonmar]
Now we understand (or at least don't barf on) type signatures in patterns such as you might find when scoped type variables are in use.
-rw-r--r--src/HsParseUtils.lhs4
-rw-r--r--src/HsSyn.lhs3
2 files changed, 5 insertions, 2 deletions
diff --git a/src/HsParseUtils.lhs b/src/HsParseUtils.lhs
index 359cae14..3d795837 100644
--- a/src/HsParseUtils.lhs
+++ b/src/HsParseUtils.lhs
@@ -1,5 +1,5 @@
-----------------------------------------------------------------------------
--- $Id: HsParseUtils.lhs,v 1.1 2002/04/04 16:23:43 simonmar Exp $
+-- $Id: HsParseUtils.lhs,v 1.2 2002/04/10 16:10:26 simonmar Exp $
--
-- (c) The GHC Team 1997-2000
--
@@ -121,6 +121,8 @@ checkPat e [] = case e of
HsRecConstr c fs -> mapP checkPatField fs `thenP` \fs ->
returnP (HsPRec c fs)
HsNegApp (HsLit l) -> returnP (HsPNeg (HsPLit l))
+ HsExpTypeSig l e ty -> checkPat e [] `thenP` \e ->
+ returnP (HsPTypeSig e ty)
_ -> patFail
checkPat _ _ = patFail
diff --git a/src/HsSyn.lhs b/src/HsSyn.lhs
index c7c0e455..852f9fc1 100644
--- a/src/HsSyn.lhs
+++ b/src/HsSyn.lhs
@@ -1,5 +1,5 @@
% -----------------------------------------------------------------------------
-% $Id: HsSyn.lhs,v 1.1 2002/04/04 16:23:43 simonmar Exp $
+% $Id: HsSyn.lhs,v 1.2 2002/04/10 16:10:26 simonmar Exp $
%
% (c) The GHC Team, 1997-2002
%
@@ -228,6 +228,7 @@ data HsPat
| HsPAsPat HsName HsPat
| HsPWildCard
| HsPIrrPat HsPat
+ | HsPTypeSig HsPat HsType
deriving (Eq,Show)
data HsPatField