From ac86429beff9b44470869eb6c888f1271f6ca5d7 Mon Sep 17 00:00:00 2001 From: Dagger Team Date: Thu, 18 Dec 2025 16:06:21 -0800 Subject: [PATCH] .class declarations should not include annotations RELNOTES=n/a PiperOrigin-RevId: 846451197 --- .../codegen/xprocessing/XCodeBlocks.java | 2 +- .../test.DaggerTestComponent_DEFAULT_MODE | 73 +++++++++++++++++++ .../test.DaggerTestComponent_FAST_INIT_MODE | 73 +++++++++++++++++++ .../test.DaggerTestComponent_KT_DEFAULT_MODE | 73 +++++++++++++++++++ ...test.DaggerTestComponent_KT_FAST_INIT_MODE | 73 +++++++++++++++++++ 5 files changed, 293 insertions(+), 1 deletion(-) create mode 100644 javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_DEFAULT_MODE create mode 100644 javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_FAST_INIT_MODE create mode 100644 javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_DEFAULT_MODE create mode 100644 javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_FAST_INIT_MODE diff --git a/dagger-compiler/main/java/dagger/internal/codegen/xprocessing/XCodeBlocks.java b/dagger-compiler/main/java/dagger/internal/codegen/xprocessing/XCodeBlocks.java index b766a9cb0c0..a9cde6bb47e 100644 --- a/dagger-compiler/main/java/dagger/internal/codegen/xprocessing/XCodeBlocks.java +++ b/dagger-compiler/main/java/dagger/internal/codegen/xprocessing/XCodeBlocks.java @@ -178,7 +178,7 @@ public static boolean isEmpty(XCodeBlock codeBlock) { public static XCodeBlock ofJavaClassLiteral(XTypeName typeName) { XCodeBlock.Builder builder = XCodeBlock.builder(); - toJavaPoet(builder).add("$T.class", toJavaPoet(typeName)); + toJavaPoet(builder).add("$T.class", toJavaPoet(typeName).withoutAnnotations()); toKotlinPoet(builder).add("%T::class.java", toKotlinPoet(typeName)); return builder.build(); } diff --git a/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_DEFAULT_MODE b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_DEFAULT_MODE new file mode 100644 index 00000000000..599b7d95558 --- /dev/null +++ b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_DEFAULT_MODE @@ -0,0 +1,73 @@ +package test; + +import dagger.internal.DaggerGenerated; +import dagger.internal.Preconditions; +import javax.annotation.processing.Generated; +import org.jspecify.annotations.Nullable; + +@DaggerGenerated +@Generated( + value = "dagger.internal.codegen.ComponentProcessor", + comments = "https://dagger.dev" +) +@SuppressWarnings({ + "unchecked", + "rawtypes", + "KotlinInternal", + "KotlinInternalInJava", + "cast", + "deprecation", + "nullness:initialization.field.uninitialized" +}) +final class DaggerTestComponent { + private DaggerTestComponent() { + } + + public static TestComponent.Builder builder() { + return new Builder(); + } + + private static final class Builder implements TestComponent.Builder { + private @Nullable Boolean setBoxedPrimitive; + + private String setUnboxed; + + private @Nullable Boolean setUnboxedPrimitive; + + @Override + public Builder setBoxedPrimitive(Boolean boxedPrimitive) { + this.setBoxedPrimitive = Preconditions.checkNotNull(boxedPrimitive); + return this; + } + + @Override + public Builder setUnboxed(String unboxed) { + this.setUnboxed = Preconditions.checkNotNull(unboxed); + return this; + } + + @Override + public Builder setUnboxedPrimitive(boolean unboxedPrimitive) { + this.setUnboxedPrimitive = Preconditions.checkNotNull(unboxedPrimitive); + return this; + } + + @Override + public TestComponent build() { + Preconditions.checkBuilderRequirement(setBoxedPrimitive, Boolean.class); + Preconditions.checkBuilderRequirement(setUnboxed, String.class); + Preconditions.checkBuilderRequirement(setUnboxedPrimitive, Boolean.class); + return new TestComponentImpl(setBoxedPrimitive, setUnboxed, setUnboxedPrimitive); + } + } + + private static final class TestComponentImpl implements TestComponent { + private final TestComponentImpl testComponentImpl = this; + + TestComponentImpl(Boolean setBoxedPrimitiveParam, String setUnboxedParam, + Boolean setUnboxedPrimitiveParam) { + + + } + } +} \ No newline at end of file diff --git a/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_FAST_INIT_MODE b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_FAST_INIT_MODE new file mode 100644 index 00000000000..9904a1e9a15 --- /dev/null +++ b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_FAST_INIT_MODE @@ -0,0 +1,73 @@ +package test; + +import dagger.internal.DaggerGenerated; +import dagger.internal.Preconditions; +import javax.annotation.processing.Generated; +import org.jspecify.annotations.Nullable; + +@DaggerGenerated +@Generated( + value = "dagger.internal.codegen.ComponentProcessor", + comments = "https://dagger.dev" +) +@SuppressWarnings({ + "unchecked", + "rawtypes", + "KotlinInternal", + "KotlinInternalInJava", + "cast", + "deprecation", + "nullness:initialization.field.uninitialized" +}) +final class DaggerTestComponent { + private DaggerTestComponent() { + } + + public static TestComponent.Builder builder() { + return new Builder(); + } + + private static final class Builder implements TestComponent.Builder { + private @Nullable Boolean setBoxedPrimitive; + + private String setUnboxed; + + private @Nullable Boolean setUnboxedPrimitive; + + @Override + public Builder setBoxedPrimitive(Boolean boxedPrimitive) { + this.setBoxedPrimitive = Preconditions.checkNotNull(boxedPrimitive); + return this; + } + + @Override + public Builder setUnboxed(String unboxed) { + this.setUnboxed = Preconditions.checkNotNull(unboxed); + return this; + } + + @Override + public Builder setUnboxedPrimitive(boolean unboxedPrimitive) { + this.setUnboxedPrimitive = Preconditions.checkNotNull(unboxedPrimitive); + return this; + } + + @Override + public TestComponent build() { + Preconditions.checkBuilderRequirement(setBoxedPrimitive, Boolean.class); + Preconditions.checkBuilderRequirement(setUnboxed, String.class); + Preconditions.checkBuilderRequirement(setUnboxedPrimitive, Boolean.class); + return new TestComponentImpl(setBoxedPrimitive, setUnboxed, setUnboxedPrimitive); + } + } + + private static final class TestComponentImpl implements TestComponent { + private final TestComponentImpl testComponentImpl = this; + + TestComponentImpl(Boolean setBoxedPrimitiveParam, String setUnboxedParam, + Boolean setUnboxedPrimitiveParam) { + + + } + } +} diff --git a/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_DEFAULT_MODE b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_DEFAULT_MODE new file mode 100644 index 00000000000..9904a1e9a15 --- /dev/null +++ b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_DEFAULT_MODE @@ -0,0 +1,73 @@ +package test; + +import dagger.internal.DaggerGenerated; +import dagger.internal.Preconditions; +import javax.annotation.processing.Generated; +import org.jspecify.annotations.Nullable; + +@DaggerGenerated +@Generated( + value = "dagger.internal.codegen.ComponentProcessor", + comments = "https://dagger.dev" +) +@SuppressWarnings({ + "unchecked", + "rawtypes", + "KotlinInternal", + "KotlinInternalInJava", + "cast", + "deprecation", + "nullness:initialization.field.uninitialized" +}) +final class DaggerTestComponent { + private DaggerTestComponent() { + } + + public static TestComponent.Builder builder() { + return new Builder(); + } + + private static final class Builder implements TestComponent.Builder { + private @Nullable Boolean setBoxedPrimitive; + + private String setUnboxed; + + private @Nullable Boolean setUnboxedPrimitive; + + @Override + public Builder setBoxedPrimitive(Boolean boxedPrimitive) { + this.setBoxedPrimitive = Preconditions.checkNotNull(boxedPrimitive); + return this; + } + + @Override + public Builder setUnboxed(String unboxed) { + this.setUnboxed = Preconditions.checkNotNull(unboxed); + return this; + } + + @Override + public Builder setUnboxedPrimitive(boolean unboxedPrimitive) { + this.setUnboxedPrimitive = Preconditions.checkNotNull(unboxedPrimitive); + return this; + } + + @Override + public TestComponent build() { + Preconditions.checkBuilderRequirement(setBoxedPrimitive, Boolean.class); + Preconditions.checkBuilderRequirement(setUnboxed, String.class); + Preconditions.checkBuilderRequirement(setUnboxedPrimitive, Boolean.class); + return new TestComponentImpl(setBoxedPrimitive, setUnboxed, setUnboxedPrimitive); + } + } + + private static final class TestComponentImpl implements TestComponent { + private final TestComponentImpl testComponentImpl = this; + + TestComponentImpl(Boolean setBoxedPrimitiveParam, String setUnboxedParam, + Boolean setUnboxedPrimitiveParam) { + + + } + } +} diff --git a/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_FAST_INIT_MODE b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_FAST_INIT_MODE new file mode 100644 index 00000000000..9904a1e9a15 --- /dev/null +++ b/javatests/dagger/internal/codegen/goldens/ComponentBuilderTest/testNullableAnnotationsInGeneratedCode/test.DaggerTestComponent_KT_FAST_INIT_MODE @@ -0,0 +1,73 @@ +package test; + +import dagger.internal.DaggerGenerated; +import dagger.internal.Preconditions; +import javax.annotation.processing.Generated; +import org.jspecify.annotations.Nullable; + +@DaggerGenerated +@Generated( + value = "dagger.internal.codegen.ComponentProcessor", + comments = "https://dagger.dev" +) +@SuppressWarnings({ + "unchecked", + "rawtypes", + "KotlinInternal", + "KotlinInternalInJava", + "cast", + "deprecation", + "nullness:initialization.field.uninitialized" +}) +final class DaggerTestComponent { + private DaggerTestComponent() { + } + + public static TestComponent.Builder builder() { + return new Builder(); + } + + private static final class Builder implements TestComponent.Builder { + private @Nullable Boolean setBoxedPrimitive; + + private String setUnboxed; + + private @Nullable Boolean setUnboxedPrimitive; + + @Override + public Builder setBoxedPrimitive(Boolean boxedPrimitive) { + this.setBoxedPrimitive = Preconditions.checkNotNull(boxedPrimitive); + return this; + } + + @Override + public Builder setUnboxed(String unboxed) { + this.setUnboxed = Preconditions.checkNotNull(unboxed); + return this; + } + + @Override + public Builder setUnboxedPrimitive(boolean unboxedPrimitive) { + this.setUnboxedPrimitive = Preconditions.checkNotNull(unboxedPrimitive); + return this; + } + + @Override + public TestComponent build() { + Preconditions.checkBuilderRequirement(setBoxedPrimitive, Boolean.class); + Preconditions.checkBuilderRequirement(setUnboxed, String.class); + Preconditions.checkBuilderRequirement(setUnboxedPrimitive, Boolean.class); + return new TestComponentImpl(setBoxedPrimitive, setUnboxed, setUnboxedPrimitive); + } + } + + private static final class TestComponentImpl implements TestComponent { + private final TestComponentImpl testComponentImpl = this; + + TestComponentImpl(Boolean setBoxedPrimitiveParam, String setUnboxedParam, + Boolean setUnboxedPrimitiveParam) { + + + } + } +}