summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2008-03-19 18:25:21 +0000
committerTim Chevalier <chevalier@alum.wellesley.edu>2008-03-19 18:25:21 +0000
commitd5a9ee0e98a76bca1b41bbc5252e851c88b3ff4c (patch)
treefec01e639ee2a1e235b9a35743058a4796d9c022
parent1db2786d0faecf3dd08921c4ba593c5afeee9f2b (diff)
downloadhaskell-d5a9ee0e98a76bca1b41bbc5252e851c88b3ff4c.tar.gz
Fixed remaining warning in coreSyn/MkExternalCore
There was a (suppressed) warning about an incomplete pattern match in make_alt. This was because the DEFAULT alt never has variable bindings. I thought it would be better to check that case and panic if it happens than to have an incomplete pattern. It's still not great, but at least now we don't have to suppress any warnings in this file.
-rw-r--r--compiler/coreSyn/MkExternalCore.lhs16
1 files changed, 7 insertions, 9 deletions
diff --git a/compiler/coreSyn/MkExternalCore.lhs b/compiler/coreSyn/MkExternalCore.lhs
index 78008e1647..faa6bb9976 100644
--- a/compiler/coreSyn/MkExternalCore.lhs
+++ b/compiler/coreSyn/MkExternalCore.lhs
@@ -2,13 +2,6 @@
% (c) The University of Glasgow 2001-2006
%
\begin{code}
-{-# OPTIONS -fno-warn-incomplete-patterns #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and fix
--- any warnings in the module. See
--- http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
--- for details
-
module MkExternalCore (
emitExternalCore
) where
@@ -138,8 +131,13 @@ make_alt (DataAlt dcon, vs, e) =
(map make_vbind vbs)
(make_exp e)
where (tbs,vbs) = span isTyVar vs
-make_alt (LitAlt l,_,e) = C.Alit (make_lit l) (make_exp e)
-make_alt (DEFAULT,[],e) = C.Adefault (make_exp e)
+make_alt (LitAlt l,_,e) = C.Alit (make_lit l) (make_exp e)
+make_alt (DEFAULT,[],e) = C.Adefault (make_exp e)
+-- This should never happen, as the DEFAULT alternative binds no variables,
+-- but we might as well check for it:
+make_alt a@(DEFAULT,_ ,_) = pprPanic ("MkExternalCore: make_alt: DEFAULT "
+ ++ "alternative had a non-empty var list") (ppr a)
+
make_lit :: Literal -> C.Lit
make_lit l =