(SuperBuilder) fix javac type params on conflicting names

This commit is contained in:
Jan Rieke committed 2022-06-17 23:30:25 +02:00
1 parent ab36d2f879
commit 0fcb446265
4 files changed
+23 -7

No files matched your search

@@ -1063,6 +1063,9 @@ public class HandleSuperBuilder extends JavacAnnotationHandler<SuperBuilder> {
private void addFirstToken(java.util.Set<String> usedNames, JCTree type) {
if (type == null)
return;
if (type instanceof JCTypeApply) {
type = ((JCTypeApply)type).clazz;
}
while (type instanceof JCFieldAccess && ((JCFieldAccess)type).selected != null) {
// Add the first token, because only that can collide.
type = ((JCFieldAccess)type).selected;
@@ -125,13 +125,17 @@ public class SuperBuilderNameClashes {
}
}
interface B2 {
interface B4<X> {
}
}
public static class ExtendsClauseCollision extends B implements B2 {
interface B3<Y> {
}
public static class ExtendsClauseCollision extends B implements B2.B4<Object>, B3<Object> {
@java.lang.SuppressWarnings("all")
public static abstract class ExtendsClauseCollisionBuilder<C extends SuperBuilderNameClashes.ExtendsClauseCollision, B3 extends SuperBuilderNameClashes.ExtendsClauseCollision.ExtendsClauseCollisionBuilder<C, B3>> extends B.BBuilder<C, B3> {
public static abstract class ExtendsClauseCollisionBuilder<C extends SuperBuilderNameClashes.ExtendsClauseCollision, B4 extends SuperBuilderNameClashes.ExtendsClauseCollision.ExtendsClauseCollisionBuilder<C, B4>> extends B.BBuilder<C, B4> {
@java.lang.Override
@java.lang.SuppressWarnings("all")
protected abstract B3 self();
protected abstract B4 self();
@java.lang.Override
@java.lang.SuppressWarnings("all")
public abstract C build();
@@ -102,13 +102,17 @@ public class SuperBuilderNameClashes {
}
}
interface B2 {
interface B4<X> {
}
}
public static @lombok.experimental.SuperBuilder class ExtendsClauseCollision extends B implements B2 {
public static abstract @java.lang.SuppressWarnings("all") class ExtendsClauseCollisionBuilder<C extends SuperBuilderNameClashes.ExtendsClauseCollision, B3 extends SuperBuilderNameClashes.ExtendsClauseCollision.ExtendsClauseCollisionBuilder<C, B3>> extends B.BBuilder<C, B3> {
interface B3<Y> {
}
public static @lombok.experimental.SuperBuilder class ExtendsClauseCollision extends B implements B2.B4<Object>, B3<Object> {
public static abstract @java.lang.SuppressWarnings("all") class ExtendsClauseCollisionBuilder<C extends SuperBuilderNameClashes.ExtendsClauseCollision, B4 extends SuperBuilderNameClashes.ExtendsClauseCollision.ExtendsClauseCollisionBuilder<C, B4>> extends B.BBuilder<C, B4> {
public ExtendsClauseCollisionBuilder() {
super();
}
protected abstract @java.lang.Override @java.lang.SuppressWarnings("all") B3 self();
protected abstract @java.lang.Override @java.lang.SuppressWarnings("all") B4 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 (("SuperBuilderNameClashes.ExtendsClauseCollision.ExtendsClauseCollisionBuilder(super=" + super.toString()) + ")");
@@ -16,9 +16,14 @@ public class SuperBuilderNameClashes {
}
interface B2 {
interface B4<X> {
}
}
interface B3<Y> {
}
@lombok.experimental.SuperBuilder
public static class ExtendsClauseCollision extends B implements B2 {
public static class ExtendsClauseCollision extends B implements B2.B4<Object>, B3<Object> {
}
}