diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-07-15 16:21:12 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-07-15 20:38:26 +0100 |
| commit | 39556c29e0913bdb4e597d4fc629fa101c555959 (patch) | |
| tree | f7b7731b0e38ba7a1146ef4e2efc3c665c165471 /src/main/java/org/zwobble/couscous/ast/visitors | |
| parent | 351567960bd825fbdd4a3f15719f7074a13cdfd3 (diff) | |
Transform subnodes in NodeTransformer
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/visitors')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java index 78bd6ef..296e5c7 100644 --- a/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java +++ b/src/main/java/org/zwobble/couscous/ast/visitors/NodeTransformer.java @@ -126,8 +126,8 @@ public class NodeTransformer { } public ExpressionNode transformExpression(ExpressionNode expression) { - return transformExpression.apply(expression) - .orElseGet(() -> expression.transform(this)); + ExpressionNode transformed = expression.transform(this); + return transformExpression.apply(transformed).orElse(transformed); } public Receiver transformReceiver(Receiver receiver) { @@ -139,8 +139,8 @@ public class NodeTransformer { } public final Iterable<StatementNode> transformStatement(StatementNode statement) { - return transformStatement.apply(statement) - .orElseGet(() -> list(statement.transform(this))); + StatementNode transformed = statement.transform(this); + return transformStatement.apply(transformed).orElseGet(() -> list(transformed)); } public FormalTypeParameterNode transformFormalTypeParameter(FormalTypeParameterNode typeParameter) { |
