Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : type-holes-branch

http://hackage.haskell.org/trac/ghc/changeset/e9ea7a631fc16054612c6e5b628827e27197ed0f

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

commit e9ea7a631fc16054612c6e5b628827e27197ed0f
Author: Thijs Alkemade <[email protected]>
Date:   Thu Jan 5 22:50:24 2012 +0100

    In the same way as pprTypeForUser, correctly strip foralls.

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

 compiler/typecheck/TcRnDriver.lhs |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/compiler/typecheck/TcRnDriver.lhs 
b/compiler/typecheck/TcRnDriver.lhs
index 7f4b390..2cf0979 100644
--- a/compiler/typecheck/TcRnDriver.lhs
+++ b/compiler/typecheck/TcRnDriver.lhs
@@ -1448,15 +1448,16 @@ tcRnExpr hsc_env ictxt rdr_expr
     
     (_, l) <- getEnvs ;
     holes <- readTcRef $ tcl_holes l ;
-    zonked_holes <- mapM (\(s, ty) -> liftM (\t -> (s, mkForAllTys qtvs t)) $ 
zonkTcType ty)
-                               $ Map.toList $ Map.map (\ty -> mkPiTypes dicts 
ty) $ holes ;
+    zonked_holes <- mapM (\(s, ty) -> liftM (\t -> (s, t)) $ zonkTcType ty)
+                               $ Map.toList $ Map.map (\ty -> mkForAllTys qtvs 
$ mkPiTypes dicts ty) $ holes ;
     let { (env, tys) = foldr tidy (emptyTidyEnv, []) zonked_holes } ;
-    liftIO $ putStrLn ("tcRnExpr2: " ++ (showSDoc $ ppr $ tys)) ;
+    liftIO $ putStrLn ("tcRnExpr2: " ++ (showSDoc $ ppr $ map (\(s, t) -> (s, 
split t)) tys)) ;
     liftIO $ putStrLn ("tcRnExpr3: " ++ (showSDoc $ ppr env)) ;
 
     return $ snd $ tidyOpenType env result
     }
     where tidy (s, ty) (env, tys) = let (env', ty') = tidyOpenType env ty in 
(env', (s, ty') : tys)
+          split t = let (_, ctxt, ty') = tcSplitSigmaTy $ tidyTopType t in 
mkPhiTy ctxt ty'
 
 --------------------------
 tcRnImportDecls :: HscEnv



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to