Fix Trac #8028.
authorRichard Eisenberg <eir@cis.upenn.edu>
Tue, 2 Jul 2013 20:07:07 +0000 (21:07 +0100)
committerRichard Eisenberg <eir@cis.upenn.edu>
Tue, 2 Jul 2013 20:26:17 +0000 (21:26 +0100)
Check for an empty list of equations when converting
a closed type family from TH to an HsDecl.

compiler/hsSyn/Convert.lhs

index a07fafe..f7d5bdb 100644 (file)
@@ -251,10 +251,13 @@ cvtDec (TySynInstD tc eqn)
                                         , tfid_fvs = placeHolderNames } } }
 
 cvtDec (ClosedTypeFamilyD tc tyvars mkind eqns)
+  | not $ null eqns
   = do { (_, tc', tvs') <- cvt_tycl_hdr [] tc tyvars
        ; mkind' <- cvtMaybeKind mkind
        ; eqns' <- mapM (cvtTySynEqn tc') eqns
        ; returnL $ TyClD (FamDecl (FamilyDecl (ClosedTypeFamily eqns') tc' tvs' mkind')) }
+  | otherwise
+  = failWith (ptext (sLit "Illegal empty closed type family"))
 ----------------
 cvtTySynEqn :: Located RdrName -> TySynEqn -> CvtM (LTyFamInstEqn RdrName)
 cvtTySynEqn tc (TySynEqn lhs rhs)