aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/javac/handlers
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2010-07-18 01:26:02 +0200
committerReinier Zwitserloot <reinier@zwitserloot.com>2010-07-18 01:26:02 +0200
commita5e19958f6ae0f734d0ac28772725be3afd7e27d (patch)
treebc735cc3fa22d0ccf1944a60ada38f4fd27125cc /src/core/lombok/javac/handlers
parenta1629c55acd5a2eda29e777541885d428e0f5df4 (diff)
downloadlombok-a5e19958f6ae0f734d0ac28772725be3afd7e27d.tar.gz
lombok-a5e19958f6ae0f734d0ac28772725be3afd7e27d.tar.bz2
lombok-a5e19958f6ae0f734d0ac28772725be3afd7e27d.zip
All generated fields and methods now get a @SuppressWarnings("all").
Implements issue #47.
Diffstat (limited to 'src/core/lombok/javac/handlers')
-rw-r--r--src/core/lombok/javac/handlers/JavacHandlerUtil.java15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
index 499340bc..ccd5647c 100644
--- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java
+++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
@@ -32,6 +32,8 @@ import lombok.javac.JavacNode;
import com.sun.tools.javac.code.Flags;
import com.sun.tools.javac.code.TypeTags;
import com.sun.tools.javac.tree.JCTree;
+import com.sun.tools.javac.tree.JCTree.JCLiteral;
+import com.sun.tools.javac.tree.JCTree.JCModifiers;
import com.sun.tools.javac.tree.TreeMaker;
import com.sun.tools.javac.tree.JCTree.JCAnnotation;
import com.sun.tools.javac.tree.JCTree.JCClassDecl;
@@ -270,6 +272,7 @@ public class JavacHandlerUtil {
public static void injectField(JavacNode typeNode, JCVariableDecl field) {
JCClassDecl type = (JCClassDecl) typeNode.get();
+ addSuppressWarningsAll(field.mods, typeNode, field.pos);
type.defs = type.defs.append(field);
typeNode.add(field, Kind.FIELD).recursiveSetHandled();
@@ -300,11 +303,23 @@ public class JavacHandlerUtil {
}
}
+ addSuppressWarningsAll(method.mods, typeNode, method.pos);
type.defs = type.defs.append(method);
typeNode.add(method, Kind.METHOD).recursiveSetHandled();
}
+ private static void addSuppressWarningsAll(JCModifiers mods, JavacNode node, int pos) {
+ TreeMaker maker = node.getTreeMaker();
+ JCExpression suppressWarningsType = chainDots(maker, node, "java", "lang", "SuppressWarnings");
+ JCLiteral allLiteral = maker.Literal("all");
+ suppressWarningsType.pos = pos;
+ allLiteral.pos = pos;
+ JCAnnotation annotation = maker.Annotation(suppressWarningsType, List.<JCExpression>of(allLiteral));
+ annotation.pos = pos;
+ mods.annotations = mods.annotations.append(annotation);
+ }
+
private static List<JCTree> addAllButOne(List<JCTree> defs, int idx) {
List<JCTree> out = List.nil();
int i = 0;