diff options
Diffstat (limited to 'java/dagger/hilt/processor/internal/root/RootProcessingStep.java')
-rw-r--r-- | java/dagger/hilt/processor/internal/root/RootProcessingStep.java | 13 |
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; } |