summaryrefslogtreecommitdiff
path: root/compiler/deSugar/MatchCon.lhs
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2010-09-13 09:50:48 +0000
committersimonpj@microsoft.com <unknown>2010-09-13 09:50:48 +0000
commitd2ce0f52d42edf32bb9f13796e6ba6edba8bd516 (patch)
tree1a0792f7eb186fa3d71a02f4a21da3daae3466bb /compiler/deSugar/MatchCon.lhs
parent0084ab49ab3c0123c4b7f9523d092af45bccfd41 (diff)
downloadhaskell-d2ce0f52d42edf32bb9f13796e6ba6edba8bd516.tar.gz
Super-monster patch implementing the new typechecker -- at last
This major patch implements the new OutsideIn constraint solving algorithm in the typecheker, following our JFP paper "Modular type inference with local assumptions". Done with major help from Dimitrios Vytiniotis and Brent Yorgey.
Diffstat (limited to 'compiler/deSugar/MatchCon.lhs')
-rw-r--r--compiler/deSugar/MatchCon.lhs6
1 files changed, 2 insertions, 4 deletions
diff --git a/compiler/deSugar/MatchCon.lhs b/compiler/deSugar/MatchCon.lhs
index 9ec7f35706..03fa325651 100644
--- a/compiler/deSugar/MatchCon.lhs
+++ b/compiler/deSugar/MatchCon.lhs
@@ -23,8 +23,6 @@ import HsSyn
import DsBinds
import DataCon
import TcType
-import CoreSyn
-import MkCore
import DsMonad
import DsUtils
import Util ( all2, takeList, zipEqual )
@@ -140,10 +138,10 @@ matchOneCon vars ty (eqn1 : eqns) -- All eqns for a single constructor
shift (_, eqn@(EqnInfo { eqn_pats = ConPatOut{ pat_tvs = tvs, pat_dicts = ds,
pat_binds = bind, pat_args = args
} : pats }))
- = do { prs <- dsLHsBinds bind
+ = do { ds_ev_binds <- dsTcEvBinds bind
; return (wrapBinds (tvs `zip` tvs1)
. wrapBinds (ds `zip` dicts1)
- . mkCoreLet (Rec prs),
+ . wrapDsEvBinds ds_ev_binds,
eqn { eqn_pats = conArgPats arg_tys args ++ pats }) }
-- Choose the right arg_vars in the right order for this group