From: simonpj Date: Thu, 11 Mar 2004 14:29:59 +0000 (+0000) Subject: [project @ 2004-03-11 14:29:59 by simonpj] X-Git-Tag: Approx_11550_changesets_converted~7 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=d4b980043211a2b1e7a24a6efd9e21e9853dcde0;p=ghc-hetmet.git [project @ 2004-03-11 14:29:59 by simonpj] Add sanity check --- diff --git a/ghc/compiler/types/InstEnv.lhs b/ghc/compiler/types/InstEnv.lhs index cc75492..905cde2 100644 --- a/ghc/compiler/types/InstEnv.lhs +++ b/ghc/compiler/types/InstEnv.lhs @@ -299,7 +299,10 @@ lookup_inst_env env key_cls key_tys Nothing -- Does not match, so next check whether the things unify -- [see notes about overlapping instances above] - -> case unifyTyListsX (key_vars `unionVarSet` tpl_tyvars) key_tys tpl of + -> ASSERT( not (key_vars `intersectsVarSet` tpl_tyvars) ) + -- Unification will break badly if the variables overlap + -- They shouldn't because we allocate separate uniques for them + case unifyTyListsX (key_vars `unionVarSet` tpl_tyvars) key_tys tpl of Just _ -> find rest ms (dfun_id:us) Nothing -> find rest ms us