aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRawi01 <Rawi01@users.noreply.github.com>2022-03-13 10:11:11 +0100
committerRawi01 <Rawi01@users.noreply.github.com>2022-03-13 10:11:11 +0100
commitb50a9c2ddf2c49fd99fd1b76bf5df05bff751d4c (patch)
treead43f43244383adc1f19ce1c7b528fd6e15535d8
parent8c3ff7e9b08c4bf9c2b23cffb6042c31258e3ebb (diff)
downloadlombok-b50a9c2ddf2c49fd99fd1b76bf5df05bff751d4c.tar.gz
lombok-b50a9c2ddf2c49fd99fd1b76bf5df05bff751d4c.tar.bz2
lombok-b50a9c2ddf2c49fd99fd1b76bf5df05bff751d4c.zip
[fixes #3133] Add annotation bits to annotation copy targets
-rwxr-xr-xsrc/core/lombok/eclipse/handlers/HandleConstructor.java9
-rw-r--r--src/core/lombok/eclipse/handlers/HandleSetter.java5
-rw-r--r--src/utils/lombok/eclipse/Eclipse.java1
3 files changed, 15 insertions, 0 deletions
diff --git a/src/core/lombok/eclipse/handlers/HandleConstructor.java b/src/core/lombok/eclipse/handlers/HandleConstructor.java
index e69c3267..52213846 100755
--- a/src/core/lombok/eclipse/handlers/HandleConstructor.java
+++ b/src/core/lombok/eclipse/handlers/HandleConstructor.java
@@ -41,6 +41,7 @@ import lombok.RequiredArgsConstructor;
import lombok.core.AST.Kind;
import lombok.core.configuration.CheckerFrameworkVersion;
import lombok.core.AnnotationValues;
+import lombok.eclipse.Eclipse;
import lombok.eclipse.EclipseAnnotationHandler;
import lombok.eclipse.EclipseNode;
import lombok.eclipse.handlers.EclipseHandlerUtil.MemberExistsResult;
@@ -414,6 +415,10 @@ public class HandleConstructor {
if (nullCheck != null) nullChecks.add(nullCheck);
}
parameter.annotations = copyAnnotations(source, copyableAnnotations);
+ if (parameter.annotations != null) {
+ parameter.bits |= Eclipse.HasTypeAnnotations;
+ constructor.bits |= Eclipse.HasTypeAnnotations;
+ }
params.add(parameter);
}
@@ -555,6 +560,10 @@ public class HandleConstructor {
Argument parameter = new Argument(field.name, fieldPos, copyType(field.type, source), Modifier.FINAL);
parameter.annotations = copyAnnotations(source, findCopyableAnnotations(fieldNode));
+ if (parameter.annotations != null) {
+ parameter.bits |= Eclipse.HasTypeAnnotations;
+ constructor.bits |= Eclipse.HasTypeAnnotations;
+ }
params.add(parameter);
}
diff --git a/src/core/lombok/eclipse/handlers/HandleSetter.java b/src/core/lombok/eclipse/handlers/HandleSetter.java
index fda1651d..f09f1485 100644
--- a/src/core/lombok/eclipse/handlers/HandleSetter.java
+++ b/src/core/lombok/eclipse/handlers/HandleSetter.java
@@ -35,6 +35,7 @@ import lombok.ConfigurationKeys;
import lombok.Setter;
import lombok.core.AST.Kind;
import lombok.core.AnnotationValues;
+import lombok.eclipse.Eclipse;
import lombok.eclipse.EclipseAnnotationHandler;
import lombok.eclipse.EclipseNode;
import lombok.experimental.Accessors;
@@ -256,6 +257,10 @@ public class HandleSetter extends EclipseAnnotationHandler<Setter> {
}
method.statements = statements.toArray(new Statement[0]);
param.annotations = copyAnnotations(source, copyableAnnotations, onParam.toArray(new Annotation[0]));
+ if (param.annotations != null) {
+ param.bits |= Eclipse.HasTypeAnnotations;
+ method.bits |= Eclipse.HasTypeAnnotations;
+ }
if (returnType != null && returnStatement != null) createRelevantNonNullAnnotation(sourceNode, method);
diff --git a/src/utils/lombok/eclipse/Eclipse.java b/src/utils/lombok/eclipse/Eclipse.java
index 0f42ddc6..624e521a 100644
--- a/src/utils/lombok/eclipse/Eclipse.java
+++ b/src/utils/lombok/eclipse/Eclipse.java
@@ -66,6 +66,7 @@ public class Eclipse {
public static final int AccRecord = ASTNode.Bit25; // ECM.AccRecord
public static final int IsCanonicalConstructor = ASTNode.Bit10; // ASTNode.IsCanonicalConstructor
public static final int IsImplicit = ASTNode.Bit11; // ASTNode.IsImplicit
+ public static final int HasTypeAnnotations = ASTNode.Bit21; // ASTNode.HasTypeAnnotations
private static final Pattern SPLIT_AT_DOT = Pattern.compile("\\.");