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. --- 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 ++++++++++ 4 files changed, 64 insertions(+) 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 (limited to 'test/transform/resource/after-ecj') 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 -- 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-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 ++++++++++ 6 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 test/transform/resource/after-ecj/ValNullInit.java create mode 100644 test/transform/resource/after-ecj/VarNullInit.java (limited to 'test/transform/resource/after-ecj') 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 -- 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 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/transform/resource/after-ecj') 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 -- 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-ecj/VarNullInit.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'test/transform/resource/after-ecj') 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() { -- cgit