diff options
Diffstat (limited to 'ghc/compiler/javaGen')
-rw-r--r-- | ghc/compiler/javaGen/JavaGen.lhs | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ghc/compiler/javaGen/JavaGen.lhs b/ghc/compiler/javaGen/JavaGen.lhs index 0fd4b9e9c1..513d99a16b 100644 --- a/ghc/compiler/javaGen/JavaGen.lhs +++ b/ghc/compiler/javaGen/JavaGen.lhs @@ -599,9 +599,12 @@ new env@(Env _ pairs) typ args Nothing = new env typ [] (Just inner) = -- anon. inner class do { innerName <- genAnonInnerClassName - ; frees <- liftClass env innerName inner [] [] - ; return (mkNew env typ [ Var name | name <- frees ]) + ; frees <- liftClass env innerName inner [unType typ] [] + ; return (New (Type [innerName]) [ Var name | name <- frees ] Nothing) } + where unType (Type [name]) = name + unType _ = error "incorrect type style" + new env typ _ (Just inner) = error "cant handle inner class with args" liftClass :: Env -> Name -> [Decl] -> [Name] -> [Name] -> LifterM [ Name ] |