From c4f1fc49321a21eefb3ecb0eaa97a1e06ecb45b5 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 28 Nov 2015 19:49:53 +0000 Subject: Remove stream usage in JavaReader --- .../couscous/frontends/java/JavaReader.java | 25 +++++++--------------- 1 file changed, 8 insertions(+), 17 deletions(-) (limited to 'src') 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 019c6e4..92d9fcd 100644 --- a/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java +++ b/src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java @@ -10,8 +10,6 @@ import java.nio.file.Path; import java.util.Collections; import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; -import java.util.stream.Stream; import static java.util.Arrays.asList; import static org.zwobble.couscous.ast.AnnotationNode.annotation; @@ -56,9 +54,7 @@ public class JavaReader { TypeName className = generateClassName(expression); FunctionDeclaration lambda = functionDeclaration(expression); List freeVariables = findFreeVariables( - Stream.concat( - lambda.getFormalArguments().stream(), - lambda.getBody().stream()).collect(Collectors.toList())); + concat(lambda.getFormalArguments(), lambda.getBody())); List restoreCaptures = generateCaptureRestoration(className, freeVariables); @@ -93,14 +89,10 @@ public class JavaReader { private ConstructorNode buildConstructor(TypeName type, List freeVariables) { // TODO: generate fresh variables for captures - List arguments = freeVariables.stream() - .map(FormalArgumentNode::formalArg) - .collect(Collectors.toList()); - List body = freeVariables.stream() - .map(freeVariable -> assignStatement( + List arguments = eagerMap(freeVariables, FormalArgumentNode::formalArg); + List body = eagerMap(freeVariables, freeVariable -> assignStatement( fieldAccess(thisReference(type), freeVariable.getName(), freeVariable.getType()), - reference(freeVariable))) - .collect(Collectors.toList()); + reference(freeVariable))); return constructor(arguments, body); } @@ -228,7 +220,7 @@ public class JavaReader { return new FunctionDeclaration( eagerMap(asList(method.resolveBinding().getAnnotations()), this::readAnnotation), formalArguments, - readStatements(statements, returnType).collect(Collectors.toList())); + readStatements(statements, returnType)); } private FunctionDeclaration functionDeclaration(LambdaExpression expression) { @@ -263,7 +255,7 @@ public class JavaReader { if (expression.getBody() instanceof Block) { @SuppressWarnings("unchecked") List statements = ((Block) expression.getBody()).statements(); - return readStatements(statements, Optional.of(returnType)).collect(Collectors.toList()); + return readStatements(statements, Optional.of(returnType)); } else { Expression body = (Expression) expression.getBody(); return asList(returns(expressionReader().readExpression(returnType, body))); @@ -298,10 +290,9 @@ public class JavaReader { } } - private Stream readStatements(List body, Optional returnType) { + private List readStatements(List body, Optional returnType) { JavaStatementReader statementReader = new JavaStatementReader(expressionReader(), returnType); - return body.stream() - .flatMap(statement -> statementReader.readStatement(statement).stream()); + return eagerFlatMap(body, statementReader::readStatement); } private TypeName generateClassName(CompilationUnit ast) { -- cgit v1.2.3