aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorpeichhorn <peichhor@web.de>2011-05-30 21:17:46 +0200
committerpeichhorn <peichhor@web.de>2011-05-30 21:26:45 +0200
commitdaf84dd00ed5059710acf9f40b4663ba7fed06e0 (patch)
tree3e4bdcebd2f78aab9a5305160d60e9846e74241e /test
parent1e7c6b98caec18a1f3747a7e0303df88b42ffac2 (diff)
downloadlombok-daf84dd00ed5059710acf9f40b4663ba7fed06e0.tar.gz
lombok-daf84dd00ed5059710acf9f40b4663ba7fed06e0.tar.bz2
lombok-daf84dd00ed5059710acf9f40b4663ba7fed06e0.zip
HandleDelegate did not remove the annotation @Delegate from javac's AST, so HandleDelegate was called multiple times for the same field resulting in an error saying the delegate method was already defined.
Also added a test for @Delegate that uncovered this issue.
Diffstat (limited to 'test')
-rw-r--r--test/transform/resource/after-delombok/DelegateTypesAndExcludes.java35
-rw-r--r--test/transform/resource/after-ecj/DelegateTypesAndExcludes.java1
-rw-r--r--test/transform/resource/before/DelegateTypesAndExcludes.java28
3 files changed, 64 insertions, 0 deletions
diff --git a/test/transform/resource/after-delombok/DelegateTypesAndExcludes.java b/test/transform/resource/after-delombok/DelegateTypesAndExcludes.java
new file mode 100644
index 00000000..3f6f555d
--- /dev/null
+++ b/test/transform/resource/after-delombok/DelegateTypesAndExcludes.java
@@ -0,0 +1,35 @@
+class DelegatePlain {
+ private final BarImpl bar = new BarImpl();
+ private final FooImpl foo = new FooImpl();
+
+ private static class FooImpl implements Foo {
+ public void foo() {
+ }
+
+ public void bar(java.util.ArrayList<java.lang.String> list) {
+ }
+ }
+
+ private static class BarImpl implements Bar {
+ public void bar(java.util.ArrayList<java.lang.String> list) {
+ }
+ }
+
+ private static interface Foo extends Bar {
+ void foo();
+ }
+
+ private static interface Bar {
+ void bar(java.util.ArrayList<java.lang.String> list);
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public void bar(final java.util.ArrayList<java.lang.String> list) {
+ this.bar.bar(list);
+ }
+
+ @java.lang.SuppressWarnings("all")
+ public void foo() {
+ this.foo.foo();
+ }
+} \ No newline at end of file
diff --git a/test/transform/resource/after-ecj/DelegateTypesAndExcludes.java b/test/transform/resource/after-ecj/DelegateTypesAndExcludes.java
new file mode 100644
index 00000000..cb06d3c1
--- /dev/null
+++ b/test/transform/resource/after-ecj/DelegateTypesAndExcludes.java
@@ -0,0 +1 @@
+//ignore \ No newline at end of file
diff --git a/test/transform/resource/before/DelegateTypesAndExcludes.java b/test/transform/resource/before/DelegateTypesAndExcludes.java
new file mode 100644
index 00000000..da7fc4cb
--- /dev/null
+++ b/test/transform/resource/before/DelegateTypesAndExcludes.java
@@ -0,0 +1,28 @@
+import lombok.Delegate;
+class DelegatePlain {
+ @Delegate(types = Bar.class)
+ private final BarImpl bar = new BarImpl();
+ @Delegate(types = Foo.class, excludes = Bar.class)
+ private final FooImpl foo = new FooImpl();
+
+ private static class FooImpl implements Foo {
+ public void foo() {
+ }
+
+ public void bar(java.util.ArrayList<java.lang.String> list) {
+ }
+ }
+
+ private static class BarImpl implements Bar {
+ public void bar(java.util.ArrayList<java.lang.String> list) {
+ }
+ }
+
+ private static interface Foo extends Bar {
+ void foo();
+ }
+
+ private static interface Bar {
+ void bar(java.util.ArrayList<java.lang.String> list);
+ }
+} \ No newline at end of file