From: David Waern Date: Sat, 18 Apr 2009 08:29:27 +0000 (+0000) Subject: Fix my previous patch about type parsing X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=5581ce5202d9d84caada8e914ab7c848c6476a0f Fix my previous patch about type parsing I forgot to record some additional changes. --- diff --git a/compiler/parser/Parser.y.pp b/compiler/parser/Parser.y.pp index 6493b06..6839286 100644 --- a/compiler/parser/Parser.y.pp +++ b/compiler/parser/Parser.y.pp @@ -1004,17 +1004,6 @@ strict_mark :: { Located HsBang } : '!' { L1 HsStrict } | '{-# UNPACK' '#-}' '!' { LL HsUnbox } ----------------------- --- Notes for 'ctype' --- We should probably use 'gentype' rather than 'type' in the LHS of type declarations --- That would leave the only use of 'type' in 'ctype'; and only one of its occurrences --- makes sense there too! So it might make sense to inline type there: --- ctype : 'forall' tv_bndrs '.' ctype --- | context '=>' ctype --- | ipvar '::' gentype --- | gentype --- Which in turn would let us rename gentype to type - -- A ctype is a for-all type ctype :: { LHsType RdrName } : 'forall' tv_bndrs '.' ctype { LL $ mkExplicitHsForAllTy $2 (noLoc []) $4 } @@ -1023,10 +1012,6 @@ ctype :: { LHsType RdrName } | ipvar '::' type { LL (HsPredTy (HsIParam (unLoc $1) $3)) } | type { $1 } -type :: { LHsType RdrName } - : ipvar '::' gentype { LL (HsPredTy (HsIParam (unLoc $1) $3)) } - | gentype { $1 } - ---------------------- -- Notes for 'ctypedoc' -- It would have been nice to simplify the grammar by unifying `ctype` and @@ -1045,10 +1030,6 @@ ctypedoc :: { LHsType RdrName } | ipvar '::' type { LL (HsPredTy (HsIParam (unLoc $1) $3)) } | typedoc { $1 } -typedoc :: { LHsType RdrName } - : ipvar '::' gentype { LL (HsPredTy (HsIParam (unLoc $1) $3)) } - | gentypedoc { $1 } - ---------------------- -- Notes for 'context' -- We parse a context as a btype so that we don't get reduce/reduce