From 38c95d6f76efde8b14a93e3a31d28c5d56bfb638 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sun, 10 Jul 2016 18:10:01 +0100 Subject: Move childNodes onto Node interface --- src/main/java/org/zwobble/couscous/ast/TryNode.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/org/zwobble/couscous/ast/TryNode.java') 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 { @@ -47,6 +49,15 @@ public class TryNode implements StatementNode { return visitor.visit(this); } + @Override + public Iterable childNodes() { + return Iterables.concat( + body, + lazyFlatMap(exceptionHandlers, handler -> handler.getBody()), + finallyBody + ); + } + @Override public StatementNode transform(NodeTransformer transformer) { return new TryNode( -- cgit v1.2.3