105 }
106
107 @Override
108 public boolean isTerminal() {
109 if (body.isTerminal()) {
110 for (final Block catchBlock : getCatchBlocks()) {
111 if (!catchBlock.isTerminal()) {
112 return false;
113 }
114 }
115 return true;
116 }
117 return false;
118 }
119
120 /**
121 * Assist in IR navigation.
122 * @param visitor IR navigating visitor.
123 */
124 @Override
125 public Node accept(final LexicalContext lc, NodeVisitor<? extends LexicalContext> visitor) {
126 if (visitor.enterTryNode(this)) {
127 // Need to do finallybody first for termination analysis. TODO still necessary?
128 final Block newFinallyBody = finallyBody == null ? null : (Block)finallyBody.accept(visitor);
129 final Block newBody = (Block)body.accept(visitor);
130 return visitor.leaveTryNode(
131 setBody(lc, newBody).
132 setFinallyBody(lc, newFinallyBody).
133 setCatchBlocks(lc, Node.accept(visitor, catchBlocks)).
134 setInlinedFinallies(lc, Node.accept(visitor, inlinedFinallies)));
135 }
136
137 return this;
138 }
139
140 @Override
141 public void toString(final StringBuilder sb, final boolean printType) {
142 sb.append("try ");
143 }
144
145 /**
|
105 }
106
107 @Override
108 public boolean isTerminal() {
109 if (body.isTerminal()) {
110 for (final Block catchBlock : getCatchBlocks()) {
111 if (!catchBlock.isTerminal()) {
112 return false;
113 }
114 }
115 return true;
116 }
117 return false;
118 }
119
120 /**
121 * Assist in IR navigation.
122 * @param visitor IR navigating visitor.
123 */
124 @Override
125 public Node accept(final LexicalContext lc, final NodeVisitor<? extends LexicalContext> visitor) {
126 if (visitor.enterTryNode(this)) {
127 // Need to do finallybody first for termination analysis. TODO still necessary?
128 final Block newFinallyBody = finallyBody == null ? null : (Block)finallyBody.accept(visitor);
129 final Block newBody = (Block)body.accept(visitor);
130 return visitor.leaveTryNode(
131 setBody(lc, newBody).
132 setFinallyBody(lc, newFinallyBody).
133 setCatchBlocks(lc, Node.accept(visitor, catchBlocks)).
134 setInlinedFinallies(lc, Node.accept(visitor, inlinedFinallies)));
135 }
136
137 return this;
138 }
139
140 @Override
141 public void toString(final StringBuilder sb, final boolean printType) {
142 sb.append("try ");
143 }
144
145 /**
|