From 55619e8030768fb42f8a9b4207bb330806eaceef Mon Sep 17 00:00:00 2001 From: Bulgakov Alexander Date: Thu, 20 Oct 2016 16:41:40 +0300 Subject: added supporting of @var variables. The @var annotation has the same functionality as the @val except 'final' modifier. --- .../resource/after-delombok/VarComplex.java | 20 +++++++++++++++++ .../resource/after-delombok/VarInFor.java | 9 ++++++++ .../resource/after-delombok/VarInForOld.java | 7 ++++++ .../resource/after-delombok/VarModifier.java | 7 ++++++ test/transform/resource/after-ecj/VarComplex.java | 26 ++++++++++++++++++++++ test/transform/resource/after-ecj/VarInFor.java | 14 ++++++++++++ test/transform/resource/after-ecj/VarInForOld.java | 12 ++++++++++ test/transform/resource/after-ecj/VarModifier.java | 12 ++++++++++ test/transform/resource/before/VarComplex.java | 22 ++++++++++++++++++ test/transform/resource/before/VarInFor.java | 11 +++++++++ test/transform/resource/before/VarInForOld.java | 9 ++++++++ test/transform/resource/before/VarModifier.java | 10 +++++++++ 12 files changed, 159 insertions(+) create mode 100644 test/transform/resource/after-delombok/VarComplex.java create mode 100644 test/transform/resource/after-delombok/VarInFor.java create mode 100644 test/transform/resource/after-delombok/VarInForOld.java create mode 100644 test/transform/resource/after-delombok/VarModifier.java create mode 100644 test/transform/resource/after-ecj/VarComplex.java create mode 100644 test/transform/resource/after-ecj/VarInFor.java create mode 100644 test/transform/resource/after-ecj/VarInForOld.java create mode 100644 test/transform/resource/after-ecj/VarModifier.java create mode 100644 test/transform/resource/before/VarComplex.java create mode 100644 test/transform/resource/before/VarInFor.java create mode 100644 test/transform/resource/before/VarInForOld.java create mode 100644 test/transform/resource/before/VarModifier.java (limited to 'test/transform') diff --git a/test/transform/resource/after-delombok/VarComplex.java b/test/transform/resource/after-delombok/VarComplex.java new file mode 100644 index 00000000..10b33943 --- /dev/null +++ b/test/transform/resource/after-delombok/VarComplex.java @@ -0,0 +1,20 @@ +public class VarComplex { + private String field = ""; + private static final int CONSTANT = 20; + public void testComplex() { + char[] shouldBeCharArray = field.toCharArray(); + int shouldBeInt = CONSTANT; + java.lang.Object lock = new Object(); + synchronized (lock) { + int field = 20; //Shadowing + int inner = 10; + switch (field) { + case 5: + char[] shouldBeCharArray2 = shouldBeCharArray; + int innerInner = inner; + + } + } + java.lang.String shouldBeString = field; //Unshadowing + } +} \ No newline at end of file diff --git a/test/transform/resource/after-delombok/VarInFor.java b/test/transform/resource/after-delombok/VarInFor.java new file mode 100644 index 00000000..363aeeff --- /dev/null +++ b/test/transform/resource/after-delombok/VarInFor.java @@ -0,0 +1,9 @@ +public class VarInFor { + public void enhancedFor() { + int[] list = new int[] {1, 2}; + for (int shouldBeInt : list) { + System.out.println(shouldBeInt); + int shouldBeInt2 = shouldBeInt; + } + } +} \ No newline at end of file diff --git a/test/transform/resource/after-delombok/VarInForOld.java b/test/transform/resource/after-delombok/VarInForOld.java new file mode 100644 index 00000000..bb510c0b --- /dev/null +++ b/test/transform/resource/after-delombok/VarInForOld.java @@ -0,0 +1,7 @@ +public class VarInForOld { + public void oldFor() { + for (int i = 0; i < 100; ++i) { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/test/transform/resource/after-delombok/VarModifier.java b/test/transform/resource/after-delombok/VarModifier.java new file mode 100644 index 00000000..9838cdf7 --- /dev/null +++ b/test/transform/resource/after-delombok/VarModifier.java @@ -0,0 +1,7 @@ +public class VarModifier { + private String field = ""; + public void testComplex() { + final char[] shouldBeFinalCharArray = field.toCharArray(); + char[] shouldBeCharArray = field.toCharArray(); + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/VarComplex.java b/test/transform/resource/after-ecj/VarComplex.java new file mode 100644 index 00000000..97a0a177 --- /dev/null +++ b/test/transform/resource/after-ecj/VarComplex.java @@ -0,0 +1,26 @@ +import lombok.var; +public class VarComplex { + private String field = ""; + private static final int CONSTANT = 20; + () { + } + public VarComplex() { + super(); + } + public void testComplex() { + @var char[] shouldBeCharArray = field.toCharArray(); + @var int shouldBeInt = CONSTANT; + @var java.lang.Object lock = new Object(); + synchronized (lock) + { + @var int field = 20; + @var int inner = 10; + switch (field) { + case 5 : + @var char[] shouldBeCharArray2 = shouldBeCharArray; + @var int innerInner = inner; + } + } + @var java.lang.String shouldBeString = field; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/VarInFor.java b/test/transform/resource/after-ecj/VarInFor.java new file mode 100644 index 00000000..1799d9b7 --- /dev/null +++ b/test/transform/resource/after-ecj/VarInFor.java @@ -0,0 +1,14 @@ +import lombok.var; +public class VarInFor { + public VarInFor() { + super(); + } + public void enhancedFor() { + int[] list = new int[]{1, 2}; + for (@var int shouldBeInt : list) + { + System.out.println(shouldBeInt); + @var int shouldBeInt2 = shouldBeInt; + } + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/VarInForOld.java b/test/transform/resource/after-ecj/VarInForOld.java new file mode 100644 index 00000000..065ea94d --- /dev/null +++ b/test/transform/resource/after-ecj/VarInForOld.java @@ -0,0 +1,12 @@ +import lombok.var; +public class VarInForOld { + public VarInForOld() { + super(); + } + public void oldFor() { + for (@var int i = 0;; (i < 100); ++ i) + { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/VarModifier.java b/test/transform/resource/after-ecj/VarModifier.java new file mode 100644 index 00000000..7f26534c --- /dev/null +++ b/test/transform/resource/after-ecj/VarModifier.java @@ -0,0 +1,12 @@ +import lombok.var; +public class VarModifier { + private String field = ""; + public VarModifier() { + super(); + } + public void testComplex() { + final @var char[] shouldBeFinalCharArray = field.toCharArray(); + @var char[] shouldBeCharArray = field.toCharArray(); + + } +} \ No newline at end of file diff --git a/test/transform/resource/before/VarComplex.java b/test/transform/resource/before/VarComplex.java new file mode 100644 index 00000000..c93e177a --- /dev/null +++ b/test/transform/resource/before/VarComplex.java @@ -0,0 +1,22 @@ +import lombok.var; + +public class VarComplex { + private String field = ""; + private static final int CONSTANT = 20; + + public void testComplex() { + var shouldBeCharArray = field.toCharArray(); + var shouldBeInt = CONSTANT; + var lock = new Object(); + synchronized (lock) { + var field = 20; //Shadowing + var inner = 10; + switch (field) { + case 5: + var shouldBeCharArray2 = shouldBeCharArray; + var innerInner = inner; + } + } + var shouldBeString = field; //Unshadowing + } +} \ No newline at end of file diff --git a/test/transform/resource/before/VarInFor.java b/test/transform/resource/before/VarInFor.java new file mode 100644 index 00000000..7f7bb7a7 --- /dev/null +++ b/test/transform/resource/before/VarInFor.java @@ -0,0 +1,11 @@ +import lombok.var; + +public class VarInFor { + public void enhancedFor() { + int[] list = new int[] {1, 2}; + for (var shouldBeInt : list) { + System.out.println(shouldBeInt); + var shouldBeInt2 = shouldBeInt; + } + } +} \ No newline at end of file diff --git a/test/transform/resource/before/VarInForOld.java b/test/transform/resource/before/VarInForOld.java new file mode 100644 index 00000000..99e83b57 --- /dev/null +++ b/test/transform/resource/before/VarInForOld.java @@ -0,0 +1,9 @@ +import lombok.var; + +public class VarInForOld { + public void oldFor() { + for (var i = 0; i < 100; ++i) { + System.out.println(i); + } + } +} \ No newline at end of file diff --git a/test/transform/resource/before/VarModifier.java b/test/transform/resource/before/VarModifier.java new file mode 100644 index 00000000..bb167fd2 --- /dev/null +++ b/test/transform/resource/before/VarModifier.java @@ -0,0 +1,10 @@ +import lombok.var; + +public class VarModifier { + private String field = ""; + + public void testComplex() { + final var shouldBeFinalCharArray = field.toCharArray(); + var shouldBeCharArray = field.toCharArray(); + } +} \ No newline at end of file -- cgit From 710a04607b2c8c875d1971dd517f9eace10a14b4 Mon Sep 17 00:00:00 2001 From: Bulgakov Alexander Date: Wed, 26 Oct 2016 23:18:47 +0300 Subject: The @var annotation has been moved to the experimental package. Added a test of a @var variable with null initialization. --- test/transform/resource/after-delombok/ValNullInit.java | 5 +++++ test/transform/resource/after-delombok/VarNullInit.java | 5 +++++ test/transform/resource/after-ecj/ValNullInit.java | 10 ++++++++++ test/transform/resource/after-ecj/VarComplex.java | 2 +- test/transform/resource/after-ecj/VarInFor.java | 2 +- test/transform/resource/after-ecj/VarInForOld.java | 2 +- test/transform/resource/after-ecj/VarModifier.java | 2 +- test/transform/resource/after-ecj/VarNullInit.java | 10 ++++++++++ test/transform/resource/before/ValNullInit.java | 7 +++++++ test/transform/resource/before/VarComplex.java | 2 +- test/transform/resource/before/VarInFor.java | 2 +- test/transform/resource/before/VarInForOld.java | 2 +- test/transform/resource/before/VarModifier.java | 2 +- test/transform/resource/before/VarNullInit.java | 7 +++++++ 14 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 test/transform/resource/after-delombok/ValNullInit.java create mode 100644 test/transform/resource/after-delombok/VarNullInit.java create mode 100644 test/transform/resource/after-ecj/ValNullInit.java create mode 100644 test/transform/resource/after-ecj/VarNullInit.java create mode 100644 test/transform/resource/before/ValNullInit.java create mode 100644 test/transform/resource/before/VarNullInit.java (limited to 'test/transform') diff --git a/test/transform/resource/after-delombok/ValNullInit.java b/test/transform/resource/after-delombok/ValNullInit.java new file mode 100644 index 00000000..f0834a63 --- /dev/null +++ b/test/transform/resource/after-delombok/ValNullInit.java @@ -0,0 +1,5 @@ +class ValNullInit { + void method() { + final java.lang.Object x = null; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-delombok/VarNullInit.java b/test/transform/resource/after-delombok/VarNullInit.java new file mode 100644 index 00000000..f0087765 --- /dev/null +++ b/test/transform/resource/after-delombok/VarNullInit.java @@ -0,0 +1,5 @@ +class VarNullInit { + void method() { + java.lang.Object x = null; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/ValNullInit.java b/test/transform/resource/after-ecj/ValNullInit.java new file mode 100644 index 00000000..bd89c023 --- /dev/null +++ b/test/transform/resource/after-ecj/ValNullInit.java @@ -0,0 +1,10 @@ +import lombok.val; + +class ValNullInit { + ValNullInit() { + super(); + } + void method() { + final @val java.lang.Object x = null; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-ecj/VarComplex.java b/test/transform/resource/after-ecj/VarComplex.java index 97a0a177..10c456eb 100644 --- a/test/transform/resource/after-ecj/VarComplex.java +++ b/test/transform/resource/after-ecj/VarComplex.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarComplex { private String field = ""; private static final int CONSTANT = 20; diff --git a/test/transform/resource/after-ecj/VarInFor.java b/test/transform/resource/after-ecj/VarInFor.java index 1799d9b7..0192aaed 100644 --- a/test/transform/resource/after-ecj/VarInFor.java +++ b/test/transform/resource/after-ecj/VarInFor.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarInFor { public VarInFor() { super(); diff --git a/test/transform/resource/after-ecj/VarInForOld.java b/test/transform/resource/after-ecj/VarInForOld.java index 065ea94d..98fedf03 100644 --- a/test/transform/resource/after-ecj/VarInForOld.java +++ b/test/transform/resource/after-ecj/VarInForOld.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarInForOld { public VarInForOld() { super(); diff --git a/test/transform/resource/after-ecj/VarModifier.java b/test/transform/resource/after-ecj/VarModifier.java index 7f26534c..d11142ca 100644 --- a/test/transform/resource/after-ecj/VarModifier.java +++ b/test/transform/resource/after-ecj/VarModifier.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarModifier { private String field = ""; public VarModifier() { diff --git a/test/transform/resource/after-ecj/VarNullInit.java b/test/transform/resource/after-ecj/VarNullInit.java new file mode 100644 index 00000000..966afdc9 --- /dev/null +++ b/test/transform/resource/after-ecj/VarNullInit.java @@ -0,0 +1,10 @@ +import lombok.experimental.var; + +class VarNullInit { + ValNullInit() { + super(); + } + void method() { + final @var java.lang.Object x = null; + } +} \ No newline at end of file diff --git a/test/transform/resource/before/ValNullInit.java b/test/transform/resource/before/ValNullInit.java new file mode 100644 index 00000000..649bc0cd --- /dev/null +++ b/test/transform/resource/before/ValNullInit.java @@ -0,0 +1,7 @@ +import lombok.val; + +class ValNullInit { + void method() { + val x = null; + } +} \ No newline at end of file diff --git a/test/transform/resource/before/VarComplex.java b/test/transform/resource/before/VarComplex.java index c93e177a..a30492ac 100644 --- a/test/transform/resource/before/VarComplex.java +++ b/test/transform/resource/before/VarComplex.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarComplex { private String field = ""; diff --git a/test/transform/resource/before/VarInFor.java b/test/transform/resource/before/VarInFor.java index 7f7bb7a7..ed22edc3 100644 --- a/test/transform/resource/before/VarInFor.java +++ b/test/transform/resource/before/VarInFor.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarInFor { public void enhancedFor() { diff --git a/test/transform/resource/before/VarInForOld.java b/test/transform/resource/before/VarInForOld.java index 99e83b57..3000f58c 100644 --- a/test/transform/resource/before/VarInForOld.java +++ b/test/transform/resource/before/VarInForOld.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarInForOld { public void oldFor() { diff --git a/test/transform/resource/before/VarModifier.java b/test/transform/resource/before/VarModifier.java index bb167fd2..5c68caa7 100644 --- a/test/transform/resource/before/VarModifier.java +++ b/test/transform/resource/before/VarModifier.java @@ -1,4 +1,4 @@ -import lombok.var; +import lombok.experimental.var; public class VarModifier { private String field = ""; diff --git a/test/transform/resource/before/VarNullInit.java b/test/transform/resource/before/VarNullInit.java new file mode 100644 index 00000000..14d7b4a3 --- /dev/null +++ b/test/transform/resource/before/VarNullInit.java @@ -0,0 +1,7 @@ +import lombok.experimental.var; + +class VarNullInit { + void method() { + var x = null; + } +} \ No newline at end of file -- cgit From 62672c03855f6035a01c2b84fe783be0f6231899 Mon Sep 17 00:00:00 2001 From: Bulgakov Alexander Date: Thu, 27 Oct 2016 23:52:50 +0300 Subject: Use of the 'var' feature is disabled by default. Include lombok.var.flagUsage = ALLOW in lombok.config to enable var --- test/transform/resource/after-ecj/VarNullInit.java | 4 ++-- test/transform/resource/before/VarComplex.java | 1 + test/transform/resource/before/VarInFor.java | 1 + test/transform/resource/before/VarInForOld.java | 1 + test/transform/resource/before/VarModifier.java | 1 + test/transform/resource/before/VarNullInit.java | 1 + 6 files changed, 7 insertions(+), 2 deletions(-) (limited to 'test/transform') diff --git a/test/transform/resource/after-ecj/VarNullInit.java b/test/transform/resource/after-ecj/VarNullInit.java index 966afdc9..ba8c3e46 100644 --- a/test/transform/resource/after-ecj/VarNullInit.java +++ b/test/transform/resource/after-ecj/VarNullInit.java @@ -1,10 +1,10 @@ import lombok.experimental.var; class VarNullInit { - ValNullInit() { + VarNullInit() { super(); } void method() { - final @var java.lang.Object x = null; + @var java.lang.Object x = null; } } \ No newline at end of file diff --git a/test/transform/resource/before/VarComplex.java b/test/transform/resource/before/VarComplex.java index a30492ac..bfaa8804 100644 --- a/test/transform/resource/before/VarComplex.java +++ b/test/transform/resource/before/VarComplex.java @@ -1,3 +1,4 @@ +//CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; public class VarComplex { diff --git a/test/transform/resource/before/VarInFor.java b/test/transform/resource/before/VarInFor.java index ed22edc3..cc8c387e 100644 --- a/test/transform/resource/before/VarInFor.java +++ b/test/transform/resource/before/VarInFor.java @@ -1,3 +1,4 @@ +//CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; public class VarInFor { diff --git a/test/transform/resource/before/VarInForOld.java b/test/transform/resource/before/VarInForOld.java index 3000f58c..f90aba7f 100644 --- a/test/transform/resource/before/VarInForOld.java +++ b/test/transform/resource/before/VarInForOld.java @@ -1,3 +1,4 @@ +//CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; public class VarInForOld { diff --git a/test/transform/resource/before/VarModifier.java b/test/transform/resource/before/VarModifier.java index 5c68caa7..7250c1c5 100644 --- a/test/transform/resource/before/VarModifier.java +++ b/test/transform/resource/before/VarModifier.java @@ -1,3 +1,4 @@ +//CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; public class VarModifier { diff --git a/test/transform/resource/before/VarNullInit.java b/test/transform/resource/before/VarNullInit.java index 14d7b4a3..f7f9c55b 100644 --- a/test/transform/resource/before/VarNullInit.java +++ b/test/transform/resource/before/VarNullInit.java @@ -1,3 +1,4 @@ +//CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; class VarNullInit { -- cgit From 69eeb9edc767bb3ceb0320bb5a0ea60dfabe827c Mon Sep 17 00:00:00 2001 From: Bulgakov Alexander Date: Sat, 12 Nov 2016 23:04:48 +0300 Subject: a initialization of variable like "var o = null;" will throw the compile time error "variable initializer is 'null'" --- test/transform/resource/after-delombok/VarNullInit.java | 3 ++- test/transform/resource/after-ecj/VarNullInit.java | 5 ++--- test/transform/resource/before/VarNullInit.java | 2 +- test/transform/resource/messages-delombok/VarNullInit.java.messages | 1 + test/transform/resource/messages-ecj/VarNullInit.java.messages | 1 + 5 files changed, 7 insertions(+), 5 deletions(-) create mode 100644 test/transform/resource/messages-delombok/VarNullInit.java.messages create mode 100644 test/transform/resource/messages-ecj/VarNullInit.java.messages (limited to 'test/transform') diff --git a/test/transform/resource/after-delombok/VarNullInit.java b/test/transform/resource/after-delombok/VarNullInit.java index f0087765..8ec2ea73 100644 --- a/test/transform/resource/after-delombok/VarNullInit.java +++ b/test/transform/resource/after-delombok/VarNullInit.java @@ -1,4 +1,5 @@ -class VarNullInit { + +public class VarNullInit { void method() { java.lang.Object x = null; } diff --git a/test/transform/resource/after-ecj/VarNullInit.java b/test/transform/resource/after-ecj/VarNullInit.java index ba8c3e46..3eb2d506 100644 --- a/test/transform/resource/after-ecj/VarNullInit.java +++ b/test/transform/resource/after-ecj/VarNullInit.java @@ -1,7 +1,6 @@ import lombok.experimental.var; - -class VarNullInit { - VarNullInit() { +public class VarNullInit { + public VarNullInit() { super(); } void method() { diff --git a/test/transform/resource/before/VarNullInit.java b/test/transform/resource/before/VarNullInit.java index f7f9c55b..efdc9d9e 100644 --- a/test/transform/resource/before/VarNullInit.java +++ b/test/transform/resource/before/VarNullInit.java @@ -1,7 +1,7 @@ //CONF: lombok.var.flagUsage = ALLOW import lombok.experimental.var; -class VarNullInit { +public class VarNullInit { void method() { var x = null; } diff --git a/test/transform/resource/messages-delombok/VarNullInit.java.messages b/test/transform/resource/messages-delombok/VarNullInit.java.messages new file mode 100644 index 00000000..190ab7c4 --- /dev/null +++ b/test/transform/resource/messages-delombok/VarNullInit.java.messages @@ -0,0 +1 @@ +6 variable initializer is 'null' \ No newline at end of file diff --git a/test/transform/resource/messages-ecj/VarNullInit.java.messages b/test/transform/resource/messages-ecj/VarNullInit.java.messages new file mode 100644 index 00000000..190ab7c4 --- /dev/null +++ b/test/transform/resource/messages-ecj/VarNullInit.java.messages @@ -0,0 +1 @@ +6 variable initializer is 'null' \ No newline at end of file -- cgit