Error out if loading phase error encountered even if we skip analysis. Also change error messages in these cases to not assume there was an execution phase.
--
MOS_MIGRATED_REVID=129723717
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
index e3cf5f6..1afacf9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java
@@ -269,21 +269,6 @@
* Return value for {@link BuildView#update} and {@code BuildTool.prepareToBuild}.
*/
public static final class AnalysisResult {
-
- public static final AnalysisResult EMPTY =
- new AnalysisResult(
- ImmutableList.<ConfiguredTarget>of(),
- ImmutableList.<AspectValue>of(),
- null,
- null,
- null,
- ImmutableList.<Artifact>of(),
- ImmutableList.<ConfiguredTarget>of(),
- ImmutableList.<ConfiguredTarget>of(),
- null,
- ImmutableMap.<PackageIdentifier, Path>of(),
- "");
-
private final ImmutableList<ConfiguredTarget> targetsToBuild;
@Nullable private final ImmutableList<ConfiguredTarget> targetsToTest;
@Nullable private final String error;
@@ -576,13 +561,7 @@
// Tests. This must come last, so that the exclusive tests are scheduled after everything else.
scheduleTestsIfRequested(parallelTests, exclusiveTests, topLevelOptions, allTargetsToTest);
- String error = loadingResult.hasTargetPatternError()
- ? "execution phase successful, but there were errors parsing the target pattern"
- : loadingResult.hasLoadingError() || skyframeAnalysisResult.hasLoadingError()
- ? "execution phase succeeded, but there were loading phase errors"
- : skyframeAnalysisResult.hasAnalysisError()
- ? "execution phase succeeded, but not all targets were analyzed"
- : null;
+ String error = createErrorMessage(loadingResult, skyframeAnalysisResult);
final WalkableGraph graph = skyframeAnalysisResult.getWalkableGraph();
final ActionGraph actionGraph = new ActionGraph() {
@@ -612,6 +591,19 @@
loadingResult.getWorkspaceName());
}
+ @Nullable
+ public static String createErrorMessage(
+ LoadingResult loadingResult, @Nullable SkyframeAnalysisResult skyframeAnalysisResult) {
+ return loadingResult.hasTargetPatternError()
+ ? "command succeeded, but there were errors parsing the target pattern"
+ : loadingResult.hasLoadingError()
+ || (skyframeAnalysisResult != null && skyframeAnalysisResult.hasLoadingError())
+ ? "command succeeded, but there were loading phase errors"
+ : (skyframeAnalysisResult != null && skyframeAnalysisResult.hasAnalysisError())
+ ? "command succeeded, but not all targets were analyzed"
+ : null;
+ }
+
private static NestedSet<Artifact> getBaselineCoverageArtifacts(
Collection<ConfiguredTarget> configuredTargets) {
NestedSetBuilder<Artifact> baselineCoverageArtifacts = NestedSetBuilder.stableOrder();