Add -XEmptyDataDecls flag
authorIan Lynagh <igloo@earth.li>
Sun, 8 Jul 2007 11:29:07 +0000 (11:29 +0000)
committerIan Lynagh <igloo@earth.li>
Sun, 8 Jul 2007 11:29:07 +0000 (11:29 +0000)
compiler/main/DynFlags.hs
compiler/typecheck/TcTyClsDecls.lhs

index e0aca33..1d19f8e 100644 (file)
@@ -184,6 +184,7 @@ data DynFlag
    | Opt_GADTs
    | Opt_RelaxedPolyRec                        -- -X=RelaxedPolyRec
    | Opt_MagicHash
+   | Opt_EmptyDataDecls
 
    -- optimisation opts
    | Opt_Strictness
@@ -1094,6 +1095,7 @@ fFlags = [
 xFlags :: [(String, DynFlag)]
 xFlags = [
   ( "MagicHash",                        Opt_MagicHash ),
+  ( "EmptyDataDecls",                   Opt_EmptyDataDecls ),
   ( "FI",                              Opt_FFI ),  -- support `-ffi'...
   ( "FFI",                             Opt_FFI ),  -- ...and also `-fffi'
   ( "ForeignFunctionInterface",                Opt_FFI ),
@@ -1138,6 +1140,7 @@ glasgowExtsFlags = [ Opt_GlasgowExts
                   , Opt_ImplicitParams 
                   , Opt_ScopedTypeVariables
                   , Opt_MagicHash
+           , Opt_EmptyDataDecls
                   , Opt_TypeFamilies ]
 
 ------------------
index 3d2e4ba..9c4b5b2 100644 (file)
@@ -694,6 +694,7 @@ tcTyClDecl1 calc_isrec
   ; want_generic <- doptM Opt_Generics
   ; unbox_strict <- doptM Opt_UnboxStrictFields
   ; gla_exts     <- doptM Opt_GlasgowExts
+  ; empty_data_decls <- doptM Opt_EmptyDataDecls
   ; gadt_ok      <- doptM Opt_GADTs
   ; is_boot     <- tcIsHsBoot  -- Are we compiling an hs-boot file?
 
@@ -707,8 +708,8 @@ tcTyClDecl1 calc_isrec
   ; checkTc (null stupid_theta || h98_syntax) (badStupidTheta tc_name)
 
        -- Check that there's at least one condecl,
-       -- or else we're reading an hs-boot file, or -fglasgow-exts
-  ; checkTc (not (null cons) || gla_exts || is_boot)
+       -- or else we're reading an hs-boot file, or -XEmptyDataDecls
+  ; checkTc (not (null cons) || empty_data_decls || is_boot)
            (emptyConDeclsErr tc_name)
     
        -- Check that a newtype has exactly one constructor
@@ -1250,5 +1251,5 @@ tyFamAppInIndexErr ty
 
 emptyConDeclsErr tycon
   = sep [quotes (ppr tycon) <+> ptext SLIT("has no constructors"),
-        nest 2 $ ptext SLIT("(-fglasgow-exts permits this)")]
+        nest 2 $ ptext SLIT("(-XEmptyDataDecls permits this)")]
 \end{code}