summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Eisenberg <eir@cis.upenn.edu>2013-07-02 21:07:07 +0100
committerRichard Eisenberg <eir@cis.upenn.edu>2013-07-02 21:26:17 +0100
commit67aacde3c9ec04b6e8e8e1d921001b218eb5244f (patch)
tree71699de766071cacda31e86c211a2bf5a6a3faf6
parent1ae72ac45e51e63cbf6f3d627d77acc6a36aa0f9 (diff)
downloadhaskell-67aacde3c9ec04b6e8e8e1d921001b218eb5244f.tar.gz
Fix Trac #8028.
Check for an empty list of equations when converting a closed type family from TH to an HsDecl.
-rw-r--r--compiler/hsSyn/Convert.lhs3
1 files changed, 3 insertions, 0 deletions
diff --git a/compiler/hsSyn/Convert.lhs b/compiler/hsSyn/Convert.lhs
index a07fafe00d..f7d5bdb084 100644
--- a/compiler/hsSyn/Convert.lhs
+++ b/compiler/hsSyn/Convert.lhs
@@ -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)