diff options
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java | 7 | ||||
| -rw-r--r-- | src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java | 5 |
2 files changed, 5 insertions, 7 deletions
diff --git a/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java b/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java index bd55979..99cc9b4 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java @@ -12,13 +12,10 @@ import static org.zwobble.couscous.util.Casts.tryCast; import static org.zwobble.couscous.util.ExtraStreams.toStream; public class FreeVariables { - public static List<VariableDeclaration> findFreeVariables(List<FormalArgumentNode> formalArguments, List<? extends Node> body) { + public static List<VariableDeclaration> findFreeVariables(List<? extends Node> body) { Stream<VariableDeclaration> referencedDeclarations = body.stream() .flatMap(FreeVariables::findReferencedDeclarations); - Stream<VariableDeclaration> declarations = Stream.concat( - formalArguments.stream() - .map(argument -> argument.getDeclaration()), - body.stream().flatMap(FreeVariables::findDeclarations)); + Stream<VariableDeclaration> declarations = body.stream().flatMap(FreeVariables::findDeclarations); return Sets.difference( referencedDeclarations.collect(Collectors.toSet()), declarations.collect(Collectors.toSet())).stream().collect(Collectors.toList()); 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 0d04d02..8ca1a5f 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -49,8 +49,9 @@ public class JavaReader { String className = generateClassName(expression); LambdaDeclarationAdaptor lambda = new LambdaDeclarationAdaptor(expression); List<VariableDeclaration> freeVariables = findFreeVariables( - lambda.getFormalArguments().collect(Collectors.toList()), - lambda.getBody()); + Stream.concat( + lambda.getFormalArguments(), + lambda.getBody().stream()).collect(Collectors.toList())); ClassNode classNode = new ClassNodeBuilder(className) .constructor(buildConstructor(TypeName.of(className), freeVariables)) |
