diff options
Diffstat (limited to 'ghc/compiler/javaGen/Java.lhs')
-rw-r--r-- | ghc/compiler/javaGen/Java.lhs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/ghc/compiler/javaGen/Java.lhs b/ghc/compiler/javaGen/Java.lhs index ede6ac28e4..de16154543 100644 --- a/ghc/compiler/javaGen/Java.lhs +++ b/ghc/compiler/javaGen/Java.lhs @@ -63,6 +63,7 @@ data Expr | InstanceOf Expr Type | Call Expr Name [Expr] | Op Expr String Expr + | Raise TypeName [Expr] | New Type [Expr] (Maybe [Decl]) -- anonymous innerclass deriving (Show) @@ -80,7 +81,7 @@ data Type = PrimType PrimType | ArrayType Type | Type TypeName - deriving (Show) + deriving (Show, Eq) data PrimType = PrimInt @@ -91,7 +92,7 @@ data PrimType | PrimDouble | PrimByte | PrimVoid - deriving (Show) + deriving (Show, Eq) type PackageName = String -- A package name -- like "java.awt.Button" @@ -112,14 +113,21 @@ data Name = Name String Type -- So variables might be Int or Object. -- ** method calls store the returned - -- ** type, not a complete. + -- ** type, not a complete arg x result type. -- -- Thinking: -- ... foo1.foo2(...).foo3 ... -- here you want to know the *result* - -- after callling foo1, then foo2, + -- after calling foo1, then foo2, -- then foo3. +instance Eq Name where + (Name nm _) == (Name nm' _) = nm == nm' + + +instance Ord Name where + (Name nm _) `compare` (Name nm' _) = nm `compare` nm' + data Lit = IntLit Integer -- unboxed |