Add RuleContext#getConfiguredTargetAndDataMap and use it in analysis/Util.

PiperOrigin-RevId: 188629293
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
index 8a62dd2..6bab955 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
@@ -375,6 +375,14 @@
     return Multimaps.transformValues(targetMap, ConfiguredTargetAndData::getConfiguredTarget);
   }
 
+  /**
+   * Returns an immutable map from attribute name to list of {@link ConfiguredTargetAndData} objects
+   * for that attribute.
+   */
+  public ListMultimap<String, ConfiguredTargetAndData> getConfiguredTargetAndDataMap() {
+    return targetMap;
+  }
+
   private List<ConfiguredTargetAndData> getConfiguredTargetAndTargetDeps(String key) {
     return targetMap.get(key);
   }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Util.java b/src/main/java/com/google/devtools/build/lib/analysis/Util.java
index 02d05b5..e379ffc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Util.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Util.java
@@ -22,6 +22,7 @@
 import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet;
 import com.google.devtools.build.lib.packages.AttributeMap;
 import com.google.devtools.build.lib.packages.Target;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
 import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import java.util.List;
@@ -83,10 +84,10 @@
     Set<ConfiguredTargetKey> maybeImplicitDeps = CompactHashSet.create();
     Set<ConfiguredTargetKey> explicitDeps = CompactHashSet.create();
     AttributeMap attributes = ruleContext.attributes();
-    ListMultimap<String, ? extends TransitiveInfoCollection> targetMap =
-        ruleContext.getConfiguredTargetMap();
+    ListMultimap<String, ConfiguredTargetAndData> targetMap =
+        ruleContext.getConfiguredTargetAndDataMap();
     for (String attrName : attributes.getAttributeNames()) {
-      List<? extends TransitiveInfoCollection> attrValues = targetMap.get(attrName);
+      List<ConfiguredTargetAndData> attrValues = targetMap.get(attrName);
       if (attrValues != null && !attrValues.isEmpty()) {
         if (attributes.isAttributeValueExplicitlySpecified(attrName)) {
           addLabelsAndConfigs(explicitDeps, attrValues);
@@ -111,8 +112,11 @@
   }
 
   private static void addLabelsAndConfigs(
-      Set<ConfiguredTargetKey> set, List<? extends TransitiveInfoCollection> deps) {
+      Set<ConfiguredTargetKey> set, List<ConfiguredTargetAndData> deps) {
     deps.forEach(
-        target -> set.add(ConfiguredTargetKey.of(target.getLabel(), target.getConfiguration())));
+        target ->
+            set.add(
+                ConfiguredTargetKey.of(
+                    target.getConfiguredTarget().getLabel(), target.getConfiguration())));
   }
 }