diff options
Diffstat (limited to 'src/core/lombok/javac/handlers/HandleSetter.java')
-rw-r--r-- | src/core/lombok/javac/handlers/HandleSetter.java | 23 |
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) { |