aboutsummaryrefslogtreecommitdiff
path: root/test/transform/resource
diff options
context:
space:
mode:
Diffstat (limited to 'test/transform/resource')
-rw-r--r--test/transform/resource/after-delombok/BuilderConstructorJavadoc.java85
-rw-r--r--test/transform/resource/after-delombok/BuilderDefaults.java8
-rw-r--r--test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java30
-rw-r--r--test/transform/resource/after-delombok/DelegateAlreadyImplemented.java43
-rw-r--r--test/transform/resource/after-delombok/DelegateGenerics.java32
-rw-r--r--test/transform/resource/after-delombok/DelegateWithVarargs2.java12
-rw-r--r--test/transform/resource/after-delombok/EqualsAndHashCodeRank.java31
-rw-r--r--test/transform/resource/after-delombok/GetterLazyArguments.java101
-rw-r--r--test/transform/resource/after-delombok/GetterSetterJavadoc.java2
-rw-r--r--test/transform/resource/after-delombok/JacksonBuilderSingular.java177
-rw-r--r--test/transform/resource/after-delombok/LoggerCommons.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java6
-rw-r--r--test/transform/resource/after-delombok/LoggerJBossLog.java6
-rw-r--r--test/transform/resource/after-delombok/LoggerJul.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerLog4j.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerLog4j2.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerSlf4j.java17
-rw-r--r--test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/after-delombok/LoggerXSlf4j.java5
-rw-r--r--test/transform/resource/after-delombok/SkipSuppressWarnings.java24
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderBasic.java4
-rw-r--r--test/transform/resource/after-delombok/SuperBuilderCustomized.java15
-rw-r--r--test/transform/resource/after-delombok/TypeUseAnnotations.java10
-rw-r--r--test/transform/resource/after-delombok/ValLambda.java6
-rw-r--r--test/transform/resource/after-delombok/ValueStaticConstructorOf.java10
-rw-r--r--test/transform/resource/after-ecj/BuilderConstructorJavadoc.java40
-rw-r--r--test/transform/resource/after-ecj/BuilderDefaults.java10
-rw-r--r--test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java37
-rw-r--r--test/transform/resource/after-ecj/DelegateAlreadyImplemented.java29
-rw-r--r--test/transform/resource/after-ecj/DelegateGenerics.java24
-rw-r--r--test/transform/resource/after-ecj/DelegateWithVarargs2.java17
-rw-r--r--test/transform/resource/after-ecj/EqualsAndHashCodeAnnotated.java53
-rw-r--r--test/transform/resource/after-ecj/EqualsAndHashCodeRank.java36
-rw-r--r--test/transform/resource/after-ecj/GetterLazyArguments.java106
-rw-r--r--test/transform/resource/after-ecj/JacksonBuilderSingular.java164
-rw-r--r--test/transform/resource/after-ecj/LoggerCommons.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerJBossLog.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerJul.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerLog4j.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerLog4j2.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerSlf4j.java27
-rw-r--r--test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java9
-rw-r--r--test/transform/resource/after-ecj/LoggerXSlf4j.java11
-rw-r--r--test/transform/resource/after-ecj/SimpleTypeResolution.java2
-rw-r--r--test/transform/resource/after-ecj/SkipSuppressWarnings.java27
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderBasic.java4
-rw-r--r--test/transform/resource/after-ecj/SuperBuilderCustomized.java8
-rw-r--r--test/transform/resource/after-ecj/TypeUseAnnotations.java9
-rw-r--r--test/transform/resource/after-ecj/ValLambda.java6
-rw-r--r--test/transform/resource/after-ecj/ValueStaticConstructorOf.java14
-rw-r--r--test/transform/resource/before/BuilderConstructorJavadoc.java35
-rw-r--r--test/transform/resource/before/CheckerFrameworkSuperBuilder.java2
-rw-r--r--test/transform/resource/before/DelegateAlreadyImplemented.java45
-rw-r--r--test/transform/resource/before/DelegateGenerics.java14
-rw-r--r--test/transform/resource/before/DelegateWithVarargs2.java9
-rw-r--r--test/transform/resource/before/EqualsAndHashCodeRank.java7
-rw-r--r--test/transform/resource/before/GetterLazyArguments.java21
-rw-r--r--test/transform/resource/before/JacksonBuilderSingular.java31
-rw-r--r--test/transform/resource/before/LoggerCommons.java5
-rw-r--r--test/transform/resource/before/LoggerCustomWithTopicAndName.java5
-rw-r--r--test/transform/resource/before/LoggerJBossLog.java5
-rw-r--r--test/transform/resource/before/LoggerJul.java5
-rw-r--r--test/transform/resource/before/LoggerLog4j.java5
-rw-r--r--test/transform/resource/before/LoggerLog4j2.java5
-rw-r--r--test/transform/resource/before/LoggerSlf4j.java14
-rw-r--r--test/transform/resource/before/LoggerSlf4jInvalidTopic.java5
-rw-r--r--test/transform/resource/before/LoggerXSlf4j.java5
-rw-r--r--test/transform/resource/before/SkipSuppressWarnings.java9
-rw-r--r--test/transform/resource/before/SuperBuilderBasic.java2
-rw-r--r--test/transform/resource/before/SuperBuilderCustomized.java10
-rw-r--r--test/transform/resource/before/TypeUseAnnotations.java2
-rw-r--r--test/transform/resource/before/ValLambda.java6
-rw-r--r--test/transform/resource/before/ValLub.java10
-rw-r--r--test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages2
-rw-r--r--test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/SkipSuppressWarnings.java.messages1
-rw-r--r--test/transform/resource/messages-ecj/ValLambda.java.messages4
-rw-r--r--test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages1
81 files changed, 1520 insertions, 86 deletions
diff --git a/test/transform/resource/after-delombok/BuilderConstructorJavadoc.java b/test/transform/resource/after-delombok/BuilderConstructorJavadoc.java
new file mode 100644
index 00000000..96673b1a
--- /dev/null
+++ b/test/transform/resource/after-delombok/BuilderConstructorJavadoc.java
@@ -0,0 +1,85 @@
+import java.util.List;
+
+class BuilderConstructorJavadoc<T> {
+ /**
+ * This is a comment
+ *
+ * @param basic tag is moved to the setter
+ * @param multiline a param comment
+ * can be on multiple lines and can use
+ * {@code @code} or <code>tags</code>
+ * @param predef don't copy this one
+ * @param predefWithJavadoc don't copy this one
+ */
+ BuilderConstructorJavadoc(int basic, int multiline, int predef, int predefWithJavadoc) {
+ }
+
+
+ public static class BuilderConstructorJavadocBuilder<T> {
+ @java.lang.SuppressWarnings("all")
+ private int basic;
+ @java.lang.SuppressWarnings("all")
+ private int multiline;
+ @java.lang.SuppressWarnings("all")
+ private int predef;
+ @java.lang.SuppressWarnings("all")
+ private int predefWithJavadoc;
+
+ public BuilderConstructorJavadocBuilder<T> predef(final int x) {
+ this.predef = x;
+ return this;
+ }
+
+ /**
+ * This javadoc remains untouched.
+ * @param x 1/100 of the thing
+ * @return the updated builder
+ */
+ public BuilderConstructorJavadocBuilder<T> predefWithJavadoc(final int x) {
+ this.predefWithJavadoc = x;
+ return this;
+ }
+
+ @java.lang.SuppressWarnings("all")
+ BuilderConstructorJavadocBuilder() {
+ }
+
+ /**
+ * @param basic tag is moved to the setter
+ * @return {@code this}.
+ */
+ @java.lang.SuppressWarnings("all")
+ public BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> basic(final int basic) {
+ this.basic = basic;
+ return this;
+ }
+
+ /**
+ * @param multiline a param comment
+ * can be on multiple lines and can use
+ * {@code @code} or <code>tags</code>
+ * @return {@code this}.
+ */
+ @java.lang.SuppressWarnings("all")
+ public BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> multiline(final int multiline) {
+ this.multiline = multiline;
+ return this;
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public BuilderConstructorJavadoc<T> build() {
+ return new BuilderConstructorJavadoc<T>(this.basic, this.multiline, this.predef, this.predefWithJavadoc);
+ }
+
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder(basic=" + this.basic + ", multiline=" + this.multiline + ", predef=" + this.predef + ", predefWithJavadoc=" + this.predefWithJavadoc + ")";
+ }
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public static <T> BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> builder() {
+ return new BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T>();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/BuilderDefaults.java b/test/transform/resource/after-delombok/BuilderDefaults.java
index 5a563024..42b751ce 100644
--- a/test/transform/resource/after-delombok/BuilderDefaults.java
+++ b/test/transform/resource/after-delombok/BuilderDefaults.java
@@ -85,10 +85,10 @@ public final class BuilderDefaults {
if (!(o instanceof BuilderDefaults)) return false;
final BuilderDefaults other = (BuilderDefaults) o;
if (this.getX() != other.getX()) return false;
+ if (this.getZ() != other.getZ()) return false;
final java.lang.Object this$name = this.getName();
final java.lang.Object other$name = other.getName();
if (this$name == null ? other$name != null : !this$name.equals(other$name)) return false;
- if (this.getZ() != other.getZ()) return false;
return true;
}
@java.lang.Override
@@ -97,10 +97,10 @@ public final class BuilderDefaults {
final int PRIME = 59;
int result = 1;
result = result * PRIME + this.getX();
- final java.lang.Object $name = this.getName();
- result = result * PRIME + ($name == null ? 43 : $name.hashCode());
final long $z = this.getZ();
result = result * PRIME + (int) ($z >>> 32 ^ $z);
+ final java.lang.Object $name = this.getName();
+ result = result * PRIME + ($name == null ? 43 : $name.hashCode());
return result;
}
@java.lang.Override
@@ -108,4 +108,4 @@ public final class BuilderDefaults {
public java.lang.String toString() {
return "BuilderDefaults(x=" + this.getX() + ", name=" + this.getName() + ", z=" + this.getZ() + ")";
}
-}
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java b/test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java
index 0f7f8997..30408c3b 100644
--- a/test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java
+++ b/test/transform/resource/after-delombok/CheckerFrameworkSuperBuilder.java
@@ -124,7 +124,7 @@ class CheckerFrameworkSuperBuilder {
return new CheckerFrameworkSuperBuilder.Parent.ParentBuilderImpl();
}
}
- public static class Child extends Parent {
+ public static class ZChild extends Parent {
int a;
int b;
@java.lang.SuppressWarnings("all")
@@ -132,7 +132,7 @@ class CheckerFrameworkSuperBuilder {
return 1;
}
@java.lang.SuppressWarnings("all")
- public static abstract class ChildBuilder<C extends CheckerFrameworkSuperBuilder.Child, B extends CheckerFrameworkSuperBuilder.Child.ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ public static abstract class ZChildBuilder<C extends CheckerFrameworkSuperBuilder.ZChild, B extends CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
@java.lang.SuppressWarnings("all")
private boolean a$set;
@java.lang.SuppressWarnings("all")
@@ -147,17 +147,17 @@ class CheckerFrameworkSuperBuilder {
@org.checkerframework.dataflow.qual.SideEffectFree
@java.lang.Override
@java.lang.SuppressWarnings("all")
- public abstract C build(@org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.Child this);
+ public abstract C build(@org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.ZChild this);
@org.checkerframework.checker.builder.qual.ReturnsReceiver
@java.lang.SuppressWarnings("all")
- public B a(@org.checkerframework.checker.builder.qual.NotCalledMethods("a") CheckerFrameworkSuperBuilder.Child.ChildBuilder<C, B> this, final int a) {
+ public B a(@org.checkerframework.checker.builder.qual.NotCalledMethods("a") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<C, B> this, final int a) {
this.a$value = a;
a$set = true;
return self();
}
@org.checkerframework.checker.builder.qual.ReturnsReceiver
@java.lang.SuppressWarnings("all")
- public B b(@org.checkerframework.checker.builder.qual.NotCalledMethods("b") CheckerFrameworkSuperBuilder.Child.ChildBuilder<C, B> this, final int b) {
+ public B b(@org.checkerframework.checker.builder.qual.NotCalledMethods("b") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<C, B> this, final int b) {
this.b = b;
return self();
}
@@ -165,41 +165,41 @@ class CheckerFrameworkSuperBuilder {
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
- return "CheckerFrameworkSuperBuilder.Child.ChildBuilder(super=" + super.toString() + ", a$value=" + this.a$value + ", b=" + this.b + ")";
+ return "CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder(super=" + super.toString() + ", a$value=" + this.a$value + ", b=" + this.b + ")";
}
}
@java.lang.SuppressWarnings("all")
- private static final class ChildBuilderImpl extends CheckerFrameworkSuperBuilder.Child.ChildBuilder<CheckerFrameworkSuperBuilder.Child, CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl> {
+ private static final class ZChildBuilderImpl extends CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<CheckerFrameworkSuperBuilder.ZChild, CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl> {
@org.checkerframework.common.aliasing.qual.Unique
@java.lang.SuppressWarnings("all")
- private ChildBuilderImpl() {
+ private ZChildBuilderImpl() {
}
@java.lang.Override
@org.checkerframework.checker.builder.qual.ReturnsReceiver
@org.checkerframework.dataflow.qual.Pure
@java.lang.SuppressWarnings("all")
- protected CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl self() {
+ protected CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl self() {
return this;
}
@org.checkerframework.dataflow.qual.SideEffectFree
@java.lang.Override
@java.lang.SuppressWarnings("all")
- public CheckerFrameworkSuperBuilder.Child build(@org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl this) {
- return new CheckerFrameworkSuperBuilder.Child(this);
+ public CheckerFrameworkSuperBuilder.ZChild build(@org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl this) {
+ return new CheckerFrameworkSuperBuilder.ZChild(this);
}
}
@org.checkerframework.dataflow.qual.SideEffectFree
@java.lang.SuppressWarnings("all")
- protected Child(final CheckerFrameworkSuperBuilder.Child.ChildBuilder<?, ?> b) {
+ protected ZChild(final CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<?, ?> b) {
super(b);
if (b.a$set) this.a = b.a$value;
- else this.a = CheckerFrameworkSuperBuilder.Child.$default$a();
+ else this.a = CheckerFrameworkSuperBuilder.ZChild.$default$a();
this.b = b.b;
}
@org.checkerframework.dataflow.qual.SideEffectFree
@java.lang.SuppressWarnings("all")
- public static CheckerFrameworkSuperBuilder.Child.ChildBuilder<?, ?> builder() {
- return new CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl();
+ public static CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<?, ?> builder() {
+ return new CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl();
}
}
} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/DelegateAlreadyImplemented.java b/test/transform/resource/after-delombok/DelegateAlreadyImplemented.java
new file mode 100644
index 00000000..c876d8ce
--- /dev/null
+++ b/test/transform/resource/after-delombok/DelegateAlreadyImplemented.java
@@ -0,0 +1,43 @@
+public class DelegateAlreadyImplemented<T> {
+ private A<Integer, T> a;
+
+ public void a() {
+ }
+
+ public void b(java.util.List<String> l) {
+ }
+
+ public void c(java.util.List<Integer> l, String[] a, Integer... varargs) {
+ }
+
+ public void d(String[][][][] d) {
+ }
+
+ public <Y> void e(Y x) {
+ }
+
+ @SuppressWarnings("unchecked")
+ public void f(T s, java.util.List<T> l, T[] a, T... varargs) {
+ }
+
+ public void g(Number g) {
+ }
+}
+
+interface A<T, T2> {
+ void a();
+
+ void b(java.util.List<T> l);
+
+ @SuppressWarnings("unchecked")
+ void c(java.util.List<T> l, String[] a, T... varargs);
+
+ void d(String[][][][] d);
+
+ <X> X e(X x);
+
+ @SuppressWarnings("unchecked")
+ void f(T2 s, java.util.List<T2> l, T2[] a, T2... varargs);
+
+ <G extends Number> void g(G g);
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/DelegateGenerics.java b/test/transform/resource/after-delombok/DelegateGenerics.java
new file mode 100644
index 00000000..894776ea
--- /dev/null
+++ b/test/transform/resource/after-delombok/DelegateGenerics.java
@@ -0,0 +1,32 @@
+public class DelegateGenerics<T> {
+ I1<T> target;
+
+ @java.lang.SuppressWarnings("all")
+ public java.lang.Integer t(final java.lang.Integer t) {
+ return this.target.t(t);
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String i(final java.lang.String a) {
+ return this.target.i(a);
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public T a(final T a) {
+ return this.target.a(a);
+ }
+}
+
+interface I1<T> extends I2<T, Integer, String> {
+}
+
+interface I2<A, T, I> extends I3<Integer, I, A> {
+}
+
+interface I3<T, I, A> {
+ T t(T t);
+
+ I i(I a);
+
+ A a(A a);
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/DelegateWithVarargs2.java b/test/transform/resource/after-delombok/DelegateWithVarargs2.java
new file mode 100644
index 00000000..a8ff6e3b
--- /dev/null
+++ b/test/transform/resource/after-delombok/DelegateWithVarargs2.java
@@ -0,0 +1,12 @@
+class DelegateWithVarargs2 {
+ private DelegateWithVarargs2.B bar;
+ public class B {
+ public void varargs(Object[]... keys) {
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ public void varargs(final java.lang.Object[]... keys) {
+ this.bar.varargs(keys);
+ }
+}
+
diff --git a/test/transform/resource/after-delombok/EqualsAndHashCodeRank.java b/test/transform/resource/after-delombok/EqualsAndHashCodeRank.java
new file mode 100644
index 00000000..fcf371b6
--- /dev/null
+++ b/test/transform/resource/after-delombok/EqualsAndHashCodeRank.java
@@ -0,0 +1,31 @@
+public class EqualsAndHashCodeRank {
+ int a;
+ int b;
+ int c;
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof EqualsAndHashCodeRank)) return false;
+ final EqualsAndHashCodeRank other = (EqualsAndHashCodeRank) o;
+ if (!other.canEqual((java.lang.Object) this)) return false;
+ if (this.a != other.a) return false;
+ if (this.c != other.c) return false;
+ if (this.b != other.b) return false;
+ return true;
+ }
+ @java.lang.SuppressWarnings("all")
+ protected boolean canEqual(final java.lang.Object other) {
+ return other instanceof EqualsAndHashCodeRank;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = result * PRIME + this.a;
+ result = result * PRIME + this.c;
+ result = result * PRIME + this.b;
+ return result;
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/GetterLazyArguments.java b/test/transform/resource/after-delombok/GetterLazyArguments.java
new file mode 100644
index 00000000..a8a422c0
--- /dev/null
+++ b/test/transform/resource/after-delombok/GetterLazyArguments.java
@@ -0,0 +1,101 @@
+class GetterLazyArguments {
+ static String fun() {
+ return null;
+ }
+
+ static String stringInt(String arg1, Integer arg2) {
+ return null;
+ }
+
+ static String stringRunnable(String arg1, Runnable arg2) {
+ return null;
+ }
+
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field1 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field2 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field3 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field4 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field5 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+
+ @java.lang.SuppressWarnings({"all", "unchecked"})
+ public String getField1() {
+ java.lang.Object value = this.field1.get();
+ if (value == null) {
+ synchronized (this.field1) {
+ value = this.field1.get();
+ if (value == null) {
+ final String actualValue = stringInt(("a"), (1));
+ value = actualValue == null ? this.field1 : actualValue;
+ this.field1.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field1 ? null : value);
+ }
+
+ @java.lang.SuppressWarnings({"all", "unchecked"})
+ public String getField2() {
+ java.lang.Object value = this.field2.get();
+ if (value == null) {
+ synchronized (this.field2) {
+ value = this.field2.get();
+ if (value == null) {
+ final String actualValue = stringInt(true ? "a" : "b", true ? 1 : 0);
+ value = actualValue == null ? this.field2 : actualValue;
+ this.field2.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field2 ? null : value);
+ }
+
+ @java.lang.SuppressWarnings({"all", "unchecked"})
+ public String getField3() {
+ java.lang.Object value = this.field3.get();
+ if (value == null) {
+ synchronized (this.field3) {
+ value = this.field3.get();
+ if (value == null) {
+ final String actualValue = stringInt(("a"), true ? 1 : 0);
+ value = actualValue == null ? this.field3 : actualValue;
+ this.field3.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field3 ? null : value);
+ }
+
+ @java.lang.SuppressWarnings({"all", "unchecked"})
+ public String getField4() {
+ java.lang.Object value = this.field4.get();
+ if (value == null) {
+ synchronized (this.field4) {
+ value = this.field4.get();
+ if (value == null) {
+ final String actualValue = stringRunnable(fun(), () -> {
+ });
+ value = actualValue == null ? this.field4 : actualValue;
+ this.field4.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field4 ? null : value);
+ }
+
+ @java.lang.SuppressWarnings({"all", "unchecked"})
+ public String getField5() {
+ java.lang.Object value = this.field5.get();
+ if (value == null) {
+ synchronized (this.field5) {
+ value = this.field5.get();
+ if (value == null) {
+ final String actualValue = stringRunnable(("a"), () -> {
+ });
+ value = actualValue == null ? this.field5 : actualValue;
+ this.field5.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field5 ? null : value);
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/GetterSetterJavadoc.java b/test/transform/resource/after-delombok/GetterSetterJavadoc.java
index ae662da7..78d120a4 100644
--- a/test/transform/resource/after-delombok/GetterSetterJavadoc.java
+++ b/test/transform/resource/after-delombok/GetterSetterJavadoc.java
@@ -115,7 +115,7 @@ class GetterSetterJavadoc4 {
/**
* Some text
*
- * @param fieldName Hello, World5
+ * @param fieldName Hello, World4
* @return {@code this}.
*/
@java.lang.SuppressWarnings("all")
diff --git a/test/transform/resource/after-delombok/JacksonBuilderSingular.java b/test/transform/resource/after-delombok/JacksonBuilderSingular.java
new file mode 100644
index 00000000..feaa6832
--- /dev/null
+++ b/test/transform/resource/after-delombok/JacksonBuilderSingular.java
@@ -0,0 +1,177 @@
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+@com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = JacksonBuilderSingular.JacksonBuilderSingularBuilder.class)
+public class JacksonBuilderSingular {
+ @JsonAnySetter
+ private Map<String, Object> any;
+ @JsonProperty("v_a_l_u_e_s")
+ private List<String> values;
+ @JsonAnySetter
+ private ImmutableMap<String, Object> guavaAny;
+ @JsonProperty("guava_v_a_l_u_e_s")
+ private ImmutableList<String> guavaValues;
+ @java.lang.SuppressWarnings("all")
+ JacksonBuilderSingular(final Map<String, Object> any, final List<String> values, final ImmutableMap<String, Object> guavaAny, final ImmutableList<String> guavaValues) {
+ this.any = any;
+ this.values = values;
+ this.guavaAny = guavaAny;
+ this.guavaValues = guavaValues;
+ }
+ @java.lang.SuppressWarnings("all")
+ @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "", buildMethodName = "build")
+ public static class JacksonBuilderSingularBuilder {
+ @java.lang.SuppressWarnings("all")
+ private java.util.ArrayList<String> any$key;
+ @java.lang.SuppressWarnings("all")
+ private java.util.ArrayList<Object> any$value;
+ @java.lang.SuppressWarnings("all")
+ private java.util.ArrayList<String> values;
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableMap.Builder<String, Object> guavaAny;
+ @java.lang.SuppressWarnings("all")
+ private com.google.common.collect.ImmutableList.Builder<String> guavaValues;
+ @java.lang.SuppressWarnings("all")
+ JacksonBuilderSingularBuilder() {
+ }
+ @JsonAnySetter
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final String anyKey, final Object anyValue) {
+ if (this.any$key == null) {
+ this.any$key = new java.util.ArrayList<String>();
+ this.any$value = new java.util.ArrayList<Object>();
+ }
+ this.any$key.add(anyKey);
+ this.any$value.add(anyValue);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final java.util.Map<? extends String, ? extends Object> any) {
+ if (any == null) {
+ throw new java.lang.NullPointerException("any cannot be null");
+ }
+ if (this.any$key == null) {
+ this.any$key = new java.util.ArrayList<String>();
+ this.any$value = new java.util.ArrayList<Object>();
+ }
+ for (final java.util.Map.Entry<? extends String, ? extends Object> $lombokEntry : any.entrySet()) {
+ this.any$key.add($lombokEntry.getKey());
+ this.any$value.add($lombokEntry.getValue());
+ }
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder clearAny() {
+ if (this.any$key != null) {
+ this.any$key.clear();
+ this.any$value.clear();
+ }
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder value(final String value) {
+ if (this.values == null) this.values = new java.util.ArrayList<String>();
+ this.values.add(value);
+ return this;
+ }
+ @JsonProperty("v_a_l_u_e_s")
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder values(final java.util.Collection<? extends String> values) {
+ if (values == null) {
+ throw new java.lang.NullPointerException("values cannot be null");
+ }
+ if (this.values == null) this.values = new java.util.ArrayList<String>();
+ this.values.addAll(values);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder clearValues() {
+ if (this.values != null) this.values.clear();
+ return this;
+ }
+ @JsonAnySetter
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final String key, final Object value) {
+ if (this.guavaAny == null) this.guavaAny = com.google.common.collect.ImmutableMap.builder();
+ this.guavaAny.put(key, value);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final java.util.Map<? extends String, ? extends Object> guavaAny) {
+ if (guavaAny == null) {
+ throw new java.lang.NullPointerException("guavaAny cannot be null");
+ }
+ if (this.guavaAny == null) this.guavaAny = com.google.common.collect.ImmutableMap.builder();
+ this.guavaAny.putAll(guavaAny);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaAny() {
+ this.guavaAny = null;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValue(final String guavaValue) {
+ if (this.guavaValues == null) this.guavaValues = com.google.common.collect.ImmutableList.builder();
+ this.guavaValues.add(guavaValue);
+ return this;
+ }
+ @JsonProperty("guava_v_a_l_u_e_s")
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValues(final java.lang.Iterable<? extends String> guavaValues) {
+ if (guavaValues == null) {
+ throw new java.lang.NullPointerException("guavaValues cannot be null");
+ }
+ if (this.guavaValues == null) this.guavaValues = com.google.common.collect.ImmutableList.builder();
+ this.guavaValues.addAll(guavaValues);
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaValues() {
+ this.guavaValues = null;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ public JacksonBuilderSingular build() {
+ java.util.Map<String, Object> any;
+ switch (this.any$key == null ? 0 : this.any$key.size()) {
+ case 0:
+ any = java.util.Collections.emptyMap();
+ break;
+ case 1:
+ any = java.util.Collections.singletonMap(this.any$key.get(0), this.any$value.get(0));
+ break;
+ default:
+ any = new java.util.LinkedHashMap<String, Object>(this.any$key.size() < 1073741824 ? 1 + this.any$key.size() + (this.any$key.size() - 3) / 3 : java.lang.Integer.MAX_VALUE);
+ for (int $i = 0; $i < this.any$key.size(); $i++) any.put(this.any$key.get($i), (Object) this.any$value.get($i));
+ any = java.util.Collections.unmodifiableMap(any);
+ }
+ java.util.List<String> values;
+ switch (this.values == null ? 0 : this.values.size()) {
+ case 0:
+ values = java.util.Collections.emptyList();
+ break;
+ case 1:
+ values = java.util.Collections.singletonList(this.values.get(0));
+ break;
+ default:
+ values = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.values));
+ }
+ com.google.common.collect.ImmutableMap<String, Object> guavaAny = this.guavaAny == null ? com.google.common.collect.ImmutableMap.<String, Object>of() : this.guavaAny.build();
+ com.google.common.collect.ImmutableList<String> guavaValues = this.guavaValues == null ? com.google.common.collect.ImmutableList.<String>of() : this.guavaValues.build();
+ return new JacksonBuilderSingular(any, values, guavaAny, guavaValues);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ public java.lang.String toString() {
+ return "JacksonBuilderSingular.JacksonBuilderSingularBuilder(any$key=" + this.any$key + ", any$value=" + this.any$value + ", values=" + this.values + ", guavaAny=" + this.guavaAny + ", guavaValues=" + this.guavaValues + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ public static JacksonBuilderSingular.JacksonBuilderSingularBuilder builder() {
+ return new JacksonBuilderSingular.JacksonBuilderSingularBuilder();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerCommons.java b/test/transform/resource/after-delombok/LoggerCommons.java
index 954e730b..4b943da7 100644
--- a/test/transform/resource/after-delombok/LoggerCommons.java
+++ b/test/transform/resource/after-delombok/LoggerCommons.java
@@ -10,3 +10,8 @@ class LoggerCommonsWithDifferentName {
@java.lang.SuppressWarnings("all")
private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog("DifferentName");
}
+class LoggerCommonsWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java b/test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java
index abb785b9..4db02cc1 100644
--- a/test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java
+++ b/test/transform/resource/after-delombok/LoggerCustomWithTopicAndName.java
@@ -3,6 +3,12 @@ class LoggerCustomLog {
private static final MyLoggerFactory log = MyLoggerFactory.create(LoggerCustomLog.class.getName(), "t", null, LoggerCustomLog.class, "t");
}
+class LoggerCustomLogWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final MyLoggerFactory log = MyLoggerFactory.create(LoggerCustomLogWithStaticField.class.getName(), LoggerCustomLogWithStaticField.TOPIC, null, LoggerCustomLogWithStaticField.class, LoggerCustomLogWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+}
+
class MyLoggerFactory {
static MyLoggerFactory create(String name, String t1, Object o, Class<?> clazz, String t2) {
return null;
diff --git a/test/transform/resource/after-delombok/LoggerJBossLog.java b/test/transform/resource/after-delombok/LoggerJBossLog.java
index 41c18805..5fd98aa6 100644
--- a/test/transform/resource/after-delombok/LoggerJBossLog.java
+++ b/test/transform/resource/after-delombok/LoggerJBossLog.java
@@ -17,3 +17,9 @@ class LoggerJBossLogWithDifferentLoggerName {
@java.lang.SuppressWarnings("all")
private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger("DifferentLogger");
}
+
+class LoggerJBossLogWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerJul.java b/test/transform/resource/after-delombok/LoggerJul.java
index 63f96733..cfb44fde 100644
--- a/test/transform/resource/after-delombok/LoggerJul.java
+++ b/test/transform/resource/after-delombok/LoggerJul.java
@@ -10,3 +10,8 @@ class LoggerJulWithDifferentName {
@java.lang.SuppressWarnings("all")
private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger("DifferentName");
}
+class LoggerJulWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerLog4j.java b/test/transform/resource/after-delombok/LoggerLog4j.java
index 7d9d4409..cef83621 100644
--- a/test/transform/resource/after-delombok/LoggerLog4j.java
+++ b/test/transform/resource/after-delombok/LoggerLog4j.java
@@ -10,3 +10,8 @@ class LoggerLog4jWithDifferentName {
@java.lang.SuppressWarnings("all")
private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("DifferentName");
}
+class LoggerLog4jWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+}
diff --git a/test/transform/resource/after-delombok/LoggerLog4j2.java b/test/transform/resource/after-delombok/LoggerLog4j2.java
index 3d8b7b5b..b32c7722 100644
--- a/test/transform/resource/after-delombok/LoggerLog4j2.java
+++ b/test/transform/resource/after-delombok/LoggerLog4j2.java
@@ -10,3 +10,8 @@ class LoggerLog4j2WithDifferentName {
@java.lang.SuppressWarnings("all")
private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger("DifferentName");
}
+class LoggerLog4j2WithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2WithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerSlf4j.java b/test/transform/resource/after-delombok/LoggerSlf4j.java
index 68d685f0..70f11ae4 100644
--- a/test/transform/resource/after-delombok/LoggerSlf4j.java
+++ b/test/transform/resource/after-delombok/LoggerSlf4j.java
@@ -17,3 +17,20 @@ class LoggerSlf4jWithDifferentLoggerName {
@java.lang.SuppressWarnings("all")
private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("DifferentLogger");
}
+
+class LoggerSlf4jWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+}
+
+class LoggerSlf4jWithTwoStaticFields {
+ @java.lang.SuppressWarnings("all")
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithTwoStaticFields.TOPIC + LoggerSlf4jWithTwoStaticFields.TOPIC);
+ static final String TOPIC = "StaticField";
+}
+
+class LoggerSlf4jWithTwoLiterals {
+ @java.lang.SuppressWarnings("all")
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("A" + "B");
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java b/test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java
new file mode 100644
index 00000000..86e6ae2c
--- /dev/null
+++ b/test/transform/resource/after-delombok/LoggerSlf4jInvalidTopic.java
@@ -0,0 +1,5 @@
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j(topic = 42)
+class LoggerSlf4jWithIntegerTopic {
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/LoggerXSlf4j.java b/test/transform/resource/after-delombok/LoggerXSlf4j.java
index 781733cf..ba0ec3f8 100644
--- a/test/transform/resource/after-delombok/LoggerXSlf4j.java
+++ b/test/transform/resource/after-delombok/LoggerXSlf4j.java
@@ -10,3 +10,8 @@ class LoggerXSlf4jWithDifferentName {
@java.lang.SuppressWarnings("all")
private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger("DifferentName");
}
+class LoggerXSlf4jWithStaticField {
+ @java.lang.SuppressWarnings("all")
+ private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/SkipSuppressWarnings.java b/test/transform/resource/after-delombok/SkipSuppressWarnings.java
new file mode 100644
index 00000000..151d4e17
--- /dev/null
+++ b/test/transform/resource/after-delombok/SkipSuppressWarnings.java
@@ -0,0 +1,24 @@
+class SkipSuppressWarnings {
+ private String field = "";
+ private final java.util.concurrent.atomic.AtomicReference<java.lang.Object> field2 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+
+ public String getField() {
+ return this.field;
+ }
+
+ @java.lang.SuppressWarnings({"unchecked"})
+ public String getField2() {
+ java.lang.Object value = this.field2.get();
+ if (value == null) {
+ synchronized (this.field2) {
+ value = this.field2.get();
+ if (value == null) {
+ final String actualValue = "";
+ value = actualValue == null ? this.field2 : actualValue;
+ this.field2.set(value);
+ }
+ }
+ }
+ return (String) (value == this.field2 ? null : value);
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-delombok/SuperBuilderBasic.java b/test/transform/resource/after-delombok/SuperBuilderBasic.java
index c347e41c..c3fa86f2 100644
--- a/test/transform/resource/after-delombok/SuperBuilderBasic.java
+++ b/test/transform/resource/after-delombok/SuperBuilderBasic.java
@@ -81,10 +81,10 @@ public class SuperBuilderBasic {
return new SuperBuilderBasic.Parent.ParentBuilderImpl();
}
}
- public static class Child extends Parent {
+ public static class Child extends SuperBuilderBasic.Parent {
double field3;
@java.lang.SuppressWarnings("all")
- public static abstract class ChildBuilder<C extends SuperBuilderBasic.Child, B extends SuperBuilderBasic.Child.ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ public static abstract class ChildBuilder<C extends SuperBuilderBasic.Child, B extends SuperBuilderBasic.Child.ChildBuilder<C, B>> extends SuperBuilderBasic.Parent.ParentBuilder<C, B> {
@java.lang.SuppressWarnings("all")
private double field3;
@java.lang.Override
diff --git a/test/transform/resource/after-delombok/SuperBuilderCustomized.java b/test/transform/resource/after-delombok/SuperBuilderCustomized.java
index bffa72fa..f66133c9 100644
--- a/test/transform/resource/after-delombok/SuperBuilderCustomized.java
+++ b/test/transform/resource/after-delombok/SuperBuilderCustomized.java
@@ -23,6 +23,13 @@ public class SuperBuilderCustomized {
}
}
int field1;
+ protected Parent(ParentBuilder<?, ?> b) {
+ if (b.field1 == 0) throw new IllegalArgumentException("field1 must be != 0");
+ this.field1 = b.field1;
+ }
+ public static SuperBuilderCustomized.Parent.ParentBuilder<?, ?> builder(int field1) {
+ return new SuperBuilderCustomized.Parent.ParentBuilderImpl().field1(field1);
+ }
@java.lang.SuppressWarnings("all")
private static final class ParentBuilderImpl extends SuperBuilderCustomized.Parent.ParentBuilder<SuperBuilderCustomized.Parent, SuperBuilderCustomized.Parent.ParentBuilderImpl> {
@java.lang.SuppressWarnings("all")
@@ -39,14 +46,6 @@ public class SuperBuilderCustomized {
return new SuperBuilderCustomized.Parent(this);
}
}
- @java.lang.SuppressWarnings("all")
- protected Parent(final SuperBuilderCustomized.Parent.ParentBuilder<?, ?> b) {
- this.field1 = b.field1;
- }
- @java.lang.SuppressWarnings("all")
- public static SuperBuilderCustomized.Parent.ParentBuilder<?, ?> builder() {
- return new SuperBuilderCustomized.Parent.ParentBuilderImpl();
- }
}
public static class Child extends Parent {
private static final class ChildBuilderImpl extends ChildBuilder<Child, ChildBuilderImpl> {
diff --git a/test/transform/resource/after-delombok/TypeUseAnnotations.java b/test/transform/resource/after-delombok/TypeUseAnnotations.java
index 1e1536bf..fbf32577 100644
--- a/test/transform/resource/after-delombok/TypeUseAnnotations.java
+++ b/test/transform/resource/after-delombok/TypeUseAnnotations.java
@@ -7,8 +7,18 @@ import java.util.List;
}
class TypeUseAnnotations {
List<@TA(x = 5) String> foo;
+ List<TypeUseAnnotations.@TA(x = 5) Inner> bar;
+
+ class Inner {
+ }
+
@java.lang.SuppressWarnings("all")
public List<@TA(x = 5) String> getFoo() {
return this.foo;
}
+
+ @java.lang.SuppressWarnings("all")
+ public List<TypeUseAnnotations.@TA(x = 5) Inner> getBar() {
+ return this.bar;
+ }
}
diff --git a/test/transform/resource/after-delombok/ValLambda.java b/test/transform/resource/after-delombok/ValLambda.java
index 24ae3b5f..910e3506 100644
--- a/test/transform/resource/after-delombok/ValLambda.java
+++ b/test/transform/resource/after-delombok/ValLambda.java
@@ -1,4 +1,6 @@
// version 8:
+import java.io.Serializable;
+
class ValLambda {
static {
final java.lang.Runnable foo = (System.currentTimeMillis() > 0) ? (Runnable) () -> {
@@ -15,8 +17,8 @@ class ValLambda {
};
}
- public void easyIntersectionLambda() {
- final java.lang.Runnable foo = (Runnable & java.io.Serializable) () -> {
+ public void intersectionLambda() {
+ final java.io.Serializable foo = (Runnable & Serializable) () -> {
};
final java.io.Serializable bar = (java.io.Serializable & Runnable) () -> {
};
diff --git a/test/transform/resource/after-delombok/ValueStaticConstructorOf.java b/test/transform/resource/after-delombok/ValueStaticConstructorOf.java
index fe75f823..e4564628 100644
--- a/test/transform/resource/after-delombok/ValueStaticConstructorOf.java
+++ b/test/transform/resource/after-delombok/ValueStaticConstructorOf.java
@@ -23,12 +23,12 @@ public final class ValueStaticConstructorOf {
if (o == this) return true;
if (!(o instanceof ValueStaticConstructorOf)) return false;
final ValueStaticConstructorOf other = (ValueStaticConstructorOf) o;
- final java.lang.Object this$name = this.getName();
- final java.lang.Object other$name = other.getName();
- if (this$name == null ? other$name != null : !this$name.equals(other$name)) return false;
final java.lang.Object this$price = this.getPrice();
final java.lang.Object other$price = other.getPrice();
if (this$price == null ? other$price != null : !this$price.equals(other$price)) return false;
+ final java.lang.Object this$name = this.getName();
+ final java.lang.Object other$name = other.getName();
+ if (this$name == null ? other$name != null : !this$name.equals(other$name)) return false;
return true;
}
@java.lang.Override
@@ -36,10 +36,10 @@ public final class ValueStaticConstructorOf {
public int hashCode() {
final int PRIME = 59;
int result = 1;
- final java.lang.Object $name = this.getName();
- result = result * PRIME + ($name == null ? 43 : $name.hashCode());
final java.lang.Object $price = this.getPrice();
result = result * PRIME + ($price == null ? 43 : $price.hashCode());
+ final java.lang.Object $name = this.getName();
+ result = result * PRIME + ($name == null ? 43 : $name.hashCode());
return result;
}
@java.lang.Override
diff --git a/test/transform/resource/after-ecj/BuilderConstructorJavadoc.java b/test/transform/resource/after-ecj/BuilderConstructorJavadoc.java
new file mode 100644
index 00000000..bb3916e8
--- /dev/null
+++ b/test/transform/resource/after-ecj/BuilderConstructorJavadoc.java
@@ -0,0 +1,40 @@
+import java.util.List;
+class BuilderConstructorJavadoc<T> {
+ public static class BuilderConstructorJavadocBuilder<T> {
+ private @java.lang.SuppressWarnings("all") int basic;
+ private @java.lang.SuppressWarnings("all") int multiline;
+ private @java.lang.SuppressWarnings("all") int predef;
+ private @java.lang.SuppressWarnings("all") int predefWithJavadoc;
+ public BuilderConstructorJavadocBuilder<T> predef(final int x) {
+ this.predef = x;
+ return this;
+ }
+ public BuilderConstructorJavadocBuilder<T> predefWithJavadoc(final int x) {
+ this.predefWithJavadoc = x;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all") BuilderConstructorJavadocBuilder() {
+ super();
+ }
+ public @java.lang.SuppressWarnings("all") BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> basic(final int basic) {
+ this.basic = basic;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> multiline(final int multiline) {
+ this.multiline = multiline;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") BuilderConstructorJavadoc<T> build() {
+ return new BuilderConstructorJavadoc<T>(this.basic, this.multiline, this.predef, this.predefWithJavadoc);
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
+ return (((((((("BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder(basic=" + this.basic) + ", multiline=") + this.multiline) + ", predef=") + this.predef) + ", predefWithJavadoc=") + this.predefWithJavadoc) + ")");
+ }
+ }
+ @lombok.Builder BuilderConstructorJavadoc(int basic, int multiline, int predef, int predefWithJavadoc) {
+ super();
+ }
+ public static @java.lang.SuppressWarnings("all") <T>BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T> builder() {
+ return new BuilderConstructorJavadoc.BuilderConstructorJavadocBuilder<T>();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/BuilderDefaults.java b/test/transform/resource/after-ecj/BuilderDefaults.java
index 46f55bef..c9be219d 100644
--- a/test/transform/resource/after-ecj/BuilderDefaults.java
+++ b/test/transform/resource/after-ecj/BuilderDefaults.java
@@ -72,25 +72,25 @@ public final @Value @Builder class BuilderDefaults {
final BuilderDefaults other = (BuilderDefaults) o;
if ((this.getX() != other.getX()))
return false;
+ if ((this.getZ() != other.getZ()))
+ return false;
final java.lang.Object this$name = this.getName();
final java.lang.Object other$name = other.getName();
if (((this$name == null) ? (other$name != null) : (! this$name.equals(other$name))))
return false;
- if ((this.getZ() != other.getZ()))
- return false;
return true;
}
public @java.lang.Override @java.lang.SuppressWarnings("all") int hashCode() {
final int PRIME = 59;
int result = 1;
result = ((result * PRIME) + this.getX());
- final java.lang.Object $name = this.getName();
- result = ((result * PRIME) + (($name == null) ? 43 : $name.hashCode()));
final long $z = this.getZ();
result = ((result * PRIME) + (int) ($z ^ ($z >>> 32)));
+ final java.lang.Object $name = this.getName();
+ result = ((result * PRIME) + (($name == null) ? 43 : $name.hashCode()));
return result;
}
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
return (((((("BuilderDefaults(x=" + this.getX()) + ", name=") + this.getName()) + ", z=") + this.getZ()) + ")");
}
-}
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java b/test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java
index 5bd4e1b3..7c8ff0ed 100644
--- a/test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java
+++ b/test/transform/resource/after-ecj/CheckerFrameworkSuperBuilder.java
@@ -9,6 +9,7 @@ class CheckerFrameworkSuperBuilder {
private @java.lang.SuppressWarnings("all") int z;
private @java.lang.SuppressWarnings("all") java.util.ArrayList<String> names;
public ParentBuilder() {
+ super();
}
protected abstract @org.checkerframework.checker.builder.qual.ReturnsReceiver @org.checkerframework.dataflow.qual.Pure @java.lang.SuppressWarnings("all") B self();
public abstract @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") C build(final @org.checkerframework.checker.builder.qual.CalledMethods({"y", "z"}) CheckerFrameworkSuperBuilder.Parent.ParentBuilder this);
@@ -52,6 +53,7 @@ class CheckerFrameworkSuperBuilder {
}
private static final @java.lang.SuppressWarnings("all") class ParentBuilderImpl extends CheckerFrameworkSuperBuilder.Parent.ParentBuilder<CheckerFrameworkSuperBuilder.Parent, CheckerFrameworkSuperBuilder.Parent.ParentBuilderImpl> {
private ParentBuilderImpl() {
+ super();
}
protected @java.lang.Override @org.checkerframework.checker.builder.qual.ReturnsReceiver @org.checkerframework.dataflow.qual.Pure @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.Parent.ParentBuilderImpl self() {
return this;
@@ -92,36 +94,38 @@ class CheckerFrameworkSuperBuilder {
return new CheckerFrameworkSuperBuilder.Parent.ParentBuilderImpl();
}
}
- public static @lombok.experimental.SuperBuilder class Child extends Parent {
- public static abstract @java.lang.SuppressWarnings("all") class ChildBuilder<C extends CheckerFrameworkSuperBuilder.Child, B extends CheckerFrameworkSuperBuilder.Child.ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ public static @lombok.experimental.SuperBuilder class ZChild extends Parent {
+ public static abstract @java.lang.SuppressWarnings("all") class ZChildBuilder<C extends CheckerFrameworkSuperBuilder.ZChild, B extends CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
private @java.lang.SuppressWarnings("all") int a$value;
private @java.lang.SuppressWarnings("all") boolean a$set;
private @java.lang.SuppressWarnings("all") int b;
- public ChildBuilder() {
+ public ZChildBuilder() {
+ super();
}
protected abstract @java.lang.Override @org.checkerframework.checker.builder.qual.ReturnsReceiver @org.checkerframework.dataflow.qual.Pure @java.lang.SuppressWarnings("all") B self();
- public abstract @java.lang.Override @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") C build(final @org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.Child.ChildBuilder this);
- public @org.checkerframework.checker.builder.qual.ReturnsReceiver @java.lang.SuppressWarnings("all") B a(final @org.checkerframework.checker.builder.qual.NotCalledMethods("a") CheckerFrameworkSuperBuilder.Child.ChildBuilder this, final int a) {
+ public abstract @java.lang.Override @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") C build(final @org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder this);
+ public @org.checkerframework.checker.builder.qual.ReturnsReceiver @java.lang.SuppressWarnings("all") B a(final @org.checkerframework.checker.builder.qual.NotCalledMethods("a") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder this, final int a) {
this.a$value = a;
a$set = true;
return self();
}
- public @org.checkerframework.checker.builder.qual.ReturnsReceiver @java.lang.SuppressWarnings("all") B b(final @org.checkerframework.checker.builder.qual.NotCalledMethods("b") CheckerFrameworkSuperBuilder.Child.ChildBuilder this, final int b) {
+ public @org.checkerframework.checker.builder.qual.ReturnsReceiver @java.lang.SuppressWarnings("all") B b(final @org.checkerframework.checker.builder.qual.NotCalledMethods("b") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder this, final int b) {
this.b = b;
return self();
}
public @java.lang.Override @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") java.lang.String toString() {
- return (((((("CheckerFrameworkSuperBuilder.Child.ChildBuilder(super=" + super.toString()) + ", a$value=") + this.a$value) + ", b=") + this.b) + ")");
+ return (((((("CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder(super=" + super.toString()) + ", a$value=") + this.a$value) + ", b=") + this.b) + ")");
}
}
- private static final @java.lang.SuppressWarnings("all") class ChildBuilderImpl extends CheckerFrameworkSuperBuilder.Child.ChildBuilder<CheckerFrameworkSuperBuilder.Child, CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl> {
- private ChildBuilderImpl() {
+ private static final @java.lang.SuppressWarnings("all") class ZChildBuilderImpl extends CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<CheckerFrameworkSuperBuilder.ZChild, CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl> {
+ private ZChildBuilderImpl() {
+ super();
}
- protected @java.lang.Override @org.checkerframework.checker.builder.qual.ReturnsReceiver @org.checkerframework.dataflow.qual.Pure @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl self() {
+ protected @java.lang.Override @org.checkerframework.checker.builder.qual.ReturnsReceiver @org.checkerframework.dataflow.qual.Pure @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl self() {
return this;
}
- public @java.lang.Override @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.Child build(final @org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl this) {
- return new CheckerFrameworkSuperBuilder.Child(this);
+ public @java.lang.Override @org.checkerframework.dataflow.qual.SideEffectFree @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.ZChild build(final @org.checkerframework.checker.builder.qual.CalledMethods("b") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl this) {
+ return new CheckerFrameworkSuperBuilder.ZChild(this);
}
}
@lombok.Builder.Default int a;
@@ -129,18 +133,19 @@ class CheckerFrameworkSuperBuilder {
private static @java.lang.SuppressWarnings("all") int $default$a() {
return 1;
}
- protected @org.checkerframework.common.aliasing.qual.Unique @java.lang.SuppressWarnings("all") Child(final CheckerFrameworkSuperBuilder.Child.ChildBuilder<?, ?> b) {
+ protected @org.checkerframework.common.aliasing.qual.Unique @java.lang.SuppressWarnings("all") ZChild(final CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<?, ?> b) {
super(b);
if (b.a$set)
this.a = b.a$value;
else
- this.a = CheckerFrameworkSuperBuilder.Child.$default$a();
+ this.a = CheckerFrameworkSuperBuilder.ZChild.$default$a();
this.b = b.b;
}
- public static @org.checkerframework.common.aliasing.qual.Unique @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.Child.ChildBuilder<?, ?> builder() {
- return new CheckerFrameworkSuperBuilder.Child.ChildBuilderImpl();
+ public static @org.checkerframework.common.aliasing.qual.Unique @java.lang.SuppressWarnings("all") CheckerFrameworkSuperBuilder.ZChild.ZChildBuilder<?, ?> builder() {
+ return new CheckerFrameworkSuperBuilder.ZChild.ZChildBuilderImpl();
}
}
CheckerFrameworkSuperBuilder() {
+ super();
}
}
diff --git a/test/transform/resource/after-ecj/DelegateAlreadyImplemented.java b/test/transform/resource/after-ecj/DelegateAlreadyImplemented.java
new file mode 100644
index 00000000..1e12f405
--- /dev/null
+++ b/test/transform/resource/after-ecj/DelegateAlreadyImplemented.java
@@ -0,0 +1,29 @@
+public class DelegateAlreadyImplemented<T> {
+ private @lombok.experimental.Delegate A<Integer, T> a;
+ public DelegateAlreadyImplemented() {
+ super();
+ }
+ public void a() {
+ }
+ public void b(java.util.List<String> l) {
+ }
+ public void c(java.util.List<Integer> l, String[] a, Integer... varargs) {
+ }
+ public void d(String[][][][] d) {
+ }
+ public <Y>void e(Y x) {
+ }
+ public @SuppressWarnings("unchecked") void f(T s, java.util.List<T> l, T[] a, T... varargs) {
+ }
+ public void g(Number g) {
+ }
+}
+interface A<T, T2> {
+ public void a();
+ public void b(java.util.List<T> l);
+ public @SuppressWarnings("unchecked") void c(java.util.List<T> l, String[] a, T... varargs);
+ public void d(String[][][][] d);
+ public <X>X e(X x);
+ public @SuppressWarnings("unchecked") void f(T2 s, java.util.List<T2> l, T2[] a, T2... varargs);
+ public <G extends Number>void g(G g);
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/DelegateGenerics.java b/test/transform/resource/after-ecj/DelegateGenerics.java
new file mode 100644
index 00000000..97b05102
--- /dev/null
+++ b/test/transform/resource/after-ecj/DelegateGenerics.java
@@ -0,0 +1,24 @@
+public class DelegateGenerics<T> {
+ @lombok.experimental.Delegate I1<T> target;
+ public DelegateGenerics() {
+ super();
+ }
+ public @java.lang.SuppressWarnings("all") T a(final T a) {
+ return this.target.a(a);
+ }
+ public @java.lang.SuppressWarnings("all") java.lang.String i(final java.lang.String a) {
+ return this.target.i(a);
+ }
+ public @java.lang.SuppressWarnings("all") java.lang.Integer t(final java.lang.Integer t) {
+ return this.target.t(t);
+ }
+}
+interface I1<T> extends I2<T, Integer, String> {
+}
+interface I2<A, T, I> extends I3<Integer, I, A> {
+}
+interface I3<T, I, A> {
+ public T t(T t);
+ public I i(I a);
+ public A a(A a);
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/DelegateWithVarargs2.java b/test/transform/resource/after-ecj/DelegateWithVarargs2.java
new file mode 100644
index 00000000..ed0cddf5
--- /dev/null
+++ b/test/transform/resource/after-ecj/DelegateWithVarargs2.java
@@ -0,0 +1,17 @@
+import lombok.experimental.Delegate;
+class DelegateWithVarargs2 {
+ public class B {
+ public B() {
+ super();
+ }
+ public void varargs(Object[]... keys) {
+ }
+ }
+ private @Delegate DelegateWithVarargs2.B bar;
+ DelegateWithVarargs2() {
+ super();
+ }
+ public @java.lang.SuppressWarnings("all") void varargs(final java.lang.Object[]... keys) {
+ this.bar.varargs(keys);
+ }
+}
diff --git a/test/transform/resource/after-ecj/EqualsAndHashCodeAnnotated.java b/test/transform/resource/after-ecj/EqualsAndHashCodeAnnotated.java
new file mode 100644
index 00000000..4e377fb4
--- /dev/null
+++ b/test/transform/resource/after-ecj/EqualsAndHashCodeAnnotated.java
@@ -0,0 +1,53 @@
+import java.lang.annotation.*;
+@lombok.EqualsAndHashCode class EqualsAndHashCodeAnnotated {
+ @Target(ElementType.TYPE_USE) @Retention(RetentionPolicy.SOURCE) @interface Annotated {
+ }
+ @Annotated int primitive;
+ @Annotated Object object;
+ int @Annotated [] primitiveValues;
+ int @Annotated [] @Annotated [] morePrimitiveValues;
+ Integer @Annotated [] objectValues;
+ Integer @Annotated [] @Annotated [] moreObjectValues;
+ EqualsAndHashCodeAnnotated() {
+ super();
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") boolean equals(final java.lang.Object o) {
+ if ((o == this))
+ return true;
+ if ((! (o instanceof EqualsAndHashCodeAnnotated)))
+ return false;
+ final EqualsAndHashCodeAnnotated other = (EqualsAndHashCodeAnnotated) o;
+ if ((! other.canEqual((java.lang.Object) this)))
+ return false;
+ if ((this.primitive != other.primitive))
+ return false;
+ final java.lang.Object this$object = this.object;
+ final java.lang.Object other$object = other.object;
+ if (((this$object == null) ? (other$object != null) : (! this$object.equals(other$object))))
+ return false;
+ if ((! java.util.Arrays.equals(this.primitiveValues, other.primitiveValues)))
+ return false;
+ if ((! java.util.Arrays.deepEquals(this.morePrimitiveValues, other.morePrimitiveValues)))
+ return false;
+ if ((! java.util.Arrays.deepEquals(this.objectValues, other.objectValues)))
+ return false;
+ if ((! java.util.Arrays.deepEquals(this.moreObjectValues, other.moreObjectValues)))
+ return false;
+ return true;
+ }
+ protected @java.lang.SuppressWarnings("all") boolean canEqual(final java.lang.Object other) {
+ return (other instanceof EqualsAndHashCodeAnnotated);
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = ((result * PRIME) + this.primitive);
+ final java.lang.Object $object = this.object;
+ result = ((result * PRIME) + (($object == null) ? 43 : $object.hashCode()));
+ result = ((result * PRIME) + java.util.Arrays.hashCode(this.primitiveValues));
+ result = ((result * PRIME) + java.util.Arrays.deepHashCode(this.morePrimitiveValues));
+ result = ((result * PRIME) + java.util.Arrays.deepHashCode(this.objectValues));
+ result = ((result * PRIME) + java.util.Arrays.deepHashCode(this.moreObjectValues));
+ return result;
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/EqualsAndHashCodeRank.java b/test/transform/resource/after-ecj/EqualsAndHashCodeRank.java
new file mode 100644
index 00000000..ef221261
--- /dev/null
+++ b/test/transform/resource/after-ecj/EqualsAndHashCodeRank.java
@@ -0,0 +1,36 @@
+import lombok.EqualsAndHashCode;
+public @EqualsAndHashCode class EqualsAndHashCodeRank {
+ @EqualsAndHashCode.Include int a;
+ @EqualsAndHashCode.Include(rank = 10) int b;
+ @EqualsAndHashCode.Include int c;
+ public EqualsAndHashCodeRank() {
+ super();
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") boolean equals(final java.lang.Object o) {
+ if ((o == this))
+ return true;
+ if ((! (o instanceof EqualsAndHashCodeRank)))
+ return false;
+ final EqualsAndHashCodeRank other = (EqualsAndHashCodeRank) o;
+ if ((! other.canEqual((java.lang.Object) this)))
+ return false;
+ if ((this.a != other.a))
+ return false;
+ if ((this.c != other.c))
+ return false;
+ if ((this.b != other.b))
+ return false;
+ return true;
+ }
+ protected @java.lang.SuppressWarnings("all") boolean canEqual(final java.lang.Object other) {
+ return (other instanceof EqualsAndHashCodeRank);
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ result = ((result * PRIME) + this.a);
+ result = ((result * PRIME) + this.c);
+ result = ((result * PRIME) + this.b);
+ return result;
+ }
+}
diff --git a/test/transform/resource/after-ecj/GetterLazyArguments.java b/test/transform/resource/after-ecj/GetterLazyArguments.java
new file mode 100644
index 00000000..41f1771f
--- /dev/null
+++ b/test/transform/resource/after-ecj/GetterLazyArguments.java
@@ -0,0 +1,106 @@
+class GetterLazyArguments {
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field1 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field2 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field3 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field4 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field5 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ GetterLazyArguments() {
+ super();
+ }
+ static String fun() {
+ return null;
+ }
+ static String stringInt(String arg1, Integer arg2) {
+ return null;
+ }
+ static String stringRunnable(String arg1, Runnable arg2) {
+ return null;
+ }
+ public @java.lang.SuppressWarnings({"all", "unchecked"}) String getField1() {
+ java.lang.Object value = this.field1.get();
+ if ((value == null))
+ {
+ synchronized (this.field1)
+ {
+ value = this.field1.get();
+ if ((value == null))
+ {
+ final String actualValue = stringInt("a", 1);
+ value = ((actualValue == null) ? this.field1 : actualValue);
+ this.field1.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field1) ? null : value);
+ }
+ public @java.lang.SuppressWarnings({"all", "unchecked"}) String getField2() {
+ java.lang.Object value = this.field2.get();
+ if ((value == null))
+ {
+ synchronized (this.field2)
+ {
+ value = this.field2.get();
+ if ((value == null))
+ {
+ final String actualValue = stringInt((true ? "a" : "b"), (true ? 1 : 0));
+ value = ((actualValue == null) ? this.field2 : actualValue);
+ this.field2.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field2) ? null : value);
+ }
+ public @java.lang.SuppressWarnings({"all", "unchecked"}) String getField3() {
+ java.lang.Object value = this.field3.get();
+ if ((value == null))
+ {
+ synchronized (this.field3)
+ {
+ value = this.field3.get();
+ if ((value == null))
+ {
+ final String actualValue = stringInt("a", (true ? 1 : 0));
+ value = ((actualValue == null) ? this.field3 : actualValue);
+ this.field3.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field3) ? null : value);
+ }
+ public @java.lang.SuppressWarnings({"all", "unchecked"}) String getField4() {
+ java.lang.Object value = this.field4.get();
+ if ((value == null))
+ {
+ synchronized (this.field4)
+ {
+ value = this.field4.get();
+ if ((value == null))
+ {
+ final String actualValue = stringRunnable(fun(), () -> {
+});
+ value = ((actualValue == null) ? this.field4 : actualValue);
+ this.field4.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field4) ? null : value);
+ }
+ public @java.lang.SuppressWarnings({"all", "unchecked"}) String getField5() {
+ java.lang.Object value = this.field5.get();
+ if ((value == null))
+ {
+ synchronized (this.field5)
+ {
+ value = this.field5.get();
+ if ((value == null))
+ {
+ final String actualValue = stringRunnable("a", () -> {
+});
+ value = ((actualValue == null) ? this.field5 : actualValue);
+ this.field5.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field5) ? null : value);
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/JacksonBuilderSingular.java b/test/transform/resource/after-ecj/JacksonBuilderSingular.java
new file mode 100644
index 00000000..50f6a797
--- /dev/null
+++ b/test/transform/resource/after-ecj/JacksonBuilderSingular.java
@@ -0,0 +1,164 @@
+import java.util.List;
+import java.util.Map;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+import lombok.Builder;
+import lombok.Singular;
+import lombok.extern.jackson.Jacksonized;
+public @Jacksonized @Builder @com.fasterxml.jackson.databind.annotation.JsonDeserialize(builder = JacksonBuilderSingular.JacksonBuilderSingularBuilder.class) class JacksonBuilderSingular {
+ public static @java.lang.SuppressWarnings("all") @com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder(withPrefix = "",buildMethodName = "build") class JacksonBuilderSingularBuilder {
+ private @java.lang.SuppressWarnings("all") java.util.ArrayList<String> any$key;
+ private @java.lang.SuppressWarnings("all") java.util.ArrayList<Object> any$value;
+ private @java.lang.SuppressWarnings("all") java.util.ArrayList<String> values;
+ private @java.lang.SuppressWarnings("all") com.google.common.collect.ImmutableMap.Builder<String, Object> guavaAny;
+ private @java.lang.SuppressWarnings("all") com.google.common.collect.ImmutableList.Builder<String> guavaValues;
+ @java.lang.SuppressWarnings("all") JacksonBuilderSingularBuilder() {
+ super();
+ }
+ public @JsonAnySetter @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final String anyKey, final Object anyValue) {
+ if ((this.any$key == null))
+ {
+ this.any$key = new java.util.ArrayList<String>();
+ this.any$value = new java.util.ArrayList<Object>();
+ }
+ this.any$key.add(anyKey);
+ this.any$value.add(anyValue);
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder any(final java.util.Map<? extends String, ? extends Object> any) {
+ if ((any == null))
+ {
+ throw new java.lang.NullPointerException("any cannot be null");
+ }
+ if ((this.any$key == null))
+ {
+ this.any$key = new java.util.ArrayList<String>();
+ this.any$value = new java.util.ArrayList<Object>();
+ }
+ for (java.util.Map.Entry<? extends String, ? extends Object> $lombokEntry : any.entrySet())
+ {
+ this.any$key.add($lombokEntry.getKey());
+ this.any$value.add($lombokEntry.getValue());
+ }
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearAny() {
+ if ((this.any$key != null))
+ {
+ this.any$key.clear();
+ this.any$value.clear();
+ }
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder value(final String value) {
+ if ((this.values == null))
+ this.values = new java.util.ArrayList<String>();
+ this.values.add(value);
+ return this;
+ }
+ public @JsonProperty("v_a_l_u_e_s") @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder values(final java.util.Collection<? extends String> values) {
+ if ((values == null))
+ {
+ throw new java.lang.NullPointerException("values cannot be null");
+ }
+ if ((this.values == null))
+ this.values = new java.util.ArrayList<String>();
+ this.values.addAll(values);
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearValues() {
+ if ((this.values != null))
+ this.values.clear();
+ return this;
+ }
+ public @JsonAnySetter @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final String key, final Object value) {
+ if ((this.guavaAny == null))
+ this.guavaAny = com.google.common.collect.ImmutableMap.builder();
+ this.guavaAny.put(key, value);
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaAny(final java.util.Map<? extends String, ? extends Object> guavaAny) {
+ if ((guavaAny == null))
+ {
+ throw new java.lang.NullPointerException("guavaAny cannot be null");
+ }
+ if ((this.guavaAny == null))
+ this.guavaAny = com.google.common.collect.ImmutableMap.builder();
+ this.guavaAny.putAll(guavaAny);
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaAny() {
+ this.guavaAny = null;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValue(final String guavaValue) {
+ if ((this.guavaValues == null))
+ this.guavaValues = com.google.common.collect.ImmutableList.builder();
+ this.guavaValues.add(guavaValue);
+ return this;
+ }
+ public @JsonProperty("guava_v_a_l_u_e_s") @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder guavaValues(final java.lang.Iterable<? extends String> guavaValues) {
+ if ((guavaValues == null))
+ {
+ throw new java.lang.NullPointerException("guavaValues cannot be null");
+ }
+ if ((this.guavaValues == null))
+ this.guavaValues = com.google.common.collect.ImmutableList.builder();
+ this.guavaValues.addAll(guavaValues);
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder clearGuavaValues() {
+ this.guavaValues = null;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") JacksonBuilderSingular build() {
+ java.util.Map<String, Object> any;
+ switch (((this.any$key == null) ? 0 : this.any$key.size())) {
+ case 0 :
+ any = java.util.Collections.emptyMap();
+ break;
+ case 1 :
+ any = java.util.Collections.singletonMap(this.any$key.get(0), this.any$value.get(0));
+ break;
+ default :
+ any = new java.util.LinkedHashMap<String, Object>(((this.any$key.size() < 0x40000000) ? ((1 + this.any$key.size()) + ((this.any$key.size() - 3) / 3)) : java.lang.Integer.MAX_VALUE));
+ for (int $i = 0;; ($i < this.any$key.size()); $i ++)
+ any.put(this.any$key.get($i), this.any$value.get($i));
+ any = java.util.Collections.unmodifiableMap(any);
+ }
+ java.util.List<String> values;
+ switch (((this.values == null) ? 0 : this.values.size())) {
+ case 0 :
+ values = java.util.Collections.emptyList();
+ break;
+ case 1 :
+ values = java.util.Collections.singletonList(this.values.get(0));
+ break;
+ default :
+ values = java.util.Collections.unmodifiableList(new java.util.ArrayList<String>(this.values));
+ }
+ com.google.common.collect.ImmutableMap<String, Object> guavaAny = ((this.guavaAny == null) ? com.google.common.collect.ImmutableMap.<String, Object>of() : this.guavaAny.build());
+ com.google.common.collect.ImmutableList<String> guavaValues = ((this.guavaValues == null) ? com.google.common.collect.ImmutableList.<String>of() : this.guavaValues.build());
+ return new JacksonBuilderSingular(any, values, guavaAny, guavaValues);
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
+ return (((((((((("JacksonBuilderSingular.JacksonBuilderSingularBuilder(any$key=" + this.any$key) + ", any$value=") + this.any$value) + ", values=") + this.values) + ", guavaAny=") + this.guavaAny) + ", guavaValues=") + this.guavaValues) + ")");
+ }
+ }
+ private @JsonAnySetter @Singular("any") Map<String, Object> any;
+ private @JsonProperty("v_a_l_u_e_s") @Singular List<String> values;
+ private @JsonAnySetter @Singular("guavaAny") ImmutableMap<String, Object> guavaAny;
+ private @JsonProperty("guava_v_a_l_u_e_s") @Singular ImmutableList<String> guavaValues;
+ @java.lang.SuppressWarnings("all") JacksonBuilderSingular(final Map<String, Object> any, final List<String> values, final ImmutableMap<String, Object> guavaAny, final ImmutableList<String> guavaValues) {
+ super();
+ this.any = any;
+ this.values = values;
+ this.guavaAny = guavaAny;
+ this.guavaValues = guavaValues;
+ }
+ public static @java.lang.SuppressWarnings("all") JacksonBuilderSingular.JacksonBuilderSingularBuilder builder() {
+ return new JacksonBuilderSingular.JacksonBuilderSingularBuilder();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerCommons.java b/test/transform/resource/after-ecj/LoggerCommons.java
index df102a12..b2ca055f 100644
--- a/test/transform/resource/after-ecj/LoggerCommons.java
+++ b/test/transform/resource/after-ecj/LoggerCommons.java
@@ -22,4 +22,13 @@ import lombok.extern.apachecommons.CommonsLog;
LoggerCommonsWithDifferentName() {
super();
}
+}
+@CommonsLog(topic = LoggerCommonsWithStaticField.TOPIC) class LoggerCommonsWithStaticField {
+ private static final org.apache.commons.logging.Log log = org.apache.commons.logging.LogFactory.getLog(LoggerCommonsWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerCommonsWithStaticField() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java b/test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java
index 91cf6d8d..f6f85744 100644
--- a/test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java
+++ b/test/transform/resource/after-ecj/LoggerCustomWithTopicAndName.java
@@ -6,6 +6,15 @@
super();
}
}
+@lombok.CustomLog(topic = LoggerCustomLogWithStaticField.TOPIC) class LoggerCustomLogWithStaticField {
+ private static final MyLoggerFactory log = MyLoggerFactory.create(LoggerCustomLogWithStaticField.class.getName(), LoggerCustomLogWithStaticField.TOPIC, null, LoggerCustomLogWithStaticField.class, LoggerCustomLogWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerCustomLogWithStaticField() {
+ super();
+ }
+}
class MyLoggerFactory {
MyLoggerFactory() {
super();
diff --git a/test/transform/resource/after-ecj/LoggerJBossLog.java b/test/transform/resource/after-ecj/LoggerJBossLog.java
index e5c35708..c47f6c9e 100644
--- a/test/transform/resource/after-ecj/LoggerJBossLog.java
+++ b/test/transform/resource/after-ecj/LoggerJBossLog.java
@@ -35,4 +35,13 @@ class LoggerJBossLogOuter {
LoggerJBossLogWithDifferentLoggerName() {
super();
}
+}
+@JBossLog(topic = LoggerJBossLogWithStaticField.TOPIC) class LoggerJBossLogWithStaticField {
+ private static final org.jboss.logging.Logger log = org.jboss.logging.Logger.getLogger(LoggerJBossLogWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerJBossLogWithStaticField() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerJul.java b/test/transform/resource/after-ecj/LoggerJul.java
index 8aa4f59a..20cc5407 100644
--- a/test/transform/resource/after-ecj/LoggerJul.java
+++ b/test/transform/resource/after-ecj/LoggerJul.java
@@ -22,4 +22,13 @@ import lombok.extern.java.Log;
LoggerJulWithDifferentName() {
super();
}
+}
+@Log(topic = LoggerJulWithStaticField.TOPIC) class LoggerJulWithStaticField {
+ private static final java.util.logging.Logger log = java.util.logging.Logger.getLogger(LoggerJulWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerJulWithStaticField() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerLog4j.java b/test/transform/resource/after-ecj/LoggerLog4j.java
index 948412e2..e7d6c813 100644
--- a/test/transform/resource/after-ecj/LoggerLog4j.java
+++ b/test/transform/resource/after-ecj/LoggerLog4j.java
@@ -22,4 +22,13 @@ import lombok.extern.log4j.Log4j;
LoggerLog4jWithDifferentName() {
super();
}
+}
+@Log4j(topic = LoggerLog4jWithStaticField.TOPIC) class LoggerLog4jWithStaticField {
+ private static final org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger(LoggerLog4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerLog4jWithStaticField() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerLog4j2.java b/test/transform/resource/after-ecj/LoggerLog4j2.java
index c2fcd428..88def98d 100644
--- a/test/transform/resource/after-ecj/LoggerLog4j2.java
+++ b/test/transform/resource/after-ecj/LoggerLog4j2.java
@@ -22,4 +22,13 @@ import lombok.extern.log4j.Log4j2;
LoggerLog4j2WithDifferentName() {
super();
}
+}
+@Log4j2(topic = LoggerLog4j2WithStaticField.TOPIC) class LoggerLog4j2WithStaticField {
+ private static final org.apache.logging.log4j.Logger log = org.apache.logging.log4j.LogManager.getLogger(LoggerLog4j2WithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerLog4j2WithStaticField() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerSlf4j.java b/test/transform/resource/after-ecj/LoggerSlf4j.java
index 9c5405cb..c303a895 100644
--- a/test/transform/resource/after-ecj/LoggerSlf4j.java
+++ b/test/transform/resource/after-ecj/LoggerSlf4j.java
@@ -36,4 +36,31 @@ class LoggerSlf4jOuter {
LoggerSlf4jWithDifferentLoggerName() {
super();
}
+}
+
+@Slf4j(topic = LoggerSlf4jWithStaticField.TOPIC) class LoggerSlf4jWithStaticField {
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(LoggerSlf4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerSlf4jWithStaticField() {
+ super();
+ }
+}
+@Slf4j(topic = (LoggerSlf4jWithTwoStaticFields.TOPIC + LoggerSlf4jWithTwoStaticFields.TOPIC)) class LoggerSlf4jWithTwoStaticFields {
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger((LoggerSlf4jWithTwoStaticFields.TOPIC + LoggerSlf4jWithTwoStaticFields.TOPIC));
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerSlf4jWithTwoStaticFields() {
+ super();
+ }
+}
+@Slf4j(topic = ExtendedStringLiteral{AB}) class LoggerSlf4jWithTwoLiterals {
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger("AB");
+ <clinit>() {
+ }
+ LoggerSlf4jWithTwoLiterals() {
+ super();
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java b/test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java
new file mode 100644
index 00000000..33e212e3
--- /dev/null
+++ b/test/transform/resource/after-ecj/LoggerSlf4jInvalidTopic.java
@@ -0,0 +1,9 @@
+import lombok.extern.slf4j.Slf4j;
+@Slf4j(topic = 42) class LoggerSlf4jWithIntegerTopic {
+ private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(42);
+ <clinit>() {
+ }
+ LoggerSlf4jWithIntegerTopic() {
+ super();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/LoggerXSlf4j.java b/test/transform/resource/after-ecj/LoggerXSlf4j.java
index 916859a4..04acdd77 100644
--- a/test/transform/resource/after-ecj/LoggerXSlf4j.java
+++ b/test/transform/resource/after-ecj/LoggerXSlf4j.java
@@ -22,4 +22,13 @@ import lombok.extern.slf4j.XSlf4j;
LoggerXSlf4jWithDifferentName() {
super();
}
-} \ No newline at end of file
+}
+@XSlf4j(topic = LoggerXSlf4jWithStaticField.TOPIC) class LoggerXSlf4jWithStaticField {
+ private static final org.slf4j.ext.XLogger log = org.slf4j.ext.XLoggerFactory.getXLogger(LoggerXSlf4jWithStaticField.TOPIC);
+ static final String TOPIC = "StaticField";
+ <clinit>() {
+ }
+ LoggerXSlf4jWithStaticField() {
+ super();
+ }
+}
diff --git a/test/transform/resource/after-ecj/SimpleTypeResolution.java b/test/transform/resource/after-ecj/SimpleTypeResolution.java
index c413623e..d8321ca4 100644
--- a/test/transform/resource/after-ecj/SimpleTypeResolution.java
+++ b/test/transform/resource/after-ecj/SimpleTypeResolution.java
@@ -1,11 +1,13 @@
class SimpleTypeResolutionFail {
private @Getter int x;
SimpleTypeResolutionFail() {
+ super();
}
}
class SimpleTypeResolutionSuccess {
private @lombok.Getter int x;
SimpleTypeResolutionSuccess() {
+ super();
}
public @java.lang.SuppressWarnings("all") int getX() {
return this.x;
diff --git a/test/transform/resource/after-ecj/SkipSuppressWarnings.java b/test/transform/resource/after-ecj/SkipSuppressWarnings.java
new file mode 100644
index 00000000..53032519
--- /dev/null
+++ b/test/transform/resource/after-ecj/SkipSuppressWarnings.java
@@ -0,0 +1,27 @@
+class SkipSuppressWarnings {
+ private @lombok.Getter String field = "";
+ private final @lombok.Getter(lazy = true) java.util.concurrent.atomic.AtomicReference<java.lang.Object> field2 = new java.util.concurrent.atomic.AtomicReference<java.lang.Object>();
+ SkipSuppressWarnings() {
+ super();
+ }
+ public String getField() {
+ return this.field;
+ }
+ public @java.lang.SuppressWarnings({"unchecked"}) String getField2() {
+ java.lang.Object value = this.field2.get();
+ if ((value == null))
+ {
+ synchronized (this.field2)
+ {
+ value = this.field2.get();
+ if ((value == null))
+ {
+ final String actualValue = "";
+ value = ((actualValue == null) ? this.field2 : actualValue);
+ this.field2.set(value);
+ }
+ }
+ }
+ return (String) ((value == this.field2) ? null : value);
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/SuperBuilderBasic.java b/test/transform/resource/after-ecj/SuperBuilderBasic.java
index b47f318d..7902c95f 100644
--- a/test/transform/resource/after-ecj/SuperBuilderBasic.java
+++ b/test/transform/resource/after-ecj/SuperBuilderBasic.java
@@ -71,8 +71,8 @@ public class SuperBuilderBasic {
return new SuperBuilderBasic.Parent.ParentBuilderImpl();
}
}
- public static @lombok.experimental.SuperBuilder class Child extends Parent {
- public static abstract @java.lang.SuppressWarnings("all") class ChildBuilder<C extends SuperBuilderBasic.Child, B extends SuperBuilderBasic.Child.ChildBuilder<C, B>> extends Parent.ParentBuilder<C, B> {
+ public static @lombok.experimental.SuperBuilder class Child extends SuperBuilderBasic.Parent {
+ public static abstract @java.lang.SuppressWarnings("all") class ChildBuilder<C extends SuperBuilderBasic.Child, B extends SuperBuilderBasic.Child.ChildBuilder<C, B>> extends SuperBuilderBasic.Parent.ParentBuilder<C, B> {
private @java.lang.SuppressWarnings("all") double field3;
public ChildBuilder() {
super();
diff --git a/test/transform/resource/after-ecj/SuperBuilderCustomized.java b/test/transform/resource/after-ecj/SuperBuilderCustomized.java
index 32317f6a..fe0e1238 100644
--- a/test/transform/resource/after-ecj/SuperBuilderCustomized.java
+++ b/test/transform/resource/after-ecj/SuperBuilderCustomized.java
@@ -32,12 +32,14 @@ public class SuperBuilderCustomized {
}
}
int field1;
- protected @java.lang.SuppressWarnings("all") Parent(final SuperBuilderCustomized.Parent.ParentBuilder<?, ?> b) {
+ protected Parent(ParentBuilder<?, ?> b) {
super();
+ if ((b.field1 == 0))
+ throw new IllegalArgumentException("field1 must be != 0");
this.field1 = b.field1;
}
- public static @java.lang.SuppressWarnings("all") SuperBuilderCustomized.Parent.ParentBuilder<?, ?> builder() {
- return new SuperBuilderCustomized.Parent.ParentBuilderImpl();
+ public static SuperBuilderCustomized.Parent.ParentBuilder<?, ?> builder(int field1) {
+ return new SuperBuilderCustomized.Parent.ParentBuilderImpl().field1(field1);
}
}
public static @lombok.experimental.SuperBuilder class Child extends Parent {
diff --git a/test/transform/resource/after-ecj/TypeUseAnnotations.java b/test/transform/resource/after-ecj/TypeUseAnnotations.java
index 156643b9..7041b59e 100644
--- a/test/transform/resource/after-ecj/TypeUseAnnotations.java
+++ b/test/transform/resource/after-ecj/TypeUseAnnotations.java
@@ -5,11 +5,20 @@ import java.util.List;
int x();
}
class TypeUseAnnotations {
+ class Inner {
+ Inner() {
+ super();
+ }
+ }
@lombok.Getter List<@TA(x = 5) String> foo;
+ @lombok.Getter List<TypeUseAnnotations.@TA(x = 5) Inner> bar;
TypeUseAnnotations() {
super();
}
public @java.lang.SuppressWarnings("all") List<@TA(x = 5) String> getFoo() {
return this.foo;
}
+ public @java.lang.SuppressWarnings("all") List<TypeUseAnnotations.@TA(x = 5) Inner> getBar() {
+ return this.bar;
+ }
} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/ValLambda.java b/test/transform/resource/after-ecj/ValLambda.java
index 5b52869f..6b59bdbd 100644
--- a/test/transform/resource/after-ecj/ValLambda.java
+++ b/test/transform/resource/after-ecj/ValLambda.java
@@ -1,3 +1,5 @@
+import java.io.Serializable;
+
class ValLambda {
static {
final @lombok.val java.lang.Runnable foo = ((System.currentTimeMillis() > 0) ? (Runnable) () -> {
@@ -16,8 +18,8 @@ class ValLambda {
final @lombok.val java.lang.Runnable foo = (Runnable) () -> {
};
}
- public void easyIntersectionLambda() {
- final @lombok.val java.lang.Runnable foo = (Runnable & java.io.Serializable) () -> {
+ public void intersectionLambda() {
+ final @lombok.val java.io.Serializable foo = (Runnable & Serializable) () -> {
};
final @lombok.val java.io.Serializable bar = (java.io.Serializable & Runnable) () -> {
};
diff --git a/test/transform/resource/after-ecj/ValueStaticConstructorOf.java b/test/transform/resource/after-ecj/ValueStaticConstructorOf.java
index 6cf71ed4..87883566 100644
--- a/test/transform/resource/after-ecj/ValueStaticConstructorOf.java
+++ b/test/transform/resource/after-ecj/ValueStaticConstructorOf.java
@@ -19,23 +19,23 @@ public final @Value(staticConstructor = "of") class ValueStaticConstructorOf {
if ((! (o instanceof ValueStaticConstructorOf)))
return false;
final ValueStaticConstructorOf other = (ValueStaticConstructorOf) o;
- final java.lang.Object this$name = this.getName();
- final java.lang.Object other$name = other.getName();
- if (((this$name == null) ? (other$name != null) : (! this$name.equals(other$name))))
- return false;
final java.lang.Object this$price = this.getPrice();
final java.lang.Object other$price = other.getPrice();
if (((this$price == null) ? (other$price != null) : (! this$price.equals(other$price))))
return false;
+ final java.lang.Object this$name = this.getName();
+ final java.lang.Object other$name = other.getName();
+ if (((this$name == null) ? (other$name != null) : (! this$name.equals(other$name))))
+ return false;
return true;
}
public @java.lang.Override @java.lang.SuppressWarnings("all") int hashCode() {
final int PRIME = 59;
int result = 1;
- final java.lang.Object $name = this.getName();
- result = ((result * PRIME) + (($name == null) ? 43 : $name.hashCode()));
final java.lang.Object $price = this.getPrice();
result = ((result * PRIME) + (($price == null) ? 43 : $price.hashCode()));
+ final java.lang.Object $name = this.getName();
+ result = ((result * PRIME) + (($name == null) ? 43 : $name.hashCode()));
return result;
}
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
@@ -44,4 +44,4 @@ public final @Value(staticConstructor = "of") class ValueStaticConstructorOf {
public static @java.lang.SuppressWarnings("all") ValueStaticConstructorOf of(final String name, final Double price) {
return new ValueStaticConstructorOf(name, price);
}
-} \ No newline at end of file
+}
diff --git a/test/transform/resource/before/BuilderConstructorJavadoc.java b/test/transform/resource/before/BuilderConstructorJavadoc.java
new file mode 100644
index 00000000..ebbd473f
--- /dev/null
+++ b/test/transform/resource/before/BuilderConstructorJavadoc.java
@@ -0,0 +1,35 @@
+import java.util.List;
+
+class BuilderConstructorJavadoc<T> {
+ /**
+ * This is a comment
+ *
+ * @param basic tag is moved to the setter
+ * @param multiline a param comment
+ * can be on multiple lines and can use
+ * {@code @code} or <code>tags</code>
+ * @param predef don't copy this one
+ * @param predefWithJavadoc don't copy this one
+ */
+ @lombok.Builder
+ BuilderConstructorJavadoc(int basic, int multiline, int predef, int predefWithJavadoc) {
+
+ }
+
+ public static class BuilderConstructorJavadocBuilder<T> {
+ public BuilderConstructorJavadocBuilder<T> predef(final int x) {
+ this.predef = x;
+ return this;
+ }
+
+ /**
+ * This javadoc remains untouched.
+ * @param x 1/100 of the thing
+ * @return the updated builder
+ */
+ public BuilderConstructorJavadocBuilder<T> predefWithJavadoc(final int x) {
+ this.predefWithJavadoc = x;
+ return this;
+ }
+ }
+}
diff --git a/test/transform/resource/before/CheckerFrameworkSuperBuilder.java b/test/transform/resource/before/CheckerFrameworkSuperBuilder.java
index 54aefb37..ed9e14cb 100644
--- a/test/transform/resource/before/CheckerFrameworkSuperBuilder.java
+++ b/test/transform/resource/before/CheckerFrameworkSuperBuilder.java
@@ -12,7 +12,7 @@ class CheckerFrameworkSuperBuilder {
}
@lombok.experimental.SuperBuilder
- public static class Child extends Parent {
+ public static class ZChild extends Parent {
@lombok.Builder.Default int a = 1;
int b;
}
diff --git a/test/transform/resource/before/DelegateAlreadyImplemented.java b/test/transform/resource/before/DelegateAlreadyImplemented.java
new file mode 100644
index 00000000..c43c1949
--- /dev/null
+++ b/test/transform/resource/before/DelegateAlreadyImplemented.java
@@ -0,0 +1,45 @@
+public class DelegateAlreadyImplemented<T> {
+
+ @lombok.experimental.Delegate
+ private A<Integer, T> a;
+
+ public void a() {
+ }
+
+ public void b(java.util.List<String> l) {
+ }
+
+ public void c(java.util.List<Integer> l, String[] a, Integer... varargs) {
+ }
+
+ public void d(String[][][][] d) {
+ }
+
+ public <Y> void e(Y x) {
+ }
+
+ @SuppressWarnings("unchecked")
+ public void f(T s, java.util.List<T> l, T[] a, T... varargs) {
+ }
+
+ public void g(Number g) {
+ }
+}
+
+interface A<T, T2> {
+ public void a();
+
+ public void b(java.util.List<T> l);
+
+ @SuppressWarnings("unchecked")
+ public void c(java.util.List<T> l, String[] a, T... varargs);
+
+ public void d(String[][][][] d);
+
+ public <X> X e(X x);
+
+ @SuppressWarnings("unchecked")
+ public void f(T2 s, java.util.List<T2> l, T2[] a, T2... varargs);
+
+ public <G extends Number> void g(G g);
+} \ No newline at end of file
diff --git a/test/transform/resource/before/DelegateGenerics.java b/test/transform/resource/before/DelegateGenerics.java
new file mode 100644
index 00000000..e89158a9
--- /dev/null
+++ b/test/transform/resource/before/DelegateGenerics.java
@@ -0,0 +1,14 @@
+public class DelegateGenerics<T> {
+ @lombok.experimental.Delegate
+ I1<T> target;
+}
+
+interface I1<T> extends I2<T, Integer, String> {
+}
+interface I2<A, T, I> extends I3<Integer, I, A> {
+}
+interface I3<T, I, A> {
+ public T t(T t);
+ public I i(I a);
+ public A a(A a);
+} \ No newline at end of file
diff --git a/test/transform/resource/before/DelegateWithVarargs2.java b/test/transform/resource/before/DelegateWithVarargs2.java
new file mode 100644
index 00000000..8a3dbf14
--- /dev/null
+++ b/test/transform/resource/before/DelegateWithVarargs2.java
@@ -0,0 +1,9 @@
+import lombok.experimental.Delegate;
+
+class DelegateWithVarargs2 {
+ @Delegate private DelegateWithVarargs2.B bar;
+
+ public class B {
+ public void varargs(Object[]... keys) {}
+ }
+}
diff --git a/test/transform/resource/before/EqualsAndHashCodeRank.java b/test/transform/resource/before/EqualsAndHashCodeRank.java
new file mode 100644
index 00000000..5dda54f8
--- /dev/null
+++ b/test/transform/resource/before/EqualsAndHashCodeRank.java
@@ -0,0 +1,7 @@
+import lombok.EqualsAndHashCode;
+@EqualsAndHashCode
+public class EqualsAndHashCodeRank {
+ @EqualsAndHashCode.Include int a;
+ @EqualsAndHashCode.Include(rank = 10) int b;
+ @EqualsAndHashCode.Include int c;
+}
diff --git a/test/transform/resource/before/GetterLazyArguments.java b/test/transform/resource/before/GetterLazyArguments.java
new file mode 100644
index 00000000..47dfae55
--- /dev/null
+++ b/test/transform/resource/before/GetterLazyArguments.java
@@ -0,0 +1,21 @@
+// version 8:
+class GetterLazyArguments {
+ static String fun() { return null; }
+ static String stringInt(String arg1, Integer arg2) { return null; }
+ static String stringRunnable(String arg1, Runnable arg2) { return null; }
+
+ @lombok.Getter(lazy=true)
+ private final String field1 = stringInt(("a"), (1));
+
+ @lombok.Getter(lazy=true)
+ private final String field2 = stringInt(true ? "a" : "b", true ? 1 : 0);
+
+ @lombok.Getter(lazy=true)
+ private final String field3 = stringInt(("a"), true ? 1 : 0);
+
+ @lombok.Getter(lazy=true)
+ private final String field4 = stringRunnable(fun(), () -> { });
+
+ @lombok.Getter(lazy=true)
+ private final String field5 = stringRunnable(("a"), () -> { });
+}
diff --git a/test/transform/resource/before/JacksonBuilderSingular.java b/test/transform/resource/before/JacksonBuilderSingular.java
new file mode 100644
index 00000000..c179c760
--- /dev/null
+++ b/test/transform/resource/before/JacksonBuilderSingular.java
@@ -0,0 +1,31 @@
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableMap;
+
+import lombok.Builder;
+import lombok.Singular;
+import lombok.extern.jackson.Jacksonized;
+
+@Jacksonized
+@Builder
+public class JacksonBuilderSingular {
+ @JsonAnySetter
+ @Singular("any")
+ private Map<String, Object> any;
+
+ @JsonProperty("v_a_l_u_e_s")
+ @Singular
+ private List<String> values;
+
+ @JsonAnySetter
+ @Singular("guavaAny")
+ private ImmutableMap<String, Object> guavaAny;
+
+ @JsonProperty("guava_v_a_l_u_e_s")
+ @Singular
+ private ImmutableList<String> guavaValues;
+}
diff --git a/test/transform/resource/before/LoggerCommons.java b/test/transform/resource/before/LoggerCommons.java
index 00419d00..e209c1d0 100644
--- a/test/transform/resource/before/LoggerCommons.java
+++ b/test/transform/resource/before/LoggerCommons.java
@@ -11,3 +11,8 @@ class LoggerCommonsWithImport {
@CommonsLog(topic="DifferentName")
class LoggerCommonsWithDifferentName {
}
+
+@CommonsLog(topic=LoggerCommonsWithStaticField.TOPIC)
+class LoggerCommonsWithStaticField {
+ static final String TOPIC = "StaticField";
+} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerCustomWithTopicAndName.java b/test/transform/resource/before/LoggerCustomWithTopicAndName.java
index b40ed86a..5b803217 100644
--- a/test/transform/resource/before/LoggerCustomWithTopicAndName.java
+++ b/test/transform/resource/before/LoggerCustomWithTopicAndName.java
@@ -3,6 +3,11 @@
class LoggerCustomLog {
}
+@lombok.CustomLog(topic=LoggerCustomLogWithStaticField.TOPIC)
+class LoggerCustomLogWithStaticField {
+ static final String TOPIC = "StaticField";
+}
+
class MyLoggerFactory {
static MyLoggerFactory create(String name, String t1, Object o, Class<?> clazz, String t2) {
return null;
diff --git a/test/transform/resource/before/LoggerJBossLog.java b/test/transform/resource/before/LoggerJBossLog.java
index fbd88177..f3480867 100644
--- a/test/transform/resource/before/LoggerJBossLog.java
+++ b/test/transform/resource/before/LoggerJBossLog.java
@@ -17,4 +17,9 @@ class LoggerJBossLogOuter {
@JBossLog(topic="DifferentLogger")
class LoggerJBossLogWithDifferentLoggerName {
+}
+
+@JBossLog(topic=LoggerJBossLogWithStaticField.TOPIC)
+class LoggerJBossLogWithStaticField {
+ static final String TOPIC = "StaticField";
} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerJul.java b/test/transform/resource/before/LoggerJul.java
index 006cc344..7b10d015 100644
--- a/test/transform/resource/before/LoggerJul.java
+++ b/test/transform/resource/before/LoggerJul.java
@@ -10,4 +10,9 @@ class LoggerJulWithImport {
@Log(topic="DifferentName")
class LoggerJulWithDifferentName {
+}
+
+@Log(topic=LoggerJulWithStaticField.TOPIC)
+class LoggerJulWithStaticField {
+ static final String TOPIC = "StaticField";
} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerLog4j.java b/test/transform/resource/before/LoggerLog4j.java
index 351049c5..b7086a05 100644
--- a/test/transform/resource/before/LoggerLog4j.java
+++ b/test/transform/resource/before/LoggerLog4j.java
@@ -10,4 +10,9 @@ class LoggerLog4jWithImport {
@Log4j(topic="DifferentName")
class LoggerLog4jWithDifferentName {
+}
+
+@Log4j(topic=LoggerLog4jWithStaticField.TOPIC)
+class LoggerLog4jWithStaticField {
+ static final String TOPIC = "StaticField";
} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerLog4j2.java b/test/transform/resource/before/LoggerLog4j2.java
index c9cf9412..10b3aae5 100644
--- a/test/transform/resource/before/LoggerLog4j2.java
+++ b/test/transform/resource/before/LoggerLog4j2.java
@@ -10,4 +10,9 @@ class LoggerLog4j2WithImport {
@Log4j2(topic="DifferentName")
class LoggerLog4j2WithDifferentName {
+}
+
+@Log4j2(topic=LoggerLog4j2WithStaticField.TOPIC)
+class LoggerLog4j2WithStaticField {
+ static final String TOPIC = "StaticField";
} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerSlf4j.java b/test/transform/resource/before/LoggerSlf4j.java
index 1113a63e..3f8284e8 100644
--- a/test/transform/resource/before/LoggerSlf4j.java
+++ b/test/transform/resource/before/LoggerSlf4j.java
@@ -17,4 +17,18 @@ class LoggerSlf4jOuter {
@Slf4j(topic="DifferentLogger")
class LoggerSlf4jWithDifferentLoggerName {
+}
+
+@Slf4j(topic=LoggerSlf4jWithStaticField.TOPIC)
+class LoggerSlf4jWithStaticField {
+ static final String TOPIC = "StaticField";
+}
+
+@Slf4j(topic=LoggerSlf4jWithTwoStaticFields.TOPIC + LoggerSlf4jWithTwoStaticFields.TOPIC)
+class LoggerSlf4jWithTwoStaticFields {
+ static final String TOPIC = "StaticField";
+}
+
+@Slf4j(topic="A"+"B")
+class LoggerSlf4jWithTwoLiterals {
} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerSlf4jInvalidTopic.java b/test/transform/resource/before/LoggerSlf4jInvalidTopic.java
new file mode 100644
index 00000000..eed02f01
--- /dev/null
+++ b/test/transform/resource/before/LoggerSlf4jInvalidTopic.java
@@ -0,0 +1,5 @@
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j(topic=42)
+class LoggerSlf4jWithIntegerTopic {
+} \ No newline at end of file
diff --git a/test/transform/resource/before/LoggerXSlf4j.java b/test/transform/resource/before/LoggerXSlf4j.java
index a8bcb0c3..f70f2e2d 100644
--- a/test/transform/resource/before/LoggerXSlf4j.java
+++ b/test/transform/resource/before/LoggerXSlf4j.java
@@ -10,4 +10,9 @@ class LoggerXSlf4jWithImport {
@XSlf4j(topic="DifferentName")
class LoggerXSlf4jWithDifferentName {
+}
+
+@XSlf4j(topic=LoggerXSlf4jWithStaticField.TOPIC)
+class LoggerXSlf4jWithStaticField {
+ static final String TOPIC = "StaticField";
} \ No newline at end of file
diff --git a/test/transform/resource/before/SkipSuppressWarnings.java b/test/transform/resource/before/SkipSuppressWarnings.java
new file mode 100644
index 00000000..ed36eeb9
--- /dev/null
+++ b/test/transform/resource/before/SkipSuppressWarnings.java
@@ -0,0 +1,9 @@
+//CONF: lombok.addSuppressWarnings = false
+
+class SkipSuppressWarnings {
+ @lombok.Getter
+ private String field = "";
+
+ @lombok.Getter(lazy=true)
+ private final String field2 = "";
+} \ No newline at end of file
diff --git a/test/transform/resource/before/SuperBuilderBasic.java b/test/transform/resource/before/SuperBuilderBasic.java
index f4e8c670..99d7284e 100644
--- a/test/transform/resource/before/SuperBuilderBasic.java
+++ b/test/transform/resource/before/SuperBuilderBasic.java
@@ -8,7 +8,7 @@ public class SuperBuilderBasic {
}
@lombok.experimental.SuperBuilder
- public static class Child extends Parent {
+ public static class Child extends SuperBuilderBasic.Parent {
double field3;
}
diff --git a/test/transform/resource/before/SuperBuilderCustomized.java b/test/transform/resource/before/SuperBuilderCustomized.java
index 77830587..8e641d90 100644
--- a/test/transform/resource/before/SuperBuilderCustomized.java
+++ b/test/transform/resource/before/SuperBuilderCustomized.java
@@ -14,6 +14,16 @@ public class SuperBuilderCustomized {
}
}
int field1;
+
+ protected Parent(ParentBuilder<?, ?> b) {
+ if (b.field1 == 0)
+ throw new IllegalArgumentException("field1 must be != 0");
+ this.field1 = b.field1;
+ }
+
+ public static SuperBuilderCustomized.Parent.ParentBuilder<?, ?> builder(int field1) {
+ return new SuperBuilderCustomized.Parent.ParentBuilderImpl().field1(field1);
+ }
}
@lombok.experimental.SuperBuilder
diff --git a/test/transform/resource/before/TypeUseAnnotations.java b/test/transform/resource/before/TypeUseAnnotations.java
index c09a291d..7175930f 100644
--- a/test/transform/resource/before/TypeUseAnnotations.java
+++ b/test/transform/resource/before/TypeUseAnnotations.java
@@ -8,4 +8,6 @@ import java.util.List;
}
class TypeUseAnnotations {
@lombok.Getter List<@TA(x=5) String> foo;
+ @lombok.Getter List<TypeUseAnnotations.@TA(x=5) Inner> bar;
+ class Inner { }
}
diff --git a/test/transform/resource/before/ValLambda.java b/test/transform/resource/before/ValLambda.java
index 5c9c4a43..e956bcd3 100644
--- a/test/transform/resource/before/ValLambda.java
+++ b/test/transform/resource/before/ValLambda.java
@@ -1,4 +1,6 @@
// version 8:
+import java.io.Serializable;
+
class ValLambda {
static {
@@ -12,8 +14,8 @@ class ValLambda {
lombok.val foo = (Runnable)()-> {};
}
- public void easyIntersectionLambda() {
- lombok.val foo = (Runnable & java.io.Serializable)()-> {};
+ public void intersectionLambda() {
+ lombok.val foo = (Runnable & Serializable)()-> {};
lombok.val bar = (java.io.Serializable & Runnable)()-> {};
}
diff --git a/test/transform/resource/before/ValLub.java b/test/transform/resource/before/ValLub.java
index c1b41c26..509a4f8b 100644
--- a/test/transform/resource/before/ValLub.java
+++ b/test/transform/resource/before/ValLub.java
@@ -1,21 +1,21 @@
class ValLub {
public void easyLub() {
java.util.Map<String, Number> m = java.util.Collections.emptyMap();
-
+
lombok.val foo = (System.currentTimeMillis() > 0) ? m : java.util.Collections.<String, Number>emptyMap();
}
-
+
public void sillyLubWithUnboxingThatProducesErrorThatVarIsPrimitive() {
Integer i = 20;
Double d = 20.0;
-
+
lombok.val thisShouldBePrimitiveDouble = (System.currentTimeMillis() > 0) ? i : d;
}
-
+
public void hardLub() {
java.util.List<String> list = new java.util.ArrayList<String>();
java.util.Set<String> set = new java.util.HashSet<String>();
-
+
lombok.val thisShouldBeCollection = (System.currentTimeMillis() > 0) ? list : set;
thisShouldBeCollection.add("");
String foo = thisShouldBeCollection.iterator().next();
diff --git a/test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages b/test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages
new file mode 100644
index 00000000..8de0a120
--- /dev/null
+++ b/test/transform/resource/messages-delombok/LoggerSlf4jInvalidTopic.java.messages
@@ -0,0 +1,2 @@
+3 incompatible types: int cannot be converted to java.lang.String
+-1 not flagged modified \ No newline at end of file
diff --git a/test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages b/test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages
index 9bfcba0c..8cc7fb58 100644
--- a/test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages
+++ b/test/transform/resource/messages-ecj/CheckerFrameworkBasic.java.messages
@@ -1 +1 @@
-8 org.checkerframework cannot be resolved to a type
+6 org.checkerframework.common cannot be resolved to a type
diff --git a/test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages b/test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages
index d385a95c..8cc7fb58 100644
--- a/test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages
+++ b/test/transform/resource/messages-ecj/CheckerFrameworkSuperBuilder.java.messages
@@ -1 +1 @@
-6 org.checkerframework cannot be resolved to a type
+6 org.checkerframework.common cannot be resolved to a type
diff --git a/test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages b/test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages
new file mode 100644
index 00000000..9bc2a82b
--- /dev/null
+++ b/test/transform/resource/messages-ecj/LoggerSlf4jInvalidTopic.java.messages
@@ -0,0 +1 @@
+3 Type mismatch: cannot convert from int to String \ No newline at end of file
diff --git a/test/transform/resource/messages-ecj/SkipSuppressWarnings.java.messages b/test/transform/resource/messages-ecj/SkipSuppressWarnings.java.messages
new file mode 100644
index 00000000..5e7d759c
--- /dev/null
+++ b/test/transform/resource/messages-ecj/SkipSuppressWarnings.java.messages
@@ -0,0 +1 @@
+7 Unnecessary @SuppressWarnings("unchecked") \ No newline at end of file
diff --git a/test/transform/resource/messages-ecj/ValLambda.java.messages b/test/transform/resource/messages-ecj/ValLambda.java.messages
index e6940434..fa7231ef 100644
--- a/test/transform/resource/messages-ecj/ValLambda.java.messages
+++ b/test/transform/resource/messages-ecj/ValLambda.java.messages
@@ -1,2 +1,2 @@
-23 Function is a raw type. References to generic type Function<T,R> should be parameterized
-24 Function is a raw type. References to generic type Function<T,R> should be parameterized \ No newline at end of file
+24 Function is a raw type. References to generic type Function<T,R> should be parameterized
+25 Function is a raw type. References to generic type Function<T,R> should be parameterized \ No newline at end of file
diff --git a/test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages b/test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages
new file mode 100644
index 00000000..d894fad1
--- /dev/null
+++ b/test/transform/resource/messages-idempotent/LoggerSlf4jInvalidTopic.java.messages
@@ -0,0 +1 @@
+3 incompatible types: int cannot be converted to java.lang.String \ No newline at end of file