Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : tc-untouchables
http://hackage.haskell.org/trac/ghc/changeset/b493d397261572df1e28dc4e4ae4e9e3f446f2b1 >--------------------------------------------------------------- commit b493d397261572df1e28dc4e4ae4e9e3f446f2b1 Author: Simon Peyton Jones <[email protected]> Date: Mon Sep 3 18:46:45 2012 +0100 When defaulting, check for *meta* tyvars I'd forgotten that we can have runtime skolems (TcTyVarDetails = RuntimeUnk), and we definitely don't want to attempt to default them! >--------------------------------------------------------------- compiler/typecheck/TcSimplify.lhs | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/compiler/typecheck/TcSimplify.lhs b/compiler/typecheck/TcSimplify.lhs index e749570..7b6a0de 100644 --- a/compiler/typecheck/TcSimplify.lhs +++ b/compiler/typecheck/TcSimplify.lhs @@ -1183,7 +1183,9 @@ in the cache! \begin{code} applyTyVarDefaulting :: WantedConstraints -> TcS () applyTyVarDefaulting wc - = do { let tvs = varSetElems (tyVarsOfWC wc) + = do { let tvs = filter isMetaTyVar (varSetElems (tyVarsOfWC wc)) + -- We might have runtime-skolems in GHCi, and + -- we definitely don't want to try to assign to those! ; traceTcS "applyTyVarDefaulting {" (ppr tvs) ; mapM_ defaultTyVar tvs ; traceTcS "applyTyVarDefaulting end }" empty } @@ -1250,6 +1252,8 @@ findDefaultableGroups (default_tys, (ovl_strings, extended_defaults)) wanteds find_unary cc | Just (cls,[ty]) <- getClassPredTys_maybe (ctPred cc) , Just tv <- tcGetTyVar_maybe ty + , isMetaTyVar tv -- We might have runtime-skolems in GHCi, and + -- we definitely don't want to try to assign to those! = Left (cc, cls, tv) find_unary cc = Right cc -- Non unary or non dictionary _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
