[commit: ghc] master: Split -XDataKinds from -XPolyKinds (384f609)

José Pedro Magalhães jpm at cs.uu.nl
Mon Jan 16 14:21:45 CET 2012


Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/384f60996747b74aad7f3477e55433e822dd6398

>---------------------------------------------------------------

commit 384f60996747b74aad7f3477e55433e822dd6398
Author: Jose Pedro Magalhaes <jpm at cs.uu.nl>
Date:   Mon Jan 16 14:18:22 2012 +0100

    Split -XDataKinds from -XPolyKinds

>---------------------------------------------------------------

 compiler/main/DynFlags.hs       |    4 ++--
 compiler/rename/RnEnv.lhs       |    8 ++++----
 compiler/rename/RnTypes.lhs     |    8 ++++----
 compiler/typecheck/TcHsType.lhs |    6 +++---
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index fb2e4e5..a443989 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -406,6 +406,7 @@ data ExtensionFlag
    | Opt_RebindableSyntax
    | Opt_ConstraintKinds
    | Opt_PolyKinds                -- Kind polymorphism
+   | Opt_DataKinds                -- Datatype promotion
    | Opt_InstanceSigs
  
    | Opt_StandaloneDeriving
@@ -1956,6 +1957,7 @@ xFlags = [
   ( "RebindableSyntax",                 Opt_RebindableSyntax, nop ),
   ( "ConstraintKinds",                  Opt_ConstraintKinds, nop ),
   ( "PolyKinds",                        Opt_PolyKinds, nop ),
+  ( "DataKinds",                        Opt_DataKinds, nop ),
   ( "InstanceSigs",                     Opt_InstanceSigs, nop ),
   ( "MonoPatBinds",                     Opt_MonoPatBinds,
     \ turn_on -> when turn_on $ deprecate "Experimental feature now removed; has no effect" ),
@@ -2043,8 +2045,6 @@ impliedFlags
     , (Opt_TypeFamilies,     turnOn, Opt_KindSignatures)  -- Type families use kind signatures
                                                           -- all over the place
 
-    , (Opt_PolyKinds,        turnOn, Opt_KindSignatures)
-
     , (Opt_ImpredicativeTypes,  turnOn, Opt_RankNTypes)
 
         -- Record wild-cards implies field disambiguation
diff --git a/compiler/rename/RnEnv.lhs b/compiler/rename/RnEnv.lhs
index a4bf1f2..89a498a 100644
--- a/compiler/rename/RnEnv.lhs
+++ b/compiler/rename/RnEnv.lhs
@@ -462,17 +462,17 @@ lookupPromotedOccRn rdr_name
              Nothing   -> 
 
     do { -- Maybe it's the name of a *data* constructor
-         poly_kinds <- xoptM Opt_PolyKinds
+         data_kinds <- xoptM Opt_DataKinds
        ; mb_demoted_name <- case demoteRdrName rdr_name of
                               Just demoted_rdr -> lookupOccRn_maybe demoted_rdr
                               Nothing          -> return Nothing
        ; case mb_demoted_name of
            Nothing -> unboundName WL_Any rdr_name
            Just demoted_name 
-             | poly_kinds -> return demoted_name
+             | data_kinds -> return demoted_name
              | otherwise  -> unboundNameX WL_Any rdr_name suggest_pk }}}
   where 
-    suggest_pk = ptext (sLit "A data constructor of that name is in scope; did you mean -XPolyKinds?")
+    suggest_pk = ptext (sLit "A data constructor of that name is in scope; did you mean -XDataKinds?")
 \end{code}
 
 Note [Demotion]
@@ -1437,7 +1437,7 @@ kindSigErr thing
 polyKindsErr :: Outputable a => a -> SDoc
 polyKindsErr thing
   = hang (ptext (sLit "Illegal kind:") <+> quotes (ppr thing))
-       2 (ptext (sLit "Perhaps you intended to use -XPolyKinds"))
+       2 (ptext (sLit "Perhaps you intended to use -XDataKinds"))
 
 
 badQualBndrErr :: RdrName -> SDoc
diff --git a/compiler/rename/RnTypes.lhs b/compiler/rename/RnTypes.lhs
index df6008b..22d6f22 100644
--- a/compiler/rename/RnTypes.lhs
+++ b/compiler/rename/RnTypes.lhs
@@ -196,8 +196,8 @@ rnHsTyKi isType doc (HsFunTy ty1 ty2) = do
       else return (HsFunTy ty1' ty2')
 
 rnHsTyKi isType doc listTy@(HsListTy ty) = do
-    poly_kinds <- xoptM Opt_PolyKinds
-    unless (poly_kinds || isType) (addErr (polyKindsErr listTy))
+    data_kinds <- xoptM Opt_DataKinds
+    unless (data_kinds || isType) (addErr (polyKindsErr listTy))
     ty' <- rnLHsTyKi isType doc ty
     return (HsListTy ty')
 
@@ -216,8 +216,8 @@ rnHsTyKi isType doc (HsPArrTy ty) = ASSERT ( isType ) do
 -- Unboxed tuples are allowed to have poly-typed arguments.  These
 -- sometimes crop up as a result of CPR worker-wrappering dictionaries.
 rnHsTyKi isType doc tupleTy@(HsTupleTy tup_con tys) = do
-    poly_kinds <- xoptM Opt_PolyKinds
-    unless (poly_kinds || isType) (addErr (polyKindsErr tupleTy))
+    data_kinds <- xoptM Opt_DataKinds
+    unless (data_kinds || isType) (addErr (polyKindsErr tupleTy))
     tys' <- mapM (rnLHsTyKi isType doc) tys
     return (HsTupleTy tup_con tys')
 
diff --git a/compiler/typecheck/TcHsType.lhs b/compiler/typecheck/TcHsType.lhs
index 218539d..af46445 100644
--- a/compiler/typecheck/TcHsType.lhs
+++ b/compiler/typecheck/TcHsType.lhs
@@ -68,7 +68,7 @@ import NameSet
 import TysWiredIn
 import BasicTypes
 import SrcLoc
-import DynFlags ( ExtensionFlag( Opt_PolyKinds ) )
+import DynFlags ( ExtensionFlag( Opt_DataKinds ) )
 import Util
 import UniqSupply
 import Outputable
@@ -1343,8 +1343,8 @@ sc_ds_var_app name arg_kis = do
   case mb_thing of
     Just (AGlobal (ATyCon tc))
       | isAlgTyCon tc || isTupleTyCon tc -> do
-      poly_kinds <- xoptM Opt_PolyKinds
-      unless poly_kinds $ addErr (polyKindsErr name)
+      data_kinds <- xoptM Opt_DataKinds
+      unless data_kinds $ addErr (polyKindsErr name)
       let tc_kind = tyConKind tc
       case isPromotableKind tc_kind of
         Just n | n == length arg_kis ->





More information about the Cvs-ghc mailing list