Skip to content
Snippets Groups Projects
Commit bca10d12 authored by Simon Peyton Jones's avatar Simon Peyton Jones
Browse files

[project @ 1999-07-26 15:22:38 by simonpj]

Fix type in tcMatch discovered by Keith
parent 40075824
No related branches found
No related tags found
No related merge requests found
...@@ -20,9 +20,9 @@ import TcHsSyn ( TcMatch, TcGRHSs, TcStmt ) ...@@ -20,9 +20,9 @@ import TcHsSyn ( TcMatch, TcGRHSs, TcStmt )
import TcMonad import TcMonad
import TcMonoType ( checkSigTyVars, tcHsTyVar, tcHsType, sigPatCtxt ) import TcMonoType ( checkSigTyVars, tcHsTyVar, tcHsType, sigPatCtxt )
import Inst ( Inst, LIE, plusLIE, emptyLIE, plusLIEs ) import Inst ( Inst, LIE, plusLIE, emptyLIE, plusLIEs )
import TcEnv ( tcExtendLocalValEnv, tcExtendGlobalTyVars, tcExtendTyVarEnv ) import TcEnv ( tcExtendLocalValEnv, tcExtendGlobalTyVars, tcExtendTyVarEnv, tcGetGlobalTyVars )
import TcPat ( tcPat, tcPatBndr_NoSigs, polyPatSig ) import TcPat ( tcPat, tcPatBndr_NoSigs, polyPatSig )
import TcType ( TcType, newTyVarTy, newTyVarTy_OpenKind ) import TcType ( TcType, newTyVarTy, newTyVarTy_OpenKind, zonkTcTyVars )
import TcBinds ( tcBindsAndThen ) import TcBinds ( tcBindsAndThen )
import TcSimplify ( tcSimplifyAndCheck, bindInstsOfLocalFuns ) import TcSimplify ( tcSimplifyAndCheck, bindInstsOfLocalFuns )
import TcUnify ( unifyFunTy, unifyTauTy ) import TcUnify ( unifyFunTy, unifyTauTy )
...@@ -135,7 +135,7 @@ tcMatch xve1 match@(Match sig_tvs pats maybe_rhs_sig grhss) expected_ty ctxt ...@@ -135,7 +135,7 @@ tcMatch xve1 match@(Match sig_tvs pats maybe_rhs_sig grhss) expected_ty ctxt
returnTc match_and_lie returnTc match_and_lie
else else
-- If there are sig tve we must be careful *not* to use -- If there are sig tvs we must be careful *not* to use
-- expected_ty right away, else we'll unify with tyvars free -- expected_ty right away, else we'll unify with tyvars free
-- in the envt. So invent a fresh tyvar and use that instead -- in the envt. So invent a fresh tyvar and use that instead
newTyVarTy_OpenKind `thenNF_Tc` \ tyvar_ty -> newTyVarTy_OpenKind `thenNF_Tc` \ tyvar_ty ->
...@@ -158,7 +158,7 @@ tcMatch xve1 match@(Match sig_tvs pats maybe_rhs_sig grhss) expected_ty ctxt ...@@ -158,7 +158,7 @@ tcMatch xve1 match@(Match sig_tvs pats maybe_rhs_sig grhss) expected_ty ctxt
returnTc match_and_lie returnTc match_and_lie
where where
tc_match expexted_ty -- Any sig tyvars are in scope by now tc_match expected_ty -- Any sig tyvars are in scope by now
= -- STEP 1: Typecheck the patterns = -- STEP 1: Typecheck the patterns
tcMatchPats pats expected_ty `thenTc` \ (rhs_ty, pats', lie_req1, ex_tvs, pat_bndrs, lie_avail) -> tcMatchPats pats expected_ty `thenTc` \ (rhs_ty, pats', lie_req1, ex_tvs, pat_bndrs, lie_avail) ->
let let
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment