Refactor DependencyResolver a bit.
RELNOTES: None.
PiperOrigin-RevId: 227718701
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
index 330d145..179a00f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java
@@ -42,7 +42,6 @@
import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
import com.google.devtools.build.lib.packages.EnvironmentGroup;
import com.google.devtools.build.lib.packages.InputFile;
-import com.google.devtools.build.lib.packages.NoSuchThingException;
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.PackageGroup;
import com.google.devtools.build.lib.packages.Rule;
@@ -873,16 +872,6 @@
Label label);
/**
- * Hook for the error case where a dependency is missing.
- *
- * @param from the target referencing the missing target
- * @param to the missing target
- * @param e the exception that was thrown, e.g., by {@link #getTargets}
- */
- protected abstract void missingEdgeHook(Target from, Label to, NoSuchThingException e)
- throws InterruptedException;
-
- /**
* Returns the targets for the given labels.
*
* <p>Returns null if any targets are not ready to be returned at this moment because of missing
diff --git a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
index b68f907..1f947e6 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/TargetUtils.java
@@ -80,8 +80,7 @@
* Returns true iff {@code target} is a {@code test_suite} rule.
*/
public static boolean isTestSuiteRule(Target target) {
- return target instanceof Rule &&
- isTestSuiteRuleName(((Rule) target).getRuleClass());
+ return target instanceof Rule && isTestSuiteRuleName(((Rule) target).getRuleClass());
}
/**
@@ -129,8 +128,7 @@
* Wraps the above calls into one generic check safely applicable to any rule.
*/
public static boolean isTestRuleAndRunsLocally(Rule rule) {
- return isTestOrTestSuiteRule(rule) &&
- (isLocalTestRule(rule) || isExclusiveTestRule(rule));
+ return isTestOrTestSuiteRule(rule) && (isLocalTestRule(rule) || isExclusiveTestRule(rule));
}
/**
@@ -270,7 +268,7 @@
return index != -1 ? ruleClass.substring(0, index) : ruleClass;
}
- private static boolean isExplicitDependency(Rule rule, Label label) throws InterruptedException {
+ private static boolean isExplicitDependency(Rule rule, Label label) {
if (rule.getVisibility().getDependencyLabels().contains(label)) {
return true;
}
@@ -322,7 +320,7 @@
* Target} target did not exist, due to {@link NoSuchThingException} e.
*/
public static String formatMissingEdge(
- @Nullable Target target, Label label, NoSuchThingException e) throws InterruptedException {
+ @Nullable Target target, Label label, NoSuchThingException e) {
// instanceof returns false if target is null (which is exploited here)
if (target instanceof Rule) {
Rule rule = (Rule) target;
diff --git a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetEdgeObserver.java b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetEdgeObserver.java
index 9e30d92..bf50ec3 100644
--- a/src/main/java/com/google/devtools/build/lib/pkgcache/TargetEdgeObserver.java
+++ b/src/main/java/com/google/devtools/build/lib/pkgcache/TargetEdgeObserver.java
@@ -45,8 +45,7 @@
* @param to a label reference in the rule, which does not correspond to a valid target.
* @param e the corresponding exception thrown
*/
- void missingEdge(@Nullable Target target, Label to, NoSuchThingException e)
- throws InterruptedException;
+ void missingEdge(@Nullable Target target, Label to, NoSuchThingException e);
/**
* Called when a node is discovered. May be called
diff --git a/src/main/java/com/google/devtools/build/lib/query2/ErrorPrintingTargetEdgeErrorObserver.java b/src/main/java/com/google/devtools/build/lib/query2/ErrorPrintingTargetEdgeErrorObserver.java
index 11b6f79..b129d59 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/ErrorPrintingTargetEdgeErrorObserver.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/ErrorPrintingTargetEdgeErrorObserver.java
@@ -45,8 +45,7 @@
@ThreadSafety.ThreadSafe
@Override
- public void missingEdge(Target target, Label label, NoSuchThingException e)
- throws InterruptedException {
+ public void missingEdge(Target target, Label label, NoSuchThingException e) {
eventHandler.handle(Event.error(TargetUtils.getLocationMaybe(target),
TargetUtils.formatMissingEdge(target, label, e)));
super.missingEdge(target, label, e);
diff --git a/src/main/java/com/google/devtools/build/lib/query2/TargetEdgeErrorObserver.java b/src/main/java/com/google/devtools/build/lib/query2/TargetEdgeErrorObserver.java
index 06c60ce..6704735 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/TargetEdgeErrorObserver.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/TargetEdgeErrorObserver.java
@@ -51,8 +51,7 @@
*/
@ThreadSafety.ThreadSafe
@Override
- public void missingEdge(Target target, Label label, NoSuchThingException e)
- throws InterruptedException {
+ public void missingEdge(Target target, Label label, NoSuchThingException e) {
hasErrors = true;
}
@@ -76,8 +75,8 @@
@Override
public void node(Target node) {
- if (node.getPackage().containsErrors() ||
- ((node instanceof Rule) && ((Rule) node).containsErrors())) {
+ if (node.getPackage().containsErrors()
+ || ((node instanceof Rule) && ((Rule) node).containsErrors())) {
this.hasErrors = true; // Note, this is thread-safe.
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java b/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
index f321dc7..4903b72 100644
--- a/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
+++ b/src/main/java/com/google/devtools/build/lib/query2/TransitionsOutputFormatterCallback.java
@@ -38,7 +38,6 @@
import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.BuildType;
import com.google.devtools.build.lib.packages.ConfiguredAttributeMapper;
-import com.google.devtools.build.lib.packages.NoSuchThingException;
import com.google.devtools.build.lib.packages.RuleTransitionFactory;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
@@ -220,13 +219,6 @@
}
@Override
- protected void missingEdgeHook(Target from, Label to, NoSuchThingException e) {
- eventHandler.handle(
- Event.error(
- "missing dependency from " + from.getLabel() + " to " + to + ": " + e.getMessage()));
- }
-
- @Override
protected Map<Label, Target> getTargets(
Iterable<Label> labels,
Target fromTarget,
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeDependencyResolver.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeDependencyResolver.java
index dabc649..cbde022 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeDependencyResolver.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeDependencyResolver.java
@@ -62,9 +62,7 @@
"label '%s' does not refer to a package group", label)));
}
- @Override
- protected void missingEdgeHook(Target from, Label to, NoSuchThingException e)
- throws InterruptedException {
+ private void missingEdgeHook(Target from, Label to, NoSuchThingException e) {
if (e instanceof NoSuchTargetException) {
NoSuchTargetException nste = (NoSuchTargetException) e;
if (to.equals(nste.getLabel())) {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
index 7215ffe..7863cbb 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveBaseTraversalFunction.java
@@ -84,8 +84,7 @@
EventHandler eventHandler,
TargetAndErrorIfAny targetAndErrorIfAny,
Iterable<Map.Entry<SkyKey, ValueOrException2<NoSuchPackageException, NoSuchTargetException>>>
- depEntries)
- throws InterruptedException;
+ depEntries);
/**
* Returns a {@link SkyValue} based on the target and any errors it has, and the values
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
index 0252dce..dc415df 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TransitiveTargetFunction.java
@@ -126,8 +126,7 @@
EventHandler eventHandler,
TargetAndErrorIfAny targetAndErrorIfAny,
Iterable<Map.Entry<SkyKey, ValueOrException2<NoSuchPackageException, NoSuchTargetException>>>
- depEntries)
- throws InterruptedException {
+ depEntries) {
boolean successfulTransitiveLoading = builder.isSuccessfulTransitiveLoading();
Target target = targetAndErrorIfAny.getTarget();
NestedSetBuilder<Label> transitiveRootCauses = builder.getTransitiveRootCauses();
@@ -303,8 +302,7 @@
}
private static void maybeReportErrorAboutMissingEdge(
- Target target, Label depLabel, NoSuchThingException e, EventHandler eventHandler)
- throws InterruptedException {
+ Target target, Label depLabel, NoSuchThingException e, EventHandler eventHandler) {
if (e instanceof NoSuchTargetException) {
NoSuchTargetException nste = (NoSuchTargetException) e;
if (depLabel.equals(nste.getLabel())) {