support for @Builder on methods with a generified return type. Fixes #1420

This commit is contained in:
Roel Spilker committed 2017-12-12 02:42:14 +01:00
1 parent f2530ab37e
commit d9031506b5
7 files changed
+108 -9

No files matched your search

@@ -0,0 +1,40 @@
import java.util.List;
import java.util.*;
class BuilderGenericMethod<T> {
public <N extends Number> Map<N, T> foo(int a, long b) {
return null;
}
@java.lang.SuppressWarnings("all")
public class MapBuilder<N extends Number> {
@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<N> a(final int a) {
this.a = a;
return this;
}
@java.lang.SuppressWarnings("all")
public MapBuilder<N> b(final long b) {
this.b = b;
return this;
}
@java.lang.SuppressWarnings("all")
public Map<N, T> build() {
return BuilderGenericMethod.this.<N>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 <N extends Number> MapBuilder<N> builder() {
return new MapBuilder<N>();
}
}