aboutsummaryrefslogtreecommitdiff
path: root/test/transform
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2017-02-16 23:32:17 +0100
committerReinier Zwitserloot <reinier@zwitserloot.com>2017-02-16 23:45:28 +0100
commit74603cd9d355353f5373deb167988c5eaf015346 (patch)
tree568ec90fea98c8405b52fca93405333fa2109d3f /test/transform
parentfe3490328a35d431fdd7bdf16eed08970e47b85c (diff)
downloadlombok-74603cd9d355353f5373deb167988c5eaf015346.tar.gz
lombok-74603cd9d355353f5373deb167988c5eaf015346.tar.bz2
lombok-74603cd9d355353f5373deb167988c5eaf015346.zip
Fixing issue #1298: `@Builder` with recursive generics didn’t work in javac/delombok.
Diffstat (limited to 'test/transform')
-rw-r--r--test/transform/knownBroken/before/I1298BuilderWithGenerics.java15
-rw-r--r--test/transform/resource/after-delombok/BuilderWithRecursiveGenerics.java100
-rw-r--r--test/transform/resource/after-ecj/BuilderWithRecursiveGenerics.java78
-rw-r--r--test/transform/resource/before/BuilderWithRecursiveGenerics.java13
4 files changed, 191 insertions, 15 deletions
diff --git a/test/transform/knownBroken/before/I1298BuilderWithGenerics.java b/test/transform/knownBroken/before/I1298BuilderWithGenerics.java
deleted file mode 100644
index af154d42..00000000
--- a/test/transform/knownBroken/before/I1298BuilderWithGenerics.java
+++ /dev/null
@@ -1,15 +0,0 @@
-import java.util.Set;
-import lombok.Builder;
-import lombok.Value;
-
-public class I1298BuilderWithGenerics {
- interface Inter<T, U extends Inter<T, U>> {}
-
- @Builder @Value public static class Test<
- Foo,
- Bar extends Set<Foo>,
- Quz extends Inter<Bar, Quz>> {
- Foo foo;
- Bar bar;
- }
-}
diff --git a/test/transform/resource/after-delombok/BuilderWithRecursiveGenerics.java b/test/transform/resource/after-delombok/BuilderWithRecursiveGenerics.java
new file mode 100644
index 00000000..edc1e3c6
--- /dev/null
+++ b/test/transform/resource/after-delombok/BuilderWithRecursiveGenerics.java
@@ -0,0 +1,100 @@
+import java.util.Set;
+public class BuilderWithRecursiveGenerics {
+ interface Inter<T, U extends Inter<T, U>> {
+ }
+ public static final class Test<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
+ private final Foo foo;
+ private final Bar bar;
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ Test(final Foo foo, final Bar bar) {
+ this.foo = foo;
+ this.bar = bar;
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public static class TestBuilder<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ private Foo foo;
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ private Bar bar;
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ TestBuilder() {
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public TestBuilder<Foo, Bar, Quz> foo(final Foo foo) {
+ this.foo = foo;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public TestBuilder<Foo, Bar, Quz> bar(final Bar bar) {
+ this.bar = bar;
+ return this;
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public Test<Foo, Bar, Quz> build() {
+ return new Test<Foo, Bar, Quz>(foo, bar);
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public java.lang.String toString() {
+ return "BuilderWithRecursiveGenerics.Test.TestBuilder(foo=" + this.foo + ", bar=" + this.bar + ")";
+ }
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public static <Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> TestBuilder<Foo, Bar, Quz> builder() {
+ return new TestBuilder<Foo, Bar, Quz>();
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public Foo getFoo() {
+ return this.foo;
+ }
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public Bar getBar() {
+ return this.bar;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public boolean equals(final java.lang.Object o) {
+ if (o == this) return true;
+ if (!(o instanceof BuilderWithRecursiveGenerics.Test)) return false;
+ final BuilderWithRecursiveGenerics.Test<?, ?, ?> other = (BuilderWithRecursiveGenerics.Test<?, ?, ?>) o;
+ final java.lang.Object this$foo = this.getFoo();
+ final java.lang.Object other$foo = other.getFoo();
+ if (this$foo == null ? other$foo != null : !this$foo.equals(other$foo)) return false;
+ final java.lang.Object this$bar = this.getBar();
+ final java.lang.Object other$bar = other.getBar();
+ if (this$bar == null ? other$bar != null : !this$bar.equals(other$bar)) return false;
+ return true;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $foo = this.getFoo();
+ result = result * PRIME + ($foo == null ? 43 : $foo.hashCode());
+ final java.lang.Object $bar = this.getBar();
+ result = result * PRIME + ($bar == null ? 43 : $bar.hashCode());
+ return result;
+ }
+ @java.lang.Override
+ @java.lang.SuppressWarnings("all")
+ @javax.annotation.Generated("lombok")
+ public java.lang.String toString() {
+ return "BuilderWithRecursiveGenerics.Test(foo=" + this.getFoo() + ", bar=" + this.getBar() + ")";
+ }
+ }
+}
diff --git a/test/transform/resource/after-ecj/BuilderWithRecursiveGenerics.java b/test/transform/resource/after-ecj/BuilderWithRecursiveGenerics.java
new file mode 100644
index 00000000..f13b8b9b
--- /dev/null
+++ b/test/transform/resource/after-ecj/BuilderWithRecursiveGenerics.java
@@ -0,0 +1,78 @@
+import java.util.Set;
+import lombok.Builder;
+import lombok.Value;
+public class BuilderWithRecursiveGenerics {
+ interface Inter<T, U extends Inter<T, U>> {
+ }
+ public static final @Builder @Value class Test<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
+ public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") class TestBuilder<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
+ private @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Foo foo;
+ private @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Bar bar;
+ @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") TestBuilder() {
+ super();
+ }
+ public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") TestBuilder<Foo, Bar, Quz> foo(final Foo foo) {
+ this.foo = foo;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") TestBuilder<Foo, Bar, Quz> bar(final Bar bar) {
+ this.bar = bar;
+ return this;
+ }
+ public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Test<Foo, Bar, Quz> build() {
+ return new Test<Foo, Bar, Quz>(foo, bar);
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") java.lang.String toString() {
+ return (((("BuilderWithRecursiveGenerics.Test.TestBuilder(foo=" + this.foo) + ", bar=") + this.bar) + ")");
+ }
+ }
+ private final Foo foo;
+ private final Bar bar;
+ @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Test(final Foo foo, final Bar bar) {
+ super();
+ this.foo = foo;
+ this.bar = bar;
+ }
+ public static @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") <Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>>TestBuilder<Foo, Bar, Quz> builder() {
+ return new TestBuilder<Foo, Bar, Quz>();
+ }
+ public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Foo getFoo() {
+ return this.foo;
+ }
+ public @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") Bar getBar() {
+ return this.bar;
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") boolean equals(final java.lang.Object o) {
+ if ((o == this))
+ return true;
+ if ((! (o instanceof BuilderWithRecursiveGenerics.Test)))
+ return false;
+ final BuilderWithRecursiveGenerics.Test<?, ?, ?> other = (BuilderWithRecursiveGenerics.Test<?, ?, ?>) o;
+ final java.lang.Object this$foo = this.getFoo();
+ final java.lang.Object other$foo = other.getFoo();
+ if (((this$foo == null) ? (other$foo != null) : (! this$foo.equals(other$foo))))
+ return false;
+ final java.lang.Object this$bar = this.getBar();
+ final java.lang.Object other$bar = other.getBar();
+ if (((this$bar == null) ? (other$bar != null) : (! this$bar.equals(other$bar))))
+ return false;
+ return true;
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") int hashCode() {
+ final int PRIME = 59;
+ int result = 1;
+ final java.lang.Object $foo = this.getFoo();
+ result = ((result * PRIME) + (($foo == null) ? 43 : $foo.hashCode()));
+ final java.lang.Object $bar = this.getBar();
+ result = ((result * PRIME) + (($bar == null) ? 43 : $bar.hashCode()));
+ return result;
+ }
+ public @java.lang.Override @java.lang.SuppressWarnings("all") @javax.annotation.Generated("lombok") java.lang.String toString() {
+ return (((("BuilderWithRecursiveGenerics.Test(foo=" + this.getFoo()) + ", bar=") + this.getBar()) + ")");
+ }
+ }
+ public BuilderWithRecursiveGenerics() {
+ super();
+ }
+}
+
diff --git a/test/transform/resource/before/BuilderWithRecursiveGenerics.java b/test/transform/resource/before/BuilderWithRecursiveGenerics.java
new file mode 100644
index 00000000..041da414
--- /dev/null
+++ b/test/transform/resource/before/BuilderWithRecursiveGenerics.java
@@ -0,0 +1,13 @@
+//issue #1298
+import java.util.Set;
+import lombok.Builder;
+import lombok.Value;
+
+public class BuilderWithRecursiveGenerics {
+ interface Inter<T, U extends Inter<T, U>> {}
+
+ @Builder @Value public static class Test<Foo, Bar extends Set<Foo>, Quz extends Inter<Bar, Quz>> {
+ Foo foo;
+ Bar bar;
+ }
+}