mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-14 02:16:18 +00:00
(SuperBuilder) fix javac type params on conflicting names
This commit is contained in:
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> {
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user