public class SuperBuilderNameClashes { public static class GenericsClash { @java.lang.SuppressWarnings("all") public static abstract class GenericsClashBuilder, B2 extends SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder> { @java.lang.SuppressWarnings("all") protected abstract B2 self(); @java.lang.SuppressWarnings("all") public abstract C3 build(); @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder()"; } } @java.lang.SuppressWarnings("all") private static final class GenericsClashBuilderImpl extends SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder, SuperBuilderNameClashes.GenericsClash.GenericsClashBuilderImpl> { @java.lang.SuppressWarnings("all") private GenericsClashBuilderImpl() { } @java.lang.Override @java.lang.SuppressWarnings("all") protected SuperBuilderNameClashes.GenericsClash.GenericsClashBuilderImpl self() { return this; } @java.lang.Override @java.lang.SuppressWarnings("all") public SuperBuilderNameClashes.GenericsClash build() { return new SuperBuilderNameClashes.GenericsClash(this); } } @java.lang.SuppressWarnings("all") protected GenericsClash(final SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder b) { } @java.lang.SuppressWarnings("all") public static SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder builder() { return new SuperBuilderNameClashes.GenericsClash.GenericsClashBuilderImpl(); } } public static class B { @java.lang.SuppressWarnings("all") public static abstract class BBuilder> { @java.lang.SuppressWarnings("all") protected abstract B2 self(); @java.lang.SuppressWarnings("all") public abstract C build(); @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "SuperBuilderNameClashes.B.BBuilder()"; } } @java.lang.SuppressWarnings("all") private static final class BBuilderImpl extends SuperBuilderNameClashes.B.BBuilder { @java.lang.SuppressWarnings("all") private BBuilderImpl() { } @java.lang.Override @java.lang.SuppressWarnings("all") protected SuperBuilderNameClashes.B.BBuilderImpl self() { return this; } @java.lang.Override @java.lang.SuppressWarnings("all") public SuperBuilderNameClashes.B build() { return new SuperBuilderNameClashes.B(this); } } @java.lang.SuppressWarnings("all") protected B(final SuperBuilderNameClashes.B.BBuilder b) { } @java.lang.SuppressWarnings("all") public static SuperBuilderNameClashes.B.BBuilder builder() { return new SuperBuilderNameClashes.B.BBuilderImpl(); } } public static class C2 { } public static class C { C2 c2; @java.lang.SuppressWarnings("all") public static abstract class CBuilder> { @java.lang.SuppressWarnings("all") private C2 c2; @java.lang.SuppressWarnings("all") protected abstract B self(); @java.lang.SuppressWarnings("all") public abstract C3 build(); @java.lang.SuppressWarnings("all") public B c2(final C2 c2) { this.c2 = c2; return self(); } @java.lang.Override @java.lang.SuppressWarnings("all") public java.lang.String toString() { return "SuperBuilderNameClashes.C.CBuilder(c2=" + this.c2 + ")"; } } @java.lang.SuppressWarnings("all") private static final class CBuilderImpl extends SuperBuilderNameClashes.C.CBuilder { @java.lang.SuppressWarnings("all") private CBuilderImpl() { } @java.lang.Override @java.lang.SuppressWarnings("all") protected SuperBuilderNameClashes.C.CBuilderImpl self() { return this; } @java.lang.Override @java.lang.SuppressWarnings("all") public SuperBuilderNameClashes.C build() { return new SuperBuilderNameClashes.C(this); } } @java.lang.SuppressWarnings("all") protected C(final SuperBuilderNameClashes.C.CBuilder b) { this.c2 = b.c2; } @java.lang.SuppressWarnings("all") public static SuperBuilderNameClashes.C.CBuilder builder() { return new SuperBuilderNameClashes.C.CBuilderImpl(); } } }