aboutsummaryrefslogtreecommitdiff
path: root/src/lombok/eclipse
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@tipit.to>2009-06-24 01:22:08 +0200
committerReinier Zwitserloot <reinier@tipit.to>2009-06-24 01:22:08 +0200
commit99a38d4d08cb020182663ffaf9418d28becf1fd6 (patch)
tree8831e47ab817d5783f868e0f11905632faaeca5c /src/lombok/eclipse
parentc834e09af460715a159506c5e809b3572dc22de5 (diff)
downloadlombok-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.java2
-rw-r--r--src/lombok/eclipse/handlers/PKG.java2
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;
}