From 0ab433b41a6d2afa446d7e46204531c1efa606e2 Mon Sep 17 00:00:00 2001 From: Jan Rieke Date: Tue, 11 Feb 2020 12:25:53 +0100 Subject: SuperBuilder javac fix for nested generic types; fixes #2359 --- .../SuperBuilderNestedGenericTypes.java | 41 ++++++++++++++++++++++ .../after-ecj/SuperBuilderNestedGenericTypes.java | 37 +++++++++++++++++++ .../before/SuperBuilderNestedGenericTypes.java | 12 +++++++ 3 files changed, 90 insertions(+) create mode 100644 test/transform/resource/after-delombok/SuperBuilderNestedGenericTypes.java create mode 100644 test/transform/resource/after-ecj/SuperBuilderNestedGenericTypes.java create mode 100644 test/transform/resource/before/SuperBuilderNestedGenericTypes.java (limited to 'test') diff --git a/test/transform/resource/after-delombok/SuperBuilderNestedGenericTypes.java b/test/transform/resource/after-delombok/SuperBuilderNestedGenericTypes.java new file mode 100644 index 00000000..ad738c01 --- /dev/null +++ b/test/transform/resource/after-delombok/SuperBuilderNestedGenericTypes.java @@ -0,0 +1,41 @@ +public class SuperBuilderNestedGenericTypes { + public static abstract class Generic> { + @java.lang.SuppressWarnings("all") + public static abstract class GenericBuilder, C extends SuperBuilderNestedGenericTypes.Generic, B extends SuperBuilderNestedGenericTypes.Generic.GenericBuilder> { + @java.lang.SuppressWarnings("all") + protected abstract B self(); + @java.lang.SuppressWarnings("all") + public abstract C build(); + @java.lang.Override + @java.lang.SuppressWarnings("all") + public java.lang.String toString() { + return "SuperBuilderNestedGenericTypes.Generic.GenericBuilder()"; + } + } + @java.lang.SuppressWarnings("all") + protected Generic(final SuperBuilderNestedGenericTypes.Generic.GenericBuilder b) { + } + } + public static abstract class NestedGeneric> extends Generic>> { + @java.lang.SuppressWarnings("all") + public static abstract class NestedGenericBuilder, C extends SuperBuilderNestedGenericTypes.NestedGeneric, B extends SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder> extends Generic.GenericBuilder>, C, B> { + @java.lang.Override + @java.lang.SuppressWarnings("all") + protected abstract B self(); + @java.lang.Override + @java.lang.SuppressWarnings("all") + public abstract C build(); + @java.lang.Override + @java.lang.SuppressWarnings("all") + public java.lang.String toString() { + return "SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder(super=" + super.toString() + ")"; + } + } + @java.lang.SuppressWarnings("all") + protected NestedGeneric(final SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder b) { + super(b); + } + } + public interface OtherGeneric { + } +} diff --git a/test/transform/resource/after-ecj/SuperBuilderNestedGenericTypes.java b/test/transform/resource/after-ecj/SuperBuilderNestedGenericTypes.java new file mode 100644 index 00000000..e511b276 --- /dev/null +++ b/test/transform/resource/after-ecj/SuperBuilderNestedGenericTypes.java @@ -0,0 +1,37 @@ +public class SuperBuilderNestedGenericTypes { + public static abstract @lombok.experimental.SuperBuilder class Generic> { + public static abstract @java.lang.SuppressWarnings("all") class GenericBuilder, C extends SuperBuilderNestedGenericTypes.Generic, B extends SuperBuilderNestedGenericTypes.Generic.GenericBuilder> { + public GenericBuilder() { + super(); + } + protected abstract @java.lang.SuppressWarnings("all") B self(); + public abstract @java.lang.SuppressWarnings("all") C build(); + public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { + return "SuperBuilderNestedGenericTypes.Generic.GenericBuilder()"; + } + } + protected @java.lang.SuppressWarnings("all") Generic(final SuperBuilderNestedGenericTypes.Generic.GenericBuilder b) { + super(); + } + } + public static abstract @lombok.experimental.SuperBuilder class NestedGeneric> extends Generic>> { + public static abstract @java.lang.SuppressWarnings("all") class NestedGenericBuilder, C extends SuperBuilderNestedGenericTypes.NestedGeneric, B extends SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder> extends Generic.GenericBuilder>, C, B> { + public NestedGenericBuilder() { + super(); + } + protected abstract @java.lang.Override @java.lang.SuppressWarnings("all") B self(); + public abstract @java.lang.Override @java.lang.SuppressWarnings("all") C build(); + public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { + return (("SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder(super=" + super.toString()) + ")"); + } + } + protected @java.lang.SuppressWarnings("all") NestedGeneric(final SuperBuilderNestedGenericTypes.NestedGeneric.NestedGenericBuilder b) { + super(b); + } + } + public interface OtherGeneric { + } + public SuperBuilderNestedGenericTypes() { + super(); + } +} \ No newline at end of file diff --git a/test/transform/resource/before/SuperBuilderNestedGenericTypes.java b/test/transform/resource/before/SuperBuilderNestedGenericTypes.java new file mode 100644 index 00000000..c463357e --- /dev/null +++ b/test/transform/resource/before/SuperBuilderNestedGenericTypes.java @@ -0,0 +1,12 @@ +public class SuperBuilderNestedGenericTypes { + @lombok.experimental.SuperBuilder + public static abstract class Generic> { + } + + @lombok.experimental.SuperBuilder + public static abstract class NestedGeneric> extends Generic>> { + } + + public interface OtherGeneric { + } +} -- cgit