From 80284eefe7098c42a0b4736c45f622116fb543e0 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 1 Mar 2016 22:55:14 +0000 Subject: Don't make assumptions about captures of inner classes --- src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java index dd83b8c..6772fdc 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -60,7 +60,7 @@ public class JavaReader { private final ImmutableList.Builder classes; private int anonymousClassCount = 0; private final Scope topScope = Scope.create(); - private final Map nestedClasses = new HashMap<>(); + private final Map> nestedClasses = new HashMap<>(); private JavaReader() { classes = ImmutableList.builder(); @@ -72,9 +72,9 @@ public class JavaReader { NodeTransformer transformer = NodeTransformer.builder() .transformExpression(expression -> tryCast(ConstructorCallNode.class, expression) - .flatMap(call -> lookup(nestedClasses, call.getType()).map(outerType -> + .flatMap(call -> lookup(nestedClasses, call.getType()).map(captures -> // TODO: handle existing arguments - new ConstructorCallNode(call.getType(), list(thisReference(outerType)))))) + new ConstructorCallNode(call.getType(), captures)))) .build(); return eagerMap(classes, classNode -> classNode.transform(transformer)); } @@ -296,7 +296,7 @@ public class JavaReader { .filter(node -> !Modifier.isStatic(typeDeclaration.getModifiers())) .map(node -> { GeneratedClosure closure = classWithCapture(scope, node); - nestedClasses.put(node.getName(), outerType); + nestedClasses.put(node.getName(), closure.getCaptures()); return closure.getClassNode(); }) .orElse(typeNode); -- cgit v1.2.3