projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add bang patterns
[ghc-hetmet.git]
/
ghc
/
compiler
/
typecheck
/
TcHsSyn.lhs
diff --git
a/ghc/compiler/typecheck/TcHsSyn.lhs
b/ghc/compiler/typecheck/TcHsSyn.lhs
index
4289c2c
..
c938a76
100644
(file)
--- a/
ghc/compiler/typecheck/TcHsSyn.lhs
+++ b/
ghc/compiler/typecheck/TcHsSyn.lhs
@@
-78,6
+78,7
@@
pat_type (ParPat pat) = hsPatType pat
pat_type (WildPat ty) = ty
pat_type (VarPat var) = idType var
pat_type (VarPatOut var _) = idType var
pat_type (WildPat ty) = ty
pat_type (VarPat var) = idType var
pat_type (VarPatOut var _) = idType var
+pat_type (BangPat pat) = hsPatType pat
pat_type (LazyPat pat) = hsPatType pat
pat_type (LitPat lit) = hsLitType lit
pat_type (AsPat var pat) = idType (unLoc var)
pat_type (LazyPat pat) = hsPatType pat
pat_type (LitPat lit) = hsLitType lit
pat_type (AsPat var pat) = idType (unLoc var)
@@
-713,6
+714,10
@@
zonk_pat env (LazyPat pat)
= do { (env', pat') <- zonkPat env pat
; return (env', LazyPat pat') }
= do { (env', pat') <- zonkPat env pat
; return (env', LazyPat pat') }
+zonk_pat env (BangPat pat)
+ = do { (env', pat') <- zonkPat env pat
+ ; return (env', BangPat pat') }
+
zonk_pat env (AsPat (L loc v) pat)
= do { v' <- zonkIdBndr env v
; (env', pat') <- zonkPat (extendZonkEnv1 env v') pat
zonk_pat env (AsPat (L loc v) pat)
= do { v' <- zonkIdBndr env v
; (env', pat') <- zonkPat (extendZonkEnv1 env v') pat