aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-11-28 19:49:53 +0000
committerMichael Williamson <mike@zwobble.org>2015-11-28 19:49:53 +0000
commitc4f1fc49321a21eefb3ecb0eaa97a1e06ecb45b5 (patch)
tree2660afc890e9f332178da76177c6552fd61d60a9 /src/main/java
parent10e891f7e3ebfb9e0fcb6f1b81282a70056771e3 (diff)
Remove stream usage in JavaReader
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/zwobble/couscous/frontends/java/JavaReader.java25
1 files changed, 8 insertions, 17 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 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<VariableDeclaration> freeVariables = findFreeVariables(
- Stream.concat(
- lambda.getFormalArguments().stream(),
- lambda.getBody().stream()).collect(Collectors.toList()));
+ concat(lambda.getFormalArguments(), lambda.getBody()));
List<StatementNode> restoreCaptures = generateCaptureRestoration(className, freeVariables);
@@ -93,14 +89,10 @@ public class JavaReader {
private ConstructorNode buildConstructor(TypeName type, List<VariableDeclaration> freeVariables) {
// TODO: generate fresh variables for captures
- List<FormalArgumentNode> arguments = freeVariables.stream()
- .map(FormalArgumentNode::formalArg)
- .collect(Collectors.toList());
- List<StatementNode> body = freeVariables.stream()
- .map(freeVariable -> assignStatement(
+ List<FormalArgumentNode> arguments = eagerMap(freeVariables, FormalArgumentNode::formalArg);
+ List<StatementNode> 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<Statement> 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<StatementNode> readStatements(List<Statement> body, Optional<TypeName> returnType) {
+ private List<StatementNode> readStatements(List<Statement> body, Optional<TypeName> 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) {