diff options
Diffstat (limited to 'java/dagger/hilt/processor/internal/Components.java')
-rw-r--r-- | java/dagger/hilt/processor/internal/Components.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/java/dagger/hilt/processor/internal/Components.java b/java/dagger/hilt/processor/internal/Components.java index 661dd8a9b..9ea7e64e7 100644 --- a/java/dagger/hilt/processor/internal/Components.java +++ b/java/dagger/hilt/processor/internal/Components.java @@ -93,16 +93,19 @@ public final class Components { || Processors.hasAnnotation(element, ClassNames.TEST_INSTALL_IN)); ImmutableSet<TypeElement> components = - ImmutableSet.copyOf( Processors.hasAnnotation(element, ClassNames.INSTALL_IN) ? Processors.getAnnotationClassValues( elements, Processors.getAnnotationMirror(element, ClassNames.INSTALL_IN), - "value") + "value").stream() + .map(component -> mapComponents(elements, component)) + .collect(toImmutableSet()) : Processors.getAnnotationClassValues( elements, Processors.getAnnotationMirror(element, ClassNames.TEST_INSTALL_IN), - "components")); + "components").stream() + .map(component -> mapComponents(elements, component)) + .collect(toImmutableSet()); ImmutableSet<TypeElement> undefinedComponents = components.stream() @@ -118,5 +121,16 @@ public final class Components { return components.stream().map(ClassName::get).collect(toImmutableSet()); } + // Temporary hack while ApplicationComponent is renamed to SingletonComponent + private static TypeElement mapComponents(Elements elements, TypeElement element) { + if (ClassNames.LEGACY_APPLICATION_COMPONENT.equals(ClassName.get(element))) { + TypeElement singletonComponent = + elements.getTypeElement(ClassNames.SINGLETON_COMPONENT.canonicalName()); + Preconditions.checkState(singletonComponent != null); + return singletonComponent; + } + return element; + } + private Components() {} } |