Take aliases into consideration when creating a LabelAndConfiguration from a ConfiguredTarget.
--
MOS_MIGRATED_REVID=122729392
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/LabelAndConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/LabelAndConfiguration.java
index 4eb2cd4..0329060 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/LabelAndConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/LabelAndConfiguration.java
@@ -17,6 +17,7 @@
import com.google.common.base.MoreObjects;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.rules.AliasProvider;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.Objects;
@@ -36,10 +37,6 @@
this.configuration = configuration;
}
- public LabelAndConfiguration(ConfiguredTarget rule) {
- this(rule.getTarget().getLabel(), rule.getConfiguration());
- }
-
public Label getLabel() {
return label;
}
@@ -75,6 +72,15 @@
return new LabelAndConfiguration(label, configuration);
}
+ public static LabelAndConfiguration of(ConfiguredTarget configuredTarget) {
+ AliasProvider aliasProvider = configuredTarget.getProvider(AliasProvider.class);
+ Label label = aliasProvider != null
+ ? aliasProvider.getAliasChain().get(0)
+ : configuredTarget.getLabel();
+
+ return new LabelAndConfiguration(label, configuredTarget.getConfiguration());
+ }
+
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/AggregatingTestListener.java b/src/main/java/com/google/devtools/build/lib/runtime/AggregatingTestListener.java
index 94e0a79..c57373c 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/AggregatingTestListener.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/AggregatingTestListener.java
@@ -214,7 +214,7 @@
@AllowConcurrentEvents
public void targetComplete(TargetCompleteEvent event) {
if (event.failed()) {
- targetFailure(new LabelAndConfiguration(event.getTarget()));
+ targetFailure(LabelAndConfiguration.of(event.getTarget()));
}
}
@@ -254,6 +254,6 @@
}
private LabelAndConfiguration asKey(ConfiguredTarget target) {
- return new LabelAndConfiguration(target);
+ return LabelAndConfiguration.of(target);
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
index ccd9e60..fcdcdd1 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TargetCompletionValue.java
@@ -17,8 +17,6 @@
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.LabelAndConfiguration;
-import com.google.devtools.build.lib.cmdline.Label;
-import com.google.devtools.build.lib.rules.AliasProvider;
import com.google.devtools.build.skyframe.SkyKey;
import com.google.devtools.build.skyframe.SkyValue;
@@ -48,12 +46,7 @@
new Function<ConfiguredTarget, SkyKey>() {
@Override
public SkyKey apply(ConfiguredTarget ct) {
- AliasProvider aliasProvider = ct.getProvider(AliasProvider.class);
- Label label = aliasProvider != null
- ? aliasProvider.getAliasChain().get(0)
- : ct.getLabel();
- return SkyKey.create(SkyFunctions.TARGET_COMPLETION,
- LabelAndConfiguration.of(label, ct.getConfiguration()));
+ return SkyKey.create(SkyFunctions.TARGET_COMPLETION, LabelAndConfiguration.of(ct));
}
});
}
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
index 4cb8998..b5321a8 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/TestCompletionValue.java
@@ -44,7 +44,7 @@
public SkyKey apply(ConfiguredTarget ct) {
return SkyKey.create(
SkyFunctions.TEST_COMPLETION,
- new TestCompletionKey(new LabelAndConfiguration(ct), exclusive));
+ new TestCompletionKey(LabelAndConfiguration.of(ct), exclusive));
}
});
}