diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-10-30 23:55:19 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-10-30 23:56:10 +0000 |
| commit | 1ef4865a040ae94b69a5c4dabcb5dca837cae67c (patch) | |
| tree | 581f7a0fdc72e616f748333fc5d061c5b1e01fd8 /src/main/java/org/zwobble/couscous/interpreter | |
| parent | 62ea20e20ed1c0d6b2564f8fff862d380da15fce (diff) | |
Defer generation of classes for lambdas
Diffstat (limited to 'src/main/java/org/zwobble/couscous/interpreter')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/interpreter/JavaProject.java | 8 |
1 files changed, 6 insertions, 2 deletions
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<InterpreterType> concreteTypes = Iterables.transform( HoistNestedTypes.hoist( - NodeTransformer.applyAll(list(switchTransformer, forTransformer), classNodes) + eagerMap( + NodeTransformer.applyAll(list(switchTransformer, forTransformer), classNodes), + AnonymousClassToInnerClass::transform + ) ), UserDefinedInterpreterType::new ); |
