Remove checkTopTypeD
authorManuel M T Chakravarty <chak@cse.unsw.edu.au>
Mon, 18 Sep 2006 22:53:32 +0000 (22:53 +0000)
committerManuel M T Chakravarty <chak@cse.unsw.edu.au>
Mon, 18 Sep 2006 22:53:32 +0000 (22:53 +0000)
Tue Aug 15 17:02:53 EDT 2006  Manuel M T Chakravarty <chak@cse.unsw.edu.au>
  * Remove checkTopTypeD

compiler/parser/Parser.y.pp
compiler/parser/RdrHsSyn.lhs

index 4548221..dc86c00 100644 (file)
@@ -444,8 +444,7 @@ topdecls :: { OrdList (LHsDecl RdrName) }
 
 topdecl :: { OrdList (LHsDecl RdrName) }
        : cl_decl                       { unitOL (L1 (TyClD (unLoc $1))) }
-       | ty_decl                       {% checkTopTypeD $1 >>=
-                                          return.unitOL.L1 }
+       | ty_decl                       { unitOL (L1 (TyClD (unLoc $1))) }
        | 'instance' inst_type where
                { let (binds, sigs, ats) = cvBindsAndSigs (unLoc $3)
                  in unitOL (L (comb3 $1 $2 $3) 
index a8449ae..b66c759 100644 (file)
@@ -39,7 +39,6 @@ module RdrHsSyn (
        checkTyVars,          -- [LHsType RdrName] -> Bool -> P ()
        checkSynHdr,          -- LHsType RdrName -> P (Located RdrName, [LHsTyVarBndr RdrName], Maybe [LHsType RdrName])
        checkKindSigs,        -- [LTyClDecl RdrName] -> P ()
-       checkTopTypeD,        -- LTyClDecl RdrName -> P (HsDecl RdrName)
        checkInstType,        -- HsType -> P HsType
        checkPattern,         -- HsExp -> P HsPat
        checkPatterns,        -- SrcLoc -> [HsExp] -> P [HsPat]
@@ -518,22 +517,6 @@ checkKindSigs = mapM_ check
       | otherwise           = 
        parseError l "Type declaration in a class must be a kind signature or synonym default"
 
--- Wrap a toplevel type or data declaration into 'TyClD' and ensure for 
--- data declarations that all type parameters are variables only (which is in
--- contrast to type functions and associated type declarations).
---
-checkTopTypeD :: LTyClDecl RdrName -> P (HsDecl RdrName)
-checkTopTypeD (L _ d@TyData {tcdTyPats = Just typats}) = 
-  do
-    -- `tcdTyPats' will only be of the form `Just typats' if `typats' contains
-    -- a non-variable pattern.  We call `checkTyPats' instead of raising an
-    -- error straight away, as `checkTyPats' raises the error at the location
-    -- of that non-variable pattern.
-    --
-    checkTyVars typats False
-    panic "checkTopTypeD: check on previous line should fail w/ a parse error"
-checkTopTypeD (L _ d) = return $ TyClD d
-
 checkContext :: LHsType RdrName -> P (LHsContext RdrName)
 checkContext (L l t)
   = check t