Re-jig simplifySuperClass (again)
authorsimonpj@microsoft.com <unknown>
Thu, 2 Dec 2010 12:35:47 +0000 (12:35 +0000)
committersimonpj@microsoft.com <unknown>
Thu, 2 Dec 2010 12:35:47 +0000 (12:35 +0000)
commit5723262f616ac02ddf637f6ff480a599c737ea0d
tree33b118dccc94a129b9b56d157b9e60a4a90242fa
parentfbb99e831a0c0510e79b2f0c91bbdffd142ea951
Re-jig simplifySuperClass (again)

This fixes the current loop in T3731, and will fix other
reported loops.  The loops show up when we are generating
evidence for superclasses in an instance declaration.

The trick is to make the "self" dictionary simplifySuperClass
depend *explicitly* on the superclass we are currently trying
to build.  See Note [Dependencies in self dictionaries] in TcSimplify.

That in turn means that EvDFunApp needs a dependency-list, used
when chasing dependencies in isGoodRecEv.
compiler/deSugar/DsBinds.lhs
compiler/hsSyn/HsBinds.lhs
compiler/typecheck/TcCanonical.lhs
compiler/typecheck/TcHsSyn.lhs
compiler/typecheck/TcInstDcls.lhs
compiler/typecheck/TcInteract.lhs
compiler/typecheck/TcSMonad.lhs
compiler/typecheck/TcSimplify.lhs
compiler/typecheck/TcType.lhs