diff options
author | 2018-03-10 22:30:33 -0800 | |
---|---|---|
committer | 2018-03-10 22:32:11 -0800 | |
commit | 658662136e65f54f93a0c81c7fb78dd6b46b55a6 (patch) | |
tree | 3cd15c895a3e93065e8f9bccc671f1e6c9df64ec /src/main/java/com/google/devtools/build/lib/analysis | |
parent | 0758d35eedacf5e367fe56a7ae006d3b2ff9c3fb (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.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/Util.java | 14 |
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()))); } } |