aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java7
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java5
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))