Allows subclasses of SkyframeExecutor to enable analysis during execution.
PiperOrigin-RevId: 206568465
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
index 60a22fb..3bb767f 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java
@@ -588,8 +588,11 @@
ImmutableMap<Label, ConfigMatchingProvider> configConditions,
@Nullable ToolchainContext toolchainContext)
throws InterruptedException, ActionConflictException {
- Preconditions.checkState(enableAnalysis,
- "Already in execution phase %s %s", target, configuration);
+ Preconditions.checkState(
+ enableAnalysis || skyframeExecutor.allowsAnalysisDuringExecution(),
+ "Already in execution phase %s %s",
+ target,
+ configuration);
Preconditions.checkNotNull(analysisEnvironment);
Preconditions.checkNotNull(target);
Preconditions.checkNotNull(prerequisiteMap);
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
index 80ad0b3..c666c4c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java
@@ -2324,4 +2324,8 @@
modifiedFilesDuringPreviousBuild = 0;
return result;
}
+
+ protected boolean allowsAnalysisDuringExecution() {
+ return false;
+ }
}