diff options
author | Reinier Zwitserloot <reinier@tipit.to> | 2009-06-24 01:22:08 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@tipit.to> | 2009-06-24 01:22:08 +0200 |
commit | 99a38d4d08cb020182663ffaf9418d28becf1fd6 (patch) | |
tree | 8831e47ab817d5783f868e0f11905632faaeca5c /src/lombok/eclipse | |
parent | c834e09af460715a159506c5e809b3572dc22de5 (diff) | |
download | lombok-99a38d4d08cb020182663ffaf9418d28becf1fd6.tar.gz lombok-99a38d4d08cb020182663ffaf9418d28becf1fd6.tar.bz2 lombok-99a38d4d08cb020182663ffaf9418d28becf1fd6.zip |
Added proper support for changing the AST as its being visited, both removal and addition. The rule is now: children traversal traverses through the tree mostly as it was when it started.
Diffstat (limited to 'src/lombok/eclipse')
-rw-r--r-- | src/lombok/eclipse/EclipseAST.java | 2 | ||||
-rw-r--r-- | src/lombok/eclipse/handlers/PKG.java | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/src/lombok/eclipse/EclipseAST.java b/src/lombok/eclipse/EclipseAST.java index 07ca5f11..df0020bc 100644 --- a/src/lombok/eclipse/EclipseAST.java +++ b/src/lombok/eclipse/EclipseAST.java @@ -256,7 +256,7 @@ public class EclipseAST extends AST<ASTNode> { /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override public Collection<Node> down() { - return (Collection<Node>) children; + return (Collection<Node>) super.down(); } /** {@inheritDoc} */ diff --git a/src/lombok/eclipse/handlers/PKG.java b/src/lombok/eclipse/handlers/PKG.java index 1e391ef2..3cfbf9c6 100644 --- a/src/lombok/eclipse/handlers/PKG.java +++ b/src/lombok/eclipse/handlers/PKG.java @@ -135,7 +135,9 @@ class PKG { for ( int i = 0 ; i < parent.methods.length ; i++ ) { if ( parent.methods[i] instanceof ConstructorDeclaration && (parent.methods[i].bits & ASTNode.IsDefaultConstructor) != 0 ) { + EclipseAST.Node tossMe = type.getNodeFor(parent.methods[i]); parent.methods[i] = method; + if ( tossMe != null ) tossMe.up().removeChild(tossMe); injectionComplete = true; break; } |