aboutsummaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/lombok/core/LombokNode.java10
-rw-r--r--src/core/lombok/eclipse/EclipseNode.java10
-rw-r--r--src/core/lombok/eclipse/handlers/HandleWithBy.java7
-rw-r--r--src/core/lombok/javac/JavacNode.java10
4 files changed, 5 insertions, 32 deletions
diff --git a/src/core/lombok/core/LombokNode.java b/src/core/lombok/core/LombokNode.java
index abfc66a6..34273a86 100644
--- a/src/core/lombok/core/LombokNode.java
+++ b/src/core/lombok/core/LombokNode.java
@@ -160,18 +160,16 @@ public abstract class LombokNode<A extends AST<A, L, N>, L extends LombokNode<A,
List<L> fields = new ArrayList<L>();
for (L potentialField : type.down()) {
if (potentialField.getKind() != Kind.FIELD) continue;
- if (fieldContainsAnnotation(potentialField.get(), get())) fields.add(potentialField);
+ for (L child : potentialField.down()) {
+ if (child.getKind() != Kind.ANNOTATION) continue;
+ if (child.get() == get()) fields.add(potentialField);
+ }
}
return fields;
}
/**
- * Return {@code true} if the annotation is attached to the field.
- */
- protected abstract boolean fieldContainsAnnotation(N field, N annotation);
-
- /**
* Returns the direct parent node in the AST tree of this node. For example, a local variable declaration's
* direct parent can be e.g. an If block, but its {@code up()} {@code LombokNode} is the {@code Method} that contains it.
*/
diff --git a/src/core/lombok/eclipse/EclipseNode.java b/src/core/lombok/eclipse/EclipseNode.java
index 12e9ccdb..361a8d42 100644
--- a/src/core/lombok/eclipse/EclipseNode.java
+++ b/src/core/lombok/eclipse/EclipseNode.java
@@ -143,16 +143,6 @@ public class EclipseNode extends lombok.core.LombokNode<EclipseAST, EclipseNode,
}
}
- @Override protected boolean fieldContainsAnnotation(ASTNode field, ASTNode annotation) {
- if (!(field instanceof FieldDeclaration)) return false;
- FieldDeclaration f = (FieldDeclaration) field;
- if (f.annotations == null) return false;
- for (Annotation childAnnotation : f.annotations) {
- if (childAnnotation == annotation) return true;
- }
- return false;
- }
-
/** {@inheritDoc} */
@Override public String getName() {
final char[] n;
diff --git a/src/core/lombok/eclipse/handlers/HandleWithBy.java b/src/core/lombok/eclipse/handlers/HandleWithBy.java
index 40e2d524..5f229aaf 100644
--- a/src/core/lombok/eclipse/handlers/HandleWithBy.java
+++ b/src/core/lombok/eclipse/handlers/HandleWithBy.java
@@ -29,9 +29,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.LinkedHashSet;
import java.util.List;
-import java.util.Set;
import org.eclipse.jdt.internal.compiler.ast.ASTNode;
import org.eclipse.jdt.internal.compiler.ast.AllocationExpression;
@@ -138,10 +136,7 @@ public class HandleWithBy extends EclipseAnnotationHandler<WithBy> {
switch (node.getKind()) {
case FIELD:
- Set<EclipseNode> fields = new LinkedHashSet<EclipseNode>();
- fields.add(node);
- fields.addAll(annotationNode.upFromAnnotationToFields());
- createWithByForFields(level, fields, annotationNode, true, onMethod);
+ createWithByForFields(level, annotationNode.upFromAnnotationToFields(), annotationNode, true, onMethod);
break;
case TYPE:
if (!onMethod.isEmpty()) {
diff --git a/src/core/lombok/javac/JavacNode.java b/src/core/lombok/javac/JavacNode.java
index 3de3f38b..e648cd51 100644
--- a/src/core/lombok/javac/JavacNode.java
+++ b/src/core/lombok/javac/JavacNode.java
@@ -186,16 +186,6 @@ public class JavacNode extends lombok.core.LombokNode<JavacAST, JavacNode, JCTre
return false;
}
- @Override protected boolean fieldContainsAnnotation(JCTree field, JCTree annotation) {
- if (!(field instanceof JCVariableDecl)) return false;
- JCVariableDecl f = (JCVariableDecl) field;
- if (f.mods.annotations == null) return false;
- for (JCAnnotation childAnnotation : f.mods.annotations) {
- if (childAnnotation == annotation) return true;
- }
- return false;
- }
-
/**
* Convenient shortcut to the owning JavacAST object's getTreeMaker method.
*