[project @ 2000-10-05 22:50:18 by andy]
authorandy <unknown>
Thu, 5 Oct 2000 22:50:18 +0000 (22:50 +0000)
committerandy <unknown>
Thu, 5 Oct 2000 22:50:18 +0000 (22:50 +0000)
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

]

ghc/compiler/parser/Parser.y

index 7efc693..53fcbd4 100644 (file)
@@ -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] }