diff options
author | Jappe van der Hel <jappe.vanderhel@gmail.com> | 2012-01-18 11:53:17 +0100 |
---|---|---|
committer | Jappe van der Hel <jappe.vanderhel@gmail.com> | 2012-01-18 11:53:17 +0100 |
commit | 5185f97cd6dd7697eeca2455897cbad9dea9ed96 (patch) | |
tree | ed97af20ab98a2257dcad759fb1212a6cda89ad6 /src/core/lombok/eclipse/handlers | |
parent | 68fe3f41e962d247ec372e40c8714f57e5ebee05 (diff) | |
download | lombok-5185f97cd6dd7697eeca2455897cbad9dea9ed96.tar.gz lombok-5185f97cd6dd7697eeca2455897cbad9dea9ed96.tar.bz2 lombok-5185f97cd6dd7697eeca2455897cbad9dea9ed96.zip |
1) rollback of rollback fixRetrieveRightBraceOrSemiColonPosition
2) HandleEqualsAndHashCode now use SetGeneratedByVisitor to ensure "correct" sourcepositions
3) SetGeneratedByVisitor now sets QualifiedNameReference.sourcePositions
Diffstat (limited to 'src/core/lombok/eclipse/handlers')
-rw-r--r-- | src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java | 3 | ||||
-rw-r--r-- | src/core/lombok/eclipse/handlers/SetGeneratedByVisitor.java | 11 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java b/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java index d4c63da3..ef01835c 100644 --- a/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java +++ b/src/core/lombok/eclipse/handlers/HandleEqualsAndHashCode.java @@ -222,14 +222,17 @@ public class HandleEqualsAndHashCode extends EclipseAnnotationHandler<EqualsAndH } MethodDeclaration equalsMethod = createEquals(typeNode, nodesForEquality, callSuper, errorNode.get(), fieldAccess, needsCanEqual); + equalsMethod.traverse(new SetGeneratedByVisitor(errorNode.get()), ((TypeDeclaration)typeNode.get()).scope); injectMethod(typeNode, equalsMethod); if (needsCanEqual) { MethodDeclaration canEqualMethod = createCanEqual(typeNode, errorNode.get()); + canEqualMethod.traverse(new SetGeneratedByVisitor(errorNode.get()), ((TypeDeclaration)typeNode.get()).scope); injectMethod(typeNode, canEqualMethod); } MethodDeclaration hashCodeMethod = createHashCode(typeNode, nodesForEquality, callSuper, errorNode.get(), fieldAccess); + hashCodeMethod.traverse(new SetGeneratedByVisitor(errorNode.get()), ((TypeDeclaration)typeNode.get()).scope); injectMethod(typeNode, hashCodeMethod); } diff --git a/src/core/lombok/eclipse/handlers/SetGeneratedByVisitor.java b/src/core/lombok/eclipse/handlers/SetGeneratedByVisitor.java index 13292cdd..7d2b7a74 100644 --- a/src/core/lombok/eclipse/handlers/SetGeneratedByVisitor.java +++ b/src/core/lombok/eclipse/handlers/SetGeneratedByVisitor.java @@ -247,6 +247,13 @@ public final class SetGeneratedByVisitor extends ASTVisitor { node.nameSourcePosition = recalcSourcePosition(node.nameSourcePosition); } + private void applyOffsetQualifiedNameReference(QualifiedNameReference node) { + applyOffsetExpression(node); + for (int i = 0; i < node.sourcePositions.length; i++) { + node.sourcePositions[i] = recalcSourcePosition(node.sourcePositions[i]); + } + } + private void applyOffsetQualifiedTypeReference(QualifiedTypeReference node) { applyOffsetExpression(node); for (int i = 0; i < node.sourcePositions.length; i++) { @@ -787,8 +794,8 @@ public final class SetGeneratedByVisitor extends ASTVisitor { } @Override public boolean visit(QualifiedNameReference node, BlockScope scope) { - setGeneratedBy(node, source); - applyOffsetExpression(node); + setGeneratedBy(node, source); + applyOffsetQualifiedNameReference(node); return super.visit(node, scope); } |