aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-10 22:30:33 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-10 22:32:11 -0800
commit658662136e65f54f93a0c81c7fb78dd6b46b55a6 (patch)
tree3cd15c895a3e93065e8f9bccc671f1e6c9df64ec /src/main/java/com/google/devtools/build/lib/analysis
parent0758d35eedacf5e367fe56a7ae006d3b2ff9c3fb (diff)
Add RuleContext#getConfiguredTargetAndDataMap and use it in analysis/Util.
PiperOrigin-RevId: 188629293
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/Util.java14
2 files changed, 17 insertions, 5 deletions
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 8a62dd2d29..6bab955fca 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 @@ public final class RuleContext extends TargetContext
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 02d05b51e0..e379ffcdc9 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.cmdline.Label;
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 @@ public abstract class Util {
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 @@ public abstract class Util {
}
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())));
}
}