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

On branch  : ghc-new-flavor

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

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

commit e3e740d972daef08e50235b2fb511b525b8dfe75
Author: Dimitrios.Vytiniotis <[email protected]>
Date:   Wed Apr 4 12:54:11 2012 +0100

    Wibble: using original type for the dictionary if it has not changed (to 
preserve synonyms)

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

 compiler/typecheck/TcCanonical.lhs |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/compiler/typecheck/TcCanonical.lhs 
b/compiler/typecheck/TcCanonical.lhs
index 6bb6e99..b24f76c 100644
--- a/compiler/typecheck/TcCanonical.lhs
+++ b/compiler/typecheck/TcCanonical.lhs
@@ -309,10 +309,13 @@ canClass d fl cls tys
              xi = mkClassPred cls xis
              
        ; mb <- rewriteCtFlavor fl xi co
+
        ; case mb of
-           Just new_fl -> continueWith $ 
-                          CDictCan { cc_flavor = new_fl
-                                   , cc_tyargs = xis, cc_class = cls, cc_depth 
= d }
+           Just new_fl -> 
+             let (ClassPred cls xis_for_dict) = classifyPredType (ctFlavPred 
new_fl)
+             in continueWith $ 
+                CDictCan { cc_flavor = new_fl
+                         , cc_tyargs = xis_for_dict, cc_class = cls, cc_depth 
= d }
            Nothing -> return Stop }
 
 emitSuperclasses :: Ct -> TcS StopOrContinue



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

Reply via email to