From 1ef4865a040ae94b69a5c4dabcb5dca837cae67c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 30 Oct 2016 23:55:19 +0000 Subject: Defer generation of classes for lambdas --- src/main/java/org/zwobble/couscous/interpreter/JavaProject.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/main/java/org/zwobble/couscous/interpreter/JavaProject.java') diff --git a/src/main/java/org/zwobble/couscous/interpreter/JavaProject.java b/src/main/java/org/zwobble/couscous/interpreter/JavaProject.java index a85d126..6629794 100644 --- a/src/main/java/org/zwobble/couscous/interpreter/JavaProject.java +++ b/src/main/java/org/zwobble/couscous/interpreter/JavaProject.java @@ -8,13 +8,14 @@ import org.zwobble.couscous.interpreter.types.IntrinsicInterpreterType; import org.zwobble.couscous.interpreter.types.UserDefinedInterpreterType; import org.zwobble.couscous.interpreter.values.BoxedIntegerInterpreterValue; import org.zwobble.couscous.interpreter.values.InternalCouscousInterpreterValue; +import org.zwobble.couscous.transforms.AnonymousClassToInnerClass; import org.zwobble.couscous.transforms.DesugarForToWhile; import org.zwobble.couscous.transforms.DesugarSwitchToIfElse; import org.zwobble.couscous.transforms.HoistNestedTypes; import java.util.List; -import static org.zwobble.couscous.util.ExtraLists.list; +import static org.zwobble.couscous.util.ExtraLists.*; public class JavaProject { private static final InterpreterType OBJECT_TYPE = IntrinsicInterpreterType.classBuilder("java.lang.Object") @@ -32,7 +33,10 @@ public class JavaProject { NodeTransformer forTransformer = DesugarForToWhile.transformer(); Iterable concreteTypes = Iterables.transform( HoistNestedTypes.hoist( - NodeTransformer.applyAll(list(switchTransformer, forTransformer), classNodes) + eagerMap( + NodeTransformer.applyAll(list(switchTransformer, forTransformer), classNodes), + AnonymousClassToInnerClass::transform + ) ), UserDefinedInterpreterType::new ); -- cgit v1.2.3