forked from projectlombok/lombok
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
avoid name clash between classname and builder type param; fixes proj…
- Loading branch information
Showing
6 changed files
with
240 additions
and
10 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
116 changes: 116 additions & 0 deletions
116
test/transform/resource/after-delombok/SuperBuilderNameClashes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
import java.util.List; | ||
public class SuperBuilderNameClashes { | ||
public static class GenericsClash<B, C, C2> { | ||
@java.lang.SuppressWarnings("all") | ||
public static abstract class GenericsClashBuilder<B, C, C2, C3 extends GenericsClash<B, C, C2>, B2 extends GenericsClashBuilder<B, C, C2, C3, B2>> { | ||
@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<B, C, C2> extends GenericsClashBuilder<B, C, C2, GenericsClash<B, C, C2>, GenericsClashBuilderImpl<B, C, C2>> { | ||
@java.lang.SuppressWarnings("all") | ||
private GenericsClashBuilderImpl() { | ||
} | ||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
protected GenericsClashBuilderImpl<B, C, C2> self() { | ||
return this; | ||
} | ||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
public GenericsClash<B, C, C2> build() { | ||
return new GenericsClash<B, C, C2>(this); | ||
} | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
protected GenericsClash(final GenericsClashBuilder<B, C, C2, ?, ?> b) { | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
public static <B, C, C2> GenericsClashBuilder<B, C, C2, ?, ?> builder() { | ||
return new GenericsClashBuilderImpl<B, C, C2>(); | ||
} | ||
} | ||
public static class B { | ||
@java.lang.SuppressWarnings("all") | ||
public static abstract class BBuilder<C extends B, B2 extends BBuilder<C, B2>> { | ||
@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 BBuilder<B, BBuilderImpl> { | ||
@java.lang.SuppressWarnings("all") | ||
private BBuilderImpl() { | ||
} | ||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
protected BBuilderImpl self() { | ||
return this; | ||
} | ||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
public B build() { | ||
return new B(this); | ||
} | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
protected B(final BBuilder<?, ?> b) { | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
public static BBuilder<?, ?> builder() { | ||
return new BBuilderImpl(); | ||
} | ||
} | ||
public static class C { | ||
@java.lang.SuppressWarnings("all") | ||
public static abstract class CBuilder<C2 extends C, B extends CBuilder<C2, B>> { | ||
@java.lang.SuppressWarnings("all") | ||
protected abstract B self(); | ||
@java.lang.SuppressWarnings("all") | ||
public abstract C2 build(); | ||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
public java.lang.String toString() { | ||
return "SuperBuilderNameClashes.C.CBuilder()"; | ||
} | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
private static final class CBuilderImpl extends CBuilder<C, CBuilderImpl> { | ||
@java.lang.SuppressWarnings("all") | ||
private CBuilderImpl() { | ||
} | ||
|
||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
protected CBuilderImpl self() { | ||
return this; | ||
} | ||
|
||
@java.lang.Override | ||
@java.lang.SuppressWarnings("all") | ||
public C build() { | ||
return new C(this); | ||
} | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
protected C(final CBuilder<?, ?> b) { | ||
} | ||
@java.lang.SuppressWarnings("all") | ||
public static CBuilder<?, ?> builder() { | ||
return new CBuilderImpl(); | ||
} | ||
} | ||
} |
93 changes: 93 additions & 0 deletions
93
test/transform/resource/after-ecj/SuperBuilderNameClashes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
import java.util.List; | ||
public class SuperBuilderNameClashes { | ||
public static @lombok.experimental.SuperBuilder class GenericsClash<B, C, C2> { | ||
public static abstract @java.lang.SuppressWarnings("all") class GenericsClashBuilder<B, C, C2, C3 extends GenericsClash<B, C, C2>, B2 extends GenericsClashBuilder<B, C, C2, C3, B2>> { | ||
public GenericsClashBuilder() { | ||
super(); | ||
} | ||
protected abstract @java.lang.SuppressWarnings("all") B2 self(); | ||
public abstract @java.lang.SuppressWarnings("all") C3 build(); | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { | ||
return "SuperBuilderNameClashes.GenericsClash.GenericsClashBuilder()"; | ||
} | ||
} | ||
private static final @java.lang.SuppressWarnings("all") class GenericsClashBuilderImpl<B, C, C2> extends GenericsClashBuilder<B, C, C2, GenericsClash<B, C, C2>, GenericsClashBuilderImpl<B, C, C2>> { | ||
private GenericsClashBuilderImpl() { | ||
super(); | ||
} | ||
protected @java.lang.Override @java.lang.SuppressWarnings("all") GenericsClashBuilderImpl<B, C, C2> self() { | ||
return this; | ||
} | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") GenericsClash<B, C, C2> build() { | ||
return new GenericsClash<B, C, C2>(this); | ||
} | ||
} | ||
protected @java.lang.SuppressWarnings("all") GenericsClash(final GenericsClashBuilder<B, C, C2, ?, ?> b) { | ||
super(); | ||
} | ||
public static @java.lang.SuppressWarnings("all") <B, C, C2>GenericsClashBuilder<B, C, C2, ?, ?> builder() { | ||
return new GenericsClashBuilderImpl<B, C, C2>(); | ||
} | ||
} | ||
public static @lombok.experimental.SuperBuilder class B { | ||
public static abstract @java.lang.SuppressWarnings("all") class BBuilder<C extends B, B2 extends BBuilder<C, B2>> { | ||
public BBuilder() { | ||
super(); | ||
} | ||
protected abstract @java.lang.SuppressWarnings("all") B2 self(); | ||
public abstract @java.lang.SuppressWarnings("all") C build(); | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { | ||
return "SuperBuilderNameClashes.B.BBuilder()"; | ||
} | ||
} | ||
private static final @java.lang.SuppressWarnings("all") class BBuilderImpl extends BBuilder<B, BBuilderImpl> { | ||
private BBuilderImpl() { | ||
super(); | ||
} | ||
protected @java.lang.Override @java.lang.SuppressWarnings("all") BBuilderImpl self() { | ||
return this; | ||
} | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") B build() { | ||
return new B(this); | ||
} | ||
} | ||
protected @java.lang.SuppressWarnings("all") B(final BBuilder<?, ?> b) { | ||
super(); | ||
} | ||
public static @java.lang.SuppressWarnings("all") BBuilder<?, ?> builder() { | ||
return new BBuilderImpl(); | ||
} | ||
} | ||
public static @lombok.experimental.SuperBuilder class C { | ||
public static abstract @java.lang.SuppressWarnings("all") class CBuilder<C2 extends C, B extends CBuilder<C2, B>> { | ||
public CBuilder() { | ||
super(); | ||
} | ||
protected abstract @java.lang.SuppressWarnings("all") B self(); | ||
public abstract @java.lang.SuppressWarnings("all") C2 build(); | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { | ||
return "SuperBuilderNameClashes.C.CBuilder()"; | ||
} | ||
} | ||
private static final @java.lang.SuppressWarnings("all") class CBuilderImpl extends CBuilder<C, CBuilderImpl> { | ||
private CBuilderImpl() { | ||
super(); | ||
} | ||
protected @java.lang.Override @java.lang.SuppressWarnings("all") CBuilderImpl self() { | ||
return this; | ||
} | ||
public @java.lang.Override @java.lang.SuppressWarnings("all") C build() { | ||
return new C(this); | ||
} | ||
} | ||
protected @java.lang.SuppressWarnings("all") C(final CBuilder<?, ?> b) { | ||
super(); | ||
} | ||
public static @java.lang.SuppressWarnings("all") CBuilder<?, ?> builder() { | ||
return new CBuilderImpl(); | ||
} | ||
} | ||
public SuperBuilderNameClashes() { | ||
super(); | ||
} | ||
} |
15 changes: 15 additions & 0 deletions
15
test/transform/resource/before/SuperBuilderNameClashes.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
import java.util.List; | ||
|
||
public class SuperBuilderNameClashes { | ||
@lombok.experimental.SuperBuilder | ||
public static class GenericsClash<B, C, C2> { | ||
} | ||
|
||
@lombok.experimental.SuperBuilder | ||
public static class B { | ||
} | ||
|
||
@lombok.experimental.SuperBuilder | ||
public static class C { | ||
} | ||
} |
2 changes: 2 additions & 0 deletions
2
test/transform/resource/messages-ecj/SuperBuilderNameClashes.java.messages
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
5 WARNING The type parameter B is hiding the type SuperBuilderNameClashes.B | ||
5 WARNING The type parameter C is hiding the type SuperBuilderNameClashes.C |