From d5659c2d96547d10aaf4227f0ecc5b10ada4e0f9 Mon Sep 17 00:00:00 2001 From: "simonpj@microsoft.com" Date: Tue, 20 Nov 2007 11:17:23 +0000 Subject: [PATCH] FIX #1715: egregious bug in ifaceDeclSubBndrs ifaceDeclSubBndrs didn't have an IfaceSyn case; but with type families an IfaceSyn can introduce subordinate binders. Result: chaos. The fix is easy though. Merge to 6.8 branch. --- compiler/iface/IfaceSyn.lhs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/iface/IfaceSyn.lhs b/compiler/iface/IfaceSyn.lhs index 44ce235..cee586f 100644 --- a/compiler/iface/IfaceSyn.lhs +++ b/compiler/iface/IfaceSyn.lhs @@ -412,7 +412,11 @@ ifaceDeclSubBndrs (IfaceClass {ifCtxt = sc_ctxt, ifName = cls_occ, dcww_occ = mkDataConWorkerOcc dc_occ is_newtype = n_sigs + n_ctxt == 1 -- Sigh -ifaceDeclSubBndrs _other = [] +ifaceDeclSubBndrs (IfaceSyn {ifName = tc_occ, + ifFamInst = famInst}) + = famInstCo famInst tc_occ + +ifaceDeclSubBndrs _ = [] -- coercion for data/newtype family instances famInstCo Nothing baseOcc = [] -- 1.7.10.4