From 8a914b1bf0eaa13178e719431add47b78d4e7277 Mon Sep 17 00:00:00 2001 From: Rawi01 Date: Mon, 31 Jan 2022 22:17:10 +0100 Subject: [fixes #3053] Delay default annotation removal --- .../ConstructorsWithSuperBuilderDefaults.java | 94 ++++++++++++++++++++++ .../SuperBuilderWithDefaultsAndTargetTyping.java | 1 - .../ConstructorsWithSuperBuilderDefaults.java | 70 ++++++++++++++++ .../ConstructorsWithSuperBuilderDefaults.java | 12 +++ 4 files changed, 176 insertions(+), 1 deletion(-) create mode 100644 test/transform/resource/after-delombok/ConstructorsWithSuperBuilderDefaults.java create mode 100644 test/transform/resource/after-ecj/ConstructorsWithSuperBuilderDefaults.java create mode 100644 test/transform/resource/before/ConstructorsWithSuperBuilderDefaults.java (limited to 'test') diff --git a/test/transform/resource/after-delombok/ConstructorsWithSuperBuilderDefaults.java b/test/transform/resource/after-delombok/ConstructorsWithSuperBuilderDefaults.java new file mode 100644 index 00000000..e7811dd5 --- /dev/null +++ b/test/transform/resource/after-delombok/ConstructorsWithSuperBuilderDefaults.java @@ -0,0 +1,94 @@ +class ConstructorsWithSuperBuilderDefaults { + int x; + int y; + + @java.lang.SuppressWarnings("all") + private static int $default$x() { + return 5; + } + + + @java.lang.SuppressWarnings("all") + public static abstract class ConstructorsWithSuperBuilderDefaultsBuilder> { + @java.lang.SuppressWarnings("all") + private boolean x$set; + @java.lang.SuppressWarnings("all") + private int x$value; + @java.lang.SuppressWarnings("all") + private int y; + + @java.lang.SuppressWarnings("all") + protected abstract B self(); + + @java.lang.SuppressWarnings("all") + public abstract C build(); + + /** + * @return {@code this}. + */ + @java.lang.SuppressWarnings("all") + public B x(final int x) { + this.x$value = x; + x$set = true; + return self(); + } + + /** + * @return {@code this}. + */ + @java.lang.SuppressWarnings("all") + public B y(final int y) { + this.y = y; + return self(); + } + + @java.lang.Override + @java.lang.SuppressWarnings("all") + public java.lang.String toString() { + return "ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder(x$value=" + this.x$value + ", y=" + this.y + ")"; + } + } + + + @java.lang.SuppressWarnings("all") + private static final class ConstructorsWithSuperBuilderDefaultsBuilderImpl extends ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder { + @java.lang.SuppressWarnings("all") + private ConstructorsWithSuperBuilderDefaultsBuilderImpl() { + } + + @java.lang.Override + @java.lang.SuppressWarnings("all") + protected ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilderImpl self() { + return this; + } + + @java.lang.Override + @java.lang.SuppressWarnings("all") + public ConstructorsWithSuperBuilderDefaults build() { + return new ConstructorsWithSuperBuilderDefaults(this); + } + } + + @java.lang.SuppressWarnings("all") + protected ConstructorsWithSuperBuilderDefaults(final ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder b) { + if (b.x$set) this.x = b.x$value; + else this.x = ConstructorsWithSuperBuilderDefaults.$default$x(); + this.y = b.y; + } + + @java.lang.SuppressWarnings("all") + public static ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder builder() { + return new ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilderImpl(); + } + + @java.lang.SuppressWarnings("all") + public ConstructorsWithSuperBuilderDefaults() { + this.x = ConstructorsWithSuperBuilderDefaults.$default$x(); + } + + @java.lang.SuppressWarnings("all") + public ConstructorsWithSuperBuilderDefaults(final int x, final int y) { + this.x = x; + this.y = y; + } +} \ No newline at end of file diff --git a/test/transform/resource/after-delombok/SuperBuilderWithDefaultsAndTargetTyping.java b/test/transform/resource/after-delombok/SuperBuilderWithDefaultsAndTargetTyping.java index c3fc4ce8..bc7b3099 100644 --- a/test/transform/resource/after-delombok/SuperBuilderWithDefaultsAndTargetTyping.java +++ b/test/transform/resource/after-delombok/SuperBuilderWithDefaultsAndTargetTyping.java @@ -1,5 +1,4 @@ import java.util.Arrays; -import lombok.Builder; public class SuperBuilderWithDefaultsAndTargetTyping { diff --git a/test/transform/resource/after-ecj/ConstructorsWithSuperBuilderDefaults.java b/test/transform/resource/after-ecj/ConstructorsWithSuperBuilderDefaults.java new file mode 100644 index 00000000..a6c97d3b --- /dev/null +++ b/test/transform/resource/after-ecj/ConstructorsWithSuperBuilderDefaults.java @@ -0,0 +1,70 @@ +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import lombok.Builder; +@NoArgsConstructor @AllArgsConstructor @SuperBuilder class ConstructorsWithSuperBuilderDefaults { + public static abstract @java.lang.SuppressWarnings("all") class ConstructorsWithSuperBuilderDefaultsBuilder> { + private @java.lang.SuppressWarnings("all") int x$value; + private @java.lang.SuppressWarnings("all") boolean x$set; + private @java.lang.SuppressWarnings("all") int y; + public ConstructorsWithSuperBuilderDefaultsBuilder() { + super(); + } + protected abstract @java.lang.SuppressWarnings("all") B self(); + public abstract @java.lang.SuppressWarnings("all") C build(); + /** + * @return {@code this}. + */ + public @java.lang.SuppressWarnings("all") B x(final int x) { + this.x$value = x; + x$set = true; + return self(); + } + /** + * @return {@code this}. + */ + public @java.lang.SuppressWarnings("all") B y(final int y) { + this.y = y; + return self(); + } + public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() { + return (((("ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder(x$value=" + this.x$value) + ", y=") + this.y) + ")"); + } + } + private static final @java.lang.SuppressWarnings("all") class ConstructorsWithSuperBuilderDefaultsBuilderImpl extends ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder { + private ConstructorsWithSuperBuilderDefaultsBuilderImpl() { + super(); + } + protected @java.lang.Override @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilderImpl self() { + return this; + } + public @java.lang.Override @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults build() { + return new ConstructorsWithSuperBuilderDefaults(this); + } + } + @Builder.Default int x; + int y; + private static @java.lang.SuppressWarnings("all") int $default$x() { + return 5; + } + protected @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults(final ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder b) { + super(); + if (b.x$set) + this.x = b.x$value; + else + this.x = ConstructorsWithSuperBuilderDefaults.$default$x(); + this.y = b.y; + } + public static @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilder builder() { + return new ConstructorsWithSuperBuilderDefaults.ConstructorsWithSuperBuilderDefaultsBuilderImpl(); + } + public @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults() { + super(); + this.x = ConstructorsWithSuperBuilderDefaults.$default$x(); + } + public @java.lang.SuppressWarnings("all") ConstructorsWithSuperBuilderDefaults(final int x, final int y) { + super(); + this.x = x; + this.y = y; + } +} \ No newline at end of file diff --git a/test/transform/resource/before/ConstructorsWithSuperBuilderDefaults.java b/test/transform/resource/before/ConstructorsWithSuperBuilderDefaults.java new file mode 100644 index 00000000..a214132a --- /dev/null +++ b/test/transform/resource/before/ConstructorsWithSuperBuilderDefaults.java @@ -0,0 +1,12 @@ +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import lombok.Builder; + +@NoArgsConstructor +@AllArgsConstructor +@SuperBuilder +class ConstructorsWithSuperBuilderDefaults { + @Builder.Default int x = 5; + int y; +} -- cgit