From: simonpj Date: Wed, 5 Jan 2005 17:49:38 +0000 (+0000) Subject: [project @ 2005-01-05 17:49:38 by simonpj] X-Git-Tag: Initial_conversion_from_CVS_complete~1296 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=c82fa23e85ccb3fd6224fd446811a773cf6028c1;p=ghc-hetmet.git [project @ 2005-01-05 17:49:38 by simonpj] Add assert --- diff --git a/ghc/compiler/types/InstEnv.lhs b/ghc/compiler/types/InstEnv.lhs index 5b41bf9..46ab2cb 100644 --- a/ghc/compiler/types/InstEnv.lhs +++ b/ghc/compiler/types/InstEnv.lhs @@ -322,7 +322,13 @@ lookup_inst_env env key_cls key_tys key_all_tvs Nothing -- Does not match, so next check whether the things unify -- [see notes about overlapping instances above] - -> case tcUnifyTys bind_fn tpl key_tys of + -> ASSERT2( not (tyVarsOfTypes key_tys `intersectsVarSet` tpl_tyvars), + (ppr key_cls <+> ppr key_tys <+> ppr key_all_tvs) $$ + (ppr dfun_id <+> ppr tpl_tyvars <+> ppr tpl) + ) + -- Unification will break badly if the variables overlap + -- They shouldn't because we allocate separate uniques for them + case tcUnifyTys bind_fn tpl key_tys of Just _ -> find rest ms (dfun_id:us) Nothing -> find rest ms us