From: andy Date: Thu, 5 Oct 2000 22:50:18 +0000 (+0000) Subject: [project @ 2000-10-05 22:50:18 by andy] X-Git-Tag: Approximately_9120_patches~3682 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=31d1c24e7e3908663f27a743a379d649d56fda2f;p=ghc-hetmet.git [project @ 2000-10-05 22:50:18 by andy] Fixing the order that labeled fields appear in datatypes. Currently they are reversed, which breaks the prelude badly. [From Haskell report: The arguments to the positional constructor occur in the same order as the labeled fields. For example, the declaration data C = F { f1,f2 :: Int, f3 :: Bool} defines a type and constructor identical to the one produced by data C = F Int Int Bool ] --- diff --git a/ghc/compiler/parser/Parser.y b/ghc/compiler/parser/Parser.y index 7efc693..53fcbd4 100644 --- a/ghc/compiler/parser/Parser.y +++ b/ghc/compiler/parser/Parser.y @@ -1,6 +1,6 @@ {- ----------------------------------------------------------------------------- -$Id: Parser.y,v 1.38 2000/10/05 15:42:30 simonpj Exp $ +$Id: Parser.y,v 1.39 2000/10/05 22:50:18 andy Exp $ Haskell grammar. @@ -595,7 +595,7 @@ context :: { RdrNameContext } constr_stuff :: { (RdrName, RdrNameConDetails) } : btype {% mkVanillaCon $1 [] } | btype '!' atype satypes {% mkVanillaCon $1 (Banged $3 : $4) } - | gtycon '{' fielddecls '}' {% mkRecCon $1 $3 } + | gtycon '{' fielddecls '}' {% mkRecCon $1 (reverse $3) } | sbtype conop sbtype { ($2, InfixCon $1 $3) } satypes :: { [RdrNameBangType] }