aboutsummaryrefslogtreecommitdiff
path: root/src/core/lombok/javac/handlers
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2014-01-09 04:46:59 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2014-01-09 04:46:59 +0100
commit685ddfd52ebba4ca85ff93e08de14f38ecd8714b (patch)
tree74a1c6d51de69414e57ee7e187865d8841b2d091 /src/core/lombok/javac/handlers
parent7bbe19f1b8982e21ef0aa94644397b4961a5c470 (diff)
downloadlombok-685ddfd52ebba4ca85ff93e08de14f38ecd8714b.tar.gz
lombok-685ddfd52ebba4ca85ff93e08de14f38ecd8714b.tar.bz2
lombok-685ddfd52ebba4ca85ff93e08de14f38ecd8714b.zip
Added code to NOT add @SuppressWarnings to things if a @SuppressWarnings is already there. Lombok itself can't ever do that anyway (we don't add @SW except to things we just generated fresh), but some lombok extension builders do, and this helps them.
Diffstat (limited to 'src/core/lombok/javac/handlers')
-rw-r--r--src/core/lombok/javac/handlers/JavacHandlerUtil.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/lombok/javac/handlers/JavacHandlerUtil.java b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
index 03c2dcff..d6d47b6c 100644
--- a/src/core/lombok/javac/handlers/JavacHandlerUtil.java
+++ b/src/core/lombok/javac/handlers/JavacHandlerUtil.java
@@ -918,6 +918,14 @@ public class JavacHandlerUtil {
private static void addSuppressWarningsAll(JCModifiers mods, JavacNode node, int pos, JCTree source, Context context) {
if (!LombokOptionsFactory.getDelombokOptions(context).getFormatPreferences().generateSuppressWarnings()) return;
+ for (JCAnnotation ann : mods.annotations) {
+ JCTree annType = ann.getAnnotationType();
+ Name lastPart = null;
+ if (annType instanceof JCIdent) lastPart = ((JCIdent) annType).name;
+ else if (annType instanceof JCFieldAccess) lastPart = ((JCFieldAccess) annType).name;
+
+ if (lastPart != null && lastPart.contentEquals("SuppressWarnings")) return;
+ }
JavacTreeMaker maker = node.getTreeMaker();
JCExpression suppressWarningsType = genJavaLangTypeRef(node, "SuppressWarnings");
JCLiteral allLiteral = maker.Literal("all");