Add more specific comments/TODOs in the transitive-annotation-app.
The new comments/TODOs specify what future action can/should be taken (if any) for each of the cases currently not supporting the use of unresolvable annotations.
RELNOTES=N/A
PiperOrigin-RevId: 431495297
diff --git a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyBaseComponent.java b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyBaseComponent.java
index d647f54..78221ae 100644
--- a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyBaseComponent.java
+++ b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyBaseComponent.java
@@ -23,29 +23,29 @@
* A class used to test that Dagger won't fail on unresolvable transitive types used in non-dagger
* related elements and annotations.
*/
-// @MyTransitiveAnnotation: Not yet supported
+// TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract class MyBaseComponent {
+ // @MyTransitiveAnnotation cannot be used here.
@MyQualifier
- // @MyTransitiveAnnotation: Not yet supported
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MyComponentModule.UnscopedQualifiedBindsType unscopedQualifiedBindsTypeBase();
- // @MyTransitiveAnnotation: Not yet supported
+ // @MyTransitiveAnnotation cannot be used here.
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MyComponentModule.UnscopedUnqualifiedBindsType unscopedUnqualifiedBindsTypeBase();
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract void injectFooBase(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here)
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class) Foo binding);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract static class Factory {
diff --git a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentDependency.java b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentDependency.java
index bb17021..fbaf588 100644
--- a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentDependency.java
+++ b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentDependency.java
@@ -23,7 +23,7 @@
* A class used to test that Dagger won't fail on unresolvable transitive types used in non-dagger
* related elements and annotations.
*/
-// @MyTransitiveAnnotation: Not yet supported
+// TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public final class MyComponentDependency {
@@ -37,15 +37,15 @@
@MyOtherAnnotation(MyTransitiveType.class)
public MyComponentDependency() {}
+ // @MyTransitiveAnnotation cannot be used here.
@MyQualifier
- // @MyTransitiveAnnotation: Not yet supported
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public MyComponentDependencyBinding qualifiedMyComponentDependencyBinding() {
return qualifiedMyComponentDependencyBinding;
}
- // @MyTransitiveAnnotation: Not yet supported
+ // @MyTransitiveAnnotation cannot be used here.
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public MyComponentDependencyBinding unqualifiedMyComponentDependencyBinding() {
diff --git a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentModule.java b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentModule.java
index 2c7a363..048ed1a 100644
--- a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentModule.java
+++ b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MyComponentModule.java
@@ -106,47 +106,47 @@
@MyOtherAnnotation(MyTransitiveType.class)
@Module
interface MyAbstractModule {
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Binds
@Singleton
@MyQualifier
ScopedQualifiedBindsType scopedQualifiedBindsType(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyQualifier
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
ScopedQualifiedProvidesType scopedQualifiedProvidesType);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Binds
@Singleton
ScopedUnqualifiedBindsType scopedUnqualifiedBindsType(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class)
ScopedUnqualifiedProvidesType scopedUnqualifiedProvidesType);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Binds
@MyQualifier
UnscopedQualifiedBindsType unscopedQualifiedBindsType(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyQualifier
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
UnscopedQualifiedProvidesType unscopedQualifiedProvidesType);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Binds
UnscopedUnqualifiedBindsType unscopedUnqualifiedBindsType(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class)
UnscopedUnqualifiedProvidesType unscopedUnqualifiedProvidesType);
}
diff --git a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithBuilder.java b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithBuilder.java
index 456eb25..1aa04f1 100644
--- a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithBuilder.java
+++ b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithBuilder.java
@@ -28,31 +28,31 @@
* <p>During the compilation of {@code :app}, {@link MyTransitiveAnnotation} will no longer be on
* the classpath. In most cases, Dagger shouldn't care that the annotation isn't on the classpath
*/
-// @MyTransitiveAnnotation: Not yet supported
+// TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@MySubcomponentScope
@Subcomponent(modules = MySubcomponentModule.class)
public abstract class MySubcomponentWithBuilder {
@MyQualifier
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MySubcomponentBinding qualifiedMySubcomponentBinding();
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MySubcomponentBinding unqualifiedMySubcomponentBinding();
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract void injectFoo(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here)
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class) Foo foo);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Subcomponent.Builder
@@ -72,7 +72,7 @@
@MyOtherAnnotation(MyTransitiveType.class)
public abstract Builder qualifiedMySubcomponentBinding(
@MyQualifier
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
MySubcomponentBinding subcomponentBinding);
@@ -82,7 +82,7 @@
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract Builder unqualifiedMySubcomponentBinding(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class)
MySubcomponentBinding subcomponentBinding);
diff --git a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithFactory.java b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithFactory.java
index f3c6f93..baac297 100644
--- a/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithFactory.java
+++ b/javatests/artifacts/dagger/transitive-annotation-app/library1/src/main/java/library1/MySubcomponentWithFactory.java
@@ -28,31 +28,31 @@
* <p>During the compilation of {@code :app}, {@link MyTransitiveAnnotation} will no longer be on
* the classpath. In most cases, Dagger shouldn't care that the annotation isn't on the classpath
*/
-// @MyTransitiveAnnotation: Not yet supported
+// TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@MySubcomponentScope
@Subcomponent(modules = MySubcomponentModule.class)
public abstract class MySubcomponentWithFactory {
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyQualifier
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MySubcomponentBinding qualifiedMySubcomponentBinding();
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract MySubcomponentBinding unqualifiedMySubcomponentBinding();
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
public abstract void injectFoo(
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here)
@MyAnnotation(MyTransitiveType.VALUE) @MyOtherAnnotation(MyTransitiveType.class) Foo foo);
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (We shouldn't need scope/qualifier here).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
@Subcomponent.Factory
@@ -67,12 +67,12 @@
MySubcomponentModule mySubcomponentModule,
@BindsInstance
@MyQualifier
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
MySubcomponentBinding qualifiedSubcomponentBinding,
@BindsInstance
- // @MyTransitiveAnnotation: Not yet supported
+ // TODO(b/219587431): Support @MyTransitiveAnnotation (Requires generating metadata).
@MyAnnotation(MyTransitiveType.VALUE)
@MyOtherAnnotation(MyTransitiveType.class)
MySubcomponentBinding unqualifiedSubcomponentBinding);