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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/7ca27dce4943ae3b99dd97d1cb5d51863a9a8b02

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

commit 7ca27dce4943ae3b99dd97d1cb5d51863a9a8b02
Author: Max Bolingbroke <[email protected]>
Date:   Sun Sep 11 17:09:31 2011 +0100

    Fix associated type default instantiation check (#5481)

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

 compiler/typecheck/TcTyClsDecls.lhs |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/compiler/typecheck/TcTyClsDecls.lhs 
b/compiler/typecheck/TcTyClsDecls.lhs
index b8a376b..5614116 100644
--- a/compiler/typecheck/TcTyClsDecls.lhs
+++ b/compiler/typecheck/TcTyClsDecls.lhs
@@ -618,12 +618,12 @@ tcDefaultAssocDecl fam_tc clas_tvs (L loc decl)
        -- See Note [Checking consistent instantiation]
        -- We only want to check this on the *class* TyVars,
        -- not the *family* TyVars (there may be more of these)
-       ; zipWithM_ check_arg clas_tvs at_tys
+       ; zipWithM_ check_arg (tyConTyVars fam_tc) at_tys
 
        ; return (ATD at_tvs at_tys at_rhs) }
   where
     check_arg fam_tc_tv at_ty
-      = checkTc (mkTyVarTy fam_tc_tv `eqType` at_ty) 
+      = checkTc (not (fam_tc_tv `elem` clas_tvs) || mkTyVarTy fam_tc_tv 
`eqType` at_ty) 
                 (wrongATArgErr at_ty (mkTyVarTy fam_tc_tv))
 
 -------------------------



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

Reply via email to