aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorRawi01 <Rawi01@users.noreply.github.com>2020-07-12 20:08:21 +0200
committerRoel Spilker <r.spilker@gmail.com>2020-07-23 22:23:55 +0200
commitb1f6372b358119309b26016317a6dd709b9daa13 (patch)
tree73c0222d4419221020285e2d6f8dc588e56a9933 /test
parentce92389da76b17b2c8d9f8757d67b4ea3edc8cb5 (diff)
downloadlombok-b1f6372b358119309b26016317a6dd709b9daa13.tar.gz
lombok-b1f6372b358119309b26016317a6dd709b9daa13.tar.bz2
lombok-b1f6372b358119309b26016317a6dd709b9daa13.zip
[fixes #2300] Keep method argument positions for lazy getter initializer
Diffstat (limited to 'test')
-rw-r--r--test/transform/resource/after-delombok/GetterLazyArguments.java101
-rw-r--r--test/transform/resource/after-ecj/GetterLazyArguments.java106
-rw-r--r--test/transform/resource/before/GetterLazyArguments.java21
3 files changed, 228 insertions, 0 deletions
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-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/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"), () -> { });
+}