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));
           }
         });
   }