aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/zwobble/couscous/ast/TryNode.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/zwobble/couscous/ast/TryNode.java')
-rw-r--r--src/main/java/org/zwobble/couscous/ast/TryNode.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/main/java/org/zwobble/couscous/ast/TryNode.java b/src/main/java/org/zwobble/couscous/ast/TryNode.java
index 800931f..3c18e1a 100644
--- a/src/main/java/org/zwobble/couscous/ast/TryNode.java
+++ b/src/main/java/org/zwobble/couscous/ast/TryNode.java
@@ -1,10 +1,12 @@
package org.zwobble.couscous.ast;
+import com.google.common.collect.Iterables;
import org.zwobble.couscous.ast.visitors.NodeTransformer;
import org.zwobble.couscous.ast.visitors.StatementNodeMapper;
import java.util.List;
+import static org.zwobble.couscous.util.ExtraIterables.lazyFlatMap;
import static org.zwobble.couscous.util.ExtraLists.eagerMap;
public class TryNode implements StatementNode {
@@ -48,6 +50,15 @@ public class TryNode implements StatementNode {
}
@Override
+ public Iterable<? extends Node> childNodes() {
+ return Iterables.concat(
+ body,
+ lazyFlatMap(exceptionHandlers, handler -> handler.getBody()),
+ finallyBody
+ );
+ }
+
+ @Override
public StatementNode transform(NodeTransformer transformer) {
return new TryNode(
transformer.transformStatements(body),