summaryrefslogtreecommitdiff
path: root/compiler/GHC/Rename/Pat.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Rename/Pat.hs')
-rw-r--r--compiler/GHC/Rename/Pat.hs8
1 files changed, 7 insertions, 1 deletions
diff --git a/compiler/GHC/Rename/Pat.hs b/compiler/GHC/Rename/Pat.hs
index d2bbb3bbef..426ce97e6b 100644
--- a/compiler/GHC/Rename/Pat.hs
+++ b/compiler/GHC/Rename/Pat.hs
@@ -44,6 +44,7 @@ import {-# SOURCE #-} GHC.Rename.Expr ( rnLExpr )
import {-# SOURCE #-} GHC.Rename.Splice ( rnSplicePat )
import GHC.Hs
+import GHC.Hs.Pat ( patHasTyAppsL )
import GHC.Tc.Errors.Types
import GHC.Tc.Utils.Monad
import GHC.Tc.Utils.Zonk ( hsOverLitName )
@@ -612,7 +613,12 @@ rnPatAndThen mk (TuplePat _ pats boxed)
rnPatAndThen mk (OrPat _ pats)
= do { pats' <- rnLPatsAndThen mk pats
- ; return (OrPat noExtField pats') }
+ ; let orpat :: Pat GhcRn = OrPat noExtField pats'
+ ; let varBnds = collectPatsBinders CollNoDictBinders pats
+ -- mapM_ (\(b,i) -> pprTraceM ("bnds " ++ show i) b) (zip (map ppr bnds) [0..])
+ ; liftCps $ checkErr (null varBnds) (TcRnOrPatBindsVariables orpat)
+ ; liftCps $ checkErr (not $ any patHasTyAppsL pats) (TcRnOrPatHasVisibleTyApps orpat)
+ ; return orpat }
rnPatAndThen mk (SumPat _ pat alt arity)
= do { pat <- rnLPatAndThen mk pat