From 30e46a51c533a888e022cfda9c59c8c3dfe2663e Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 24 Nov 2015 21:08:12 +0000 Subject: Consider declarations in body when finding free variables --- .../java/org/zwobble/couscous/frontends/java/FreeVariables.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main') 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 3e3c7c6..bd55979 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/FreeVariables.java @@ -15,10 +15,10 @@ public class FreeVariables { public static List findFreeVariables(List formalArguments, List body) { Stream referencedDeclarations = body.stream() .flatMap(FreeVariables::findReferencedDeclarations); - // TODO: consider nested arguments - // Stream declarations = body.stream().flatMap(this::findDeclarations); - Stream declarations = formalArguments.stream() - .map(argument -> argument.getDeclaration()); + Stream declarations = Stream.concat( + formalArguments.stream() + .map(argument -> argument.getDeclaration()), + body.stream().flatMap(FreeVariables::findDeclarations)); return Sets.difference( referencedDeclarations.collect(Collectors.toSet()), declarations.collect(Collectors.toSet())).stream().collect(Collectors.toList()); -- cgit v1.2.3