aboutsummaryrefslogtreecommitdiff
path: root/java/dagger/hilt/processor/internal/root/RootProcessingStep.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/dagger/hilt/processor/internal/root/RootProcessingStep.java')
-rw-r--r--java/dagger/hilt/processor/internal/root/RootProcessingStep.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/java/dagger/hilt/processor/internal/root/RootProcessingStep.java b/java/dagger/hilt/processor/internal/root/RootProcessingStep.java
index f281995d9..d6de432bc 100644
--- a/java/dagger/hilt/processor/internal/root/RootProcessingStep.java
+++ b/java/dagger/hilt/processor/internal/root/RootProcessingStep.java
@@ -57,6 +57,9 @@ import java.util.Set;
public final class RootProcessingStep extends BaseProcessingStep {
private boolean processed;
+ // TODO(b/297889547) do not run preProcess and postProcess if supported annotation isn't present
+ // in the environment.
+ private boolean hasElementsToProcess = false;
private GeneratesRootInputs generatesRootInputs;
public RootProcessingStep(XProcessingEnv env) {
@@ -75,13 +78,16 @@ public final class RootProcessingStep extends BaseProcessingStep {
@Override
public void processEach(ClassName annotation, XElement element) throws Exception {
+ hasElementsToProcess = true;
XTypeElement rootElement = XElements.asTypeElement(element);
// TODO(bcorso): Move this logic into a separate isolating processor to avoid regenerating it
// for unrelated changes in Gradle.
RootType rootType = RootType.of(rootElement);
if (rootType.isTestRoot()) {
- new TestInjectorGenerator(processingEnv(), TestRootMetadata.of(processingEnv(), rootElement))
- .generate();
+ TestRootMetadata testRootMetadata = TestRootMetadata.of(processingEnv(), rootElement);
+ if (testRootMetadata.skipTestInjectionAnnotation().isEmpty()) {
+ new TestInjectorGenerator(processingEnv(), testRootMetadata).generate();
+ }
}
XTypeElement originatingRootElement =
@@ -93,6 +99,9 @@ public final class RootProcessingStep extends BaseProcessingStep {
@Override
protected void postProcess(XProcessingEnv env, XRoundEnv roundEnv) throws Exception {
+ if (!hasElementsToProcess) {
+ return;
+ }
if (!useAggregatingRootProcessor(processingEnv())) {
return;
}