aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/javac/handlers/HandleSetter.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/lombok/javac/handlers/HandleSetter.java')
-rw-r--r--src/core/lombok/javac/handlers/HandleSetter.java23
1 files changed, 8 insertions, 15 deletions
diff --git a/src/core/lombok/javac/handlers/HandleSetter.java b/src/core/lombok/javac/handlers/HandleSetter.java
index 02591736..a782e605 100644
--- a/src/core/lombok/javac/handlers/HandleSetter.java
+++ b/src/core/lombok/javac/handlers/HandleSetter.java
@@ -21,8 +21,8 @@
*/
package lombok.javac.handlers;
+import static lombok.javac.Javac.getCtcInt;
import static lombok.javac.handlers.JavacHandlerUtil.*;
-import static lombok.javac.Javac.*;
import java.util.Collection;
@@ -37,6 +37,7 @@ import lombok.core.AnnotationValues;
import lombok.core.TransformationsUtil;
import lombok.javac.JavacAnnotationHandler;
import lombok.javac.JavacNode;
+import lombok.javac.handlers.JavacHandlerUtil.FieldAccess;
import org.mangosdk.spi.ProviderFor;
@@ -171,6 +172,11 @@ public class HandleSetter extends JavacAnnotationHandler<Setter> {
return;
}
+ if ((fieldDecl.mods.flags & Flags.FINAL) != 0) {
+ source.addWarning("Not generating setter for this field: Setters cannot be generated for final fields.");
+ return;
+ }
+
for (String altName : toAllSetterNames(fieldNode)) {
switch (methodExists(altName, fieldNode, false, 1)) {
case EXISTS_BY_LOMBOK:
@@ -224,20 +230,7 @@ public class HandleSetter extends JavacAnnotationHandler<Setter> {
JCExpression methodType = null;
if (returnThis) {
- JavacNode typeNode = field;
- while (typeNode != null && typeNode.getKind() != Kind.TYPE) typeNode = typeNode.up();
- if (typeNode != null && typeNode.get() instanceof JCClassDecl) {
- JCClassDecl type = (JCClassDecl) typeNode.get();
- ListBuffer<JCExpression> typeArgs = ListBuffer.lb();
- if (!type.typarams.isEmpty()) {
- for (JCTypeParameter tp : type.typarams) {
- typeArgs.append(treeMaker.Ident(tp.name));
- }
- methodType = treeMaker.TypeApply(treeMaker.Ident(type.name), typeArgs.toList());
- } else {
- methodType = treeMaker.Ident(type.name);
- }
- }
+ methodType = cloneSelfType(field);
}
if (methodType == null) {