[commit: ghc] type-holes-branch: Fix another error with unification. (5fb4f16)

Simon Peyton Jones <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : type-holes-branch

http://hackage.haskell.org/trac/ghc/changeset/5fb4f1686432105d2f470660a0b336595f52b23b

>---------------------------------------------------------------

commit 5fb4f1686432105d2f470660a0b336595f52b23b
Author: Thijs Alkemade <[email protected]>
Date:   Wed Feb 15 21:18:21 2012 +0100

    Fix another error with unification.
    
    Type variables of holes are never surely free.

>---------------------------------------------------------------

 compiler/typecheck/TcSimplify.lhs |    1 +
 compiler/typecheck/TcType.lhs     |    2 +-
 compiler/types/Type.lhs           |    2 +-
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/compiler/typecheck/TcSimplify.lhs b/compiler/typecheck/TcSimplify.lhs
index 39a0ab7..65c83cc 100644
--- a/compiler/typecheck/TcSimplify.lhs
+++ b/compiler/typecheck/TcSimplify.lhs
@@ -472,6 +472,7 @@ quantifyMe :: TyVarSet      -- Quantifying over these
 	   -> Bool	    -- True <=> quantify over this wanted
 quantifyMe qtvs ct
   | isIPPred pred = True  -- Note [Inheriting implicit parameters]
+  | isHolePred pred = True
   | otherwise	  = tyVarsOfType pred `intersectsVarSet` qtvs
   where
     pred = ctPred ct
diff --git a/compiler/typecheck/TcType.lhs b/compiler/typecheck/TcType.lhs
index ebd03f4..d6ef8f0 100644
--- a/compiler/typecheck/TcType.lhs
+++ b/compiler/typecheck/TcType.lhs
@@ -130,7 +130,7 @@ module TcType (
   mkTyVarTy, mkTyVarTys, mkTyConTy,
 
   isClassPred, isEqPred, isIPPred,
-  mkClassPred, mkIPPred,
+  mkClassPred, mkIPPred, isHolePred,
   isDictLikeTy,
   tcSplitDFunTy, tcSplitDFunHead, 
   mkEqPred,
diff --git a/compiler/types/Type.lhs b/compiler/types/Type.lhs
index 133b238..628c325 100644
--- a/compiler/types/Type.lhs
+++ b/compiler/types/Type.lhs
@@ -50,7 +50,7 @@ module Type (
 	isDictLikeTy,
         mkEqPred, mkClassPred,
 	mkIPPred, mkHolePred,
-        noParenPred, isClassPred, isEqPred, isIPPred,
+        noParenPred, isClassPred, isEqPred, isIPPred, isHolePred,
         mkPrimEqType,
 
         -- Deconstructing predicate types
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.