From d9031506b5e7804c277d29db060973cd17033e9a Mon Sep 17 00:00:00 2001 From: Roel Spilker Date: Tue, 12 Dec 2017 02:42:14 +0100 Subject: support for @Builder on methods with a generified return type. Fixes #1420 --- .../after-delombok/BuilderGenericMethod.java | 40 ++++++++++++++++++++++ .../BuilderWithExistingBuilderClass.java | 2 +- .../after-delombok/BuilderWithToBuilder.java | 2 +- .../resource/after-ecj/BuilderGenericMethod.java | 35 +++++++++++++++++++ .../resource/before/BuilderGenericMethod.java | 11 ++++++ 5 files changed, 88 insertions(+), 2 deletions(-) create mode 100644 test/transform/resource/after-delombok/BuilderGenericMethod.java create mode 100644 test/transform/resource/after-ecj/BuilderGenericMethod.java create mode 100644 test/transform/resource/before/BuilderGenericMethod.java (limited to 'test/transform/resource') diff --git a/test/transform/resource/after-delombok/BuilderGenericMethod.java b/test/transform/resource/after-delombok/BuilderGenericMethod.java new file mode 100644 index 00000000..f70ae871 --- /dev/null +++ b/test/transform/resource/after-delombok/BuilderGenericMethod.java @@ -0,0 +1,40 @@ +import java.util.List; +import java.util.*; +class BuilderGenericMethod { + public Map foo(int a, long b) { + return null; + } + @java.lang.SuppressWarnings("all") + public class MapBuilder { + @java.lang.SuppressWarnings("all") + private int a; + @java.lang.SuppressWarnings("all") + private long b; + @java.lang.SuppressWarnings("all") + MapBuilder() { + } + @java.lang.SuppressWarnings("all") + public MapBuilder a(final int a) { + this.a = a; + return this; + } + @java.lang.SuppressWarnings("all") + public MapBuilder b(final long b) { + this.b = b; + return this; + } + @java.lang.SuppressWarnings("all") + public Map build() { + return BuilderGenericMethod.this.foo(a, b); + } + @java.lang.Override + @java.lang.SuppressWarnings("all") + public java.lang.String toString() { + return "BuilderGenericMethod.MapBuilder(a=" + this.a + ", b=" + this.b + ")"; + } + } + @java.lang.SuppressWarnings("all") + public MapBuilder builder() { + return new MapBuilder(); + } +} diff --git a/test/transform/resource/after-delombok/BuilderWithExistingBuilderClass.java b/test/transform/resource/after-delombok/BuilderWithExistingBuilderClass.java index 15293470..0a5edacd 100644 --- a/test/transform/resource/after-delombok/BuilderWithExistingBuilderClass.java +++ b/test/transform/resource/after-delombok/BuilderWithExistingBuilderClass.java @@ -24,7 +24,7 @@ class BuilderWithExistingBuilderClass { return this; } @java.lang.SuppressWarnings("all") - public BuilderWithExistingBuilderClass build() { + public BuilderWithExistingBuilderClass build() { return BuilderWithExistingBuilderClass.staticMethod(arg1, arg2, arg3); } @java.lang.Override diff --git a/test/transform/resource/after-delombok/BuilderWithToBuilder.java b/test/transform/resource/after-delombok/BuilderWithToBuilder.java index e2ce1966..46387f0f 100644 --- a/test/transform/resource/after-delombok/BuilderWithToBuilder.java +++ b/test/transform/resource/after-delombok/BuilderWithToBuilder.java @@ -165,7 +165,7 @@ class StaticWithToBuilder { return this; } @java.lang.SuppressWarnings("all") - public StaticWithToBuilder build() { + public StaticWithToBuilder build() { return StaticWithToBuilder.test(mOne, bar); } @java.lang.Override diff --git a/test/transform/resource/after-ecj/BuilderGenericMethod.java b/test/transform/resource/after-ecj/BuilderGenericMethod.java new file mode 100644 index 00000000..1b770654 --- /dev/null +++ b/test/transform/resource/after-ecj/BuilderGenericMethod.java @@ -0,0 +1,35 @@ +import java.util.List; +import lombok.Builder; +import java.util.*; +class BuilderGenericMethod { + public @java.lang.SuppressWarnings("all") class MapBuilder { + private @java.lang.SuppressWarnings("all") int a; + private @java.lang.SuppressWarnings("all") long b; + @java.lang.SuppressWarnings("all") MapBuilder() { + super(); + } + public @java.lang.SuppressWarnings("all") MapBuilder a(final int a) { + this.a = a; + return this; + } + public @java.lang.SuppressWarnings("all") MapBuilder b(final long b) { + this.b = b; + return this; + } + public @java.lang.SuppressWarnings("all") Map build() { + return BuilderGenericMethod.this.foo(a, b); + } + public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { + return (((("BuilderGenericMethod.MapBuilder(a=" + this.a) + ", b=") + this.b) + ")"); + } + } + BuilderGenericMethod() { + super(); + } + public @Builder Map foo(int a, long b) { + return null; + } + public @java.lang.SuppressWarnings("all") MapBuilder builder() { + return new MapBuilder(); + } +} diff --git a/test/transform/resource/before/BuilderGenericMethod.java b/test/transform/resource/before/BuilderGenericMethod.java new file mode 100644 index 00000000..63dcb4db --- /dev/null +++ b/test/transform/resource/before/BuilderGenericMethod.java @@ -0,0 +1,11 @@ +import java.util.List; + +import lombok.Builder; +import java.util.*; + +class BuilderGenericMethod { + @Builder + public Map foo(int a, long b) { + return null; + } +} -- cgit