diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 8 |
1 files changed, 4 insertions, 4 deletions
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<TypeNode> classes; private int anonymousClassCount = 0; private final Scope topScope = Scope.create(); - private final Map<TypeName, TypeName> nestedClasses = new HashMap<>(); + private final Map<TypeName, List<ReferenceNode>> 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())) .<TypeNode>map(node -> { GeneratedClosure closure = classWithCapture(scope, node); - nestedClasses.put(node.getName(), outerType); + nestedClasses.put(node.getName(), closure.getCaptures()); return closure.getClassNode(); }) .orElse(typeNode); |
