aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java88
1 files changed, 42 insertions, 46 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 075a0ab2db..3d0fbf06a2 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
@@ -89,7 +89,7 @@ import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.
import com.google.devtools.build.lib.packages.RuleErrorConsumer;
import com.google.devtools.build.lib.packages.Target;
import com.google.devtools.build.lib.packages.TargetUtils;
-import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget;
+import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.Type;
import com.google.devtools.build.lib.syntax.Type.LabelClass;
@@ -173,7 +173,7 @@ public final class RuleContext extends TargetContext
*/
private final ImmutableList<Aspect> aspects;
private final ImmutableList<AspectDescriptor> aspectDescriptors;
- private final ListMultimap<String, ConfiguredTargetAndTarget> targetMap;
+ private final ListMultimap<String, ConfiguredTargetAndData> targetMap;
private final ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap;
private final ImmutableMap<Label, ConfigMatchingProvider> configConditions;
private final AspectAwareAttributeMapper attributes;
@@ -195,7 +195,7 @@ public final class RuleContext extends TargetContext
private RuleContext(
Builder builder,
AttributeMap attributes,
- ListMultimap<String, ConfiguredTargetAndTarget> targetMap,
+ ListMultimap<String, ConfiguredTargetAndData> targetMap,
ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap,
ImmutableMap<Label, ConfigMatchingProvider> configConditions,
Class<? extends BuildConfiguration.Fragment> universalFragment,
@@ -372,14 +372,14 @@ public final class RuleContext extends TargetContext
* Returns an immutable map from attribute name to list of configured targets for that attribute.
*/
public ListMultimap<String, ? extends TransitiveInfoCollection> getConfiguredTargetMap() {
- return Multimaps.transformValues(targetMap, ConfiguredTargetAndTarget::getConfiguredTarget);
+ return Multimaps.transformValues(targetMap, ConfiguredTargetAndData::getConfiguredTarget);
}
private List<? extends TransitiveInfoCollection> getDeps(String key) {
- return Lists.transform(targetMap.get(key), ConfiguredTargetAndTarget::getConfiguredTarget);
+ return Lists.transform(targetMap.get(key), ConfiguredTargetAndData::getConfiguredTarget);
}
- private List<ConfiguredTargetAndTarget> getConfiguredTargetAndTargetDeps(String key) {
+ private List<ConfiguredTargetAndData> getConfiguredTargetAndTargetDeps(String key) {
return targetMap.get(key);
}
@@ -738,7 +738,7 @@ public final class RuleContext extends TargetContext
ImmutableMap.Builder<String, TransitiveInfoCollection> result = ImmutableMap.builder();
Map<String, Label> dict = attributes().get(attributeName, BuildType.LABEL_DICT_UNARY);
Map<Label, ConfiguredTarget> labelToDep = new HashMap<>();
- for (ConfiguredTargetAndTarget dep : targetMap.get(attributeName)) {
+ for (ConfiguredTargetAndData dep : targetMap.get(attributeName)) {
labelToDep.put(dep.getTarget().getLabel(), dep.getConfiguredTarget());
}
@@ -758,7 +758,7 @@ public final class RuleContext extends TargetContext
Mode mode) {
return Lists.transform(
getPrerequisiteConfiguredTargetAndTargets(attributeName, mode),
- ConfiguredTargetAndTarget::getConfiguredTarget);
+ ConfiguredTargetAndData::getConfiguredTarget);
}
/**
@@ -769,7 +769,7 @@ public final class RuleContext extends TargetContext
getSplitPrerequisites(String attributeName) {
return Maps.transformValues(
getSplitPrerequisiteConfiguredTargetAndTargets(attributeName),
- (ctatList) -> Lists.transform(ctatList, ConfiguredTargetAndTarget::getConfiguredTarget));
+ (ctatList) -> Lists.transform(ctatList, ConfiguredTargetAndData::getConfiguredTarget));
}
/**
@@ -777,7 +777,7 @@ public final class RuleContext extends TargetContext
* attribute. Note that you need to specify the correct mode for the attribute otherwise an
* exception will be raised.
*/
- public List<ConfiguredTargetAndTarget> getPrerequisiteConfiguredTargetAndTargets(
+ public List<ConfiguredTargetAndData> getPrerequisiteConfiguredTargetAndTargets(
String attributeName, Mode mode) {
Attribute attributeDefinition = attributes().getAttributeDefinition(attributeName);
if ((mode == Mode.TARGET) && (attributeDefinition.hasSplitConfigurationTransition())) {
@@ -787,7 +787,7 @@ public final class RuleContext extends TargetContext
// deeply nested and we can't easily inject the behavior we want. However, we should fix all
// such call sites.
checkAttribute(attributeName, Mode.SPLIT);
- Map<Optional<String>, List<ConfiguredTargetAndTarget>> map =
+ Map<Optional<String>, List<ConfiguredTargetAndData>> map =
getSplitPrerequisiteConfiguredTargetAndTargets(attributeName);
return map.isEmpty() ? ImmutableList.of() : map.entrySet().iterator().next().getValue();
}
@@ -796,7 +796,7 @@ public final class RuleContext extends TargetContext
return getConfiguredTargetAndTargetDeps(attributeName);
}
- private Map<Optional<String>, List<ConfiguredTargetAndTarget>>
+ private Map<Optional<String>, List<ConfiguredTargetAndData>>
getSplitPrerequisiteConfiguredTargetAndTargets(String attributeName) {
checkAttribute(attributeName, Mode.SPLIT);
Attribute attributeDefinition = attributes().getAttributeDefinition(attributeName);
@@ -804,7 +804,7 @@ public final class RuleContext extends TargetContext
attributeDefinition.getSplitTransition(
ConfiguredAttributeMapper.of(rule, configConditions));
List<BuildOptions> splitOptions = transition.split(getConfiguration().getOptions());
- List<ConfiguredTargetAndTarget> deps = getConfiguredTargetAndTargetDeps(attributeName);
+ List<ConfiguredTargetAndData> deps = getConfiguredTargetAndTargetDeps(attributeName);
if (splitOptions.isEmpty()) {
// The split transition is not active. Defer the decision on which CPU to use.
@@ -819,9 +819,9 @@ public final class RuleContext extends TargetContext
}
// Use an ImmutableListMultimap.Builder here to preserve ordering.
- ImmutableListMultimap.Builder<Optional<String>, ConfiguredTargetAndTarget> result =
+ ImmutableListMultimap.Builder<Optional<String>, ConfiguredTargetAndData> result =
ImmutableListMultimap.builder();
- for (ConfiguredTargetAndTarget t : deps) {
+ for (ConfiguredTargetAndData t : deps) {
if (t.getConfiguredTarget().getConfiguration() != null) {
result.put(Optional.of(t.getConfiguredTarget().getConfiguration().getCpu()), t);
} else {
@@ -863,16 +863,16 @@ public final class RuleContext extends TargetContext
/**
* For a given attribute, returns all the ConfiguredTargetAndTargets of that attribute. Each
- * ConfiguredTargetAndTarget is keyed by the {@link BuildConfiguration} that created it.
+ * ConfiguredTargetAndData is keyed by the {@link BuildConfiguration} that created it.
*/
- public ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndTarget>
+ public ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndData>
getPrerequisiteCofiguredTargetAndTargetsByConfiguration(String attributeName, Mode mode) {
- List<ConfiguredTargetAndTarget> ctatCollection =
+ List<ConfiguredTargetAndData> ctatCollection =
getPrerequisiteConfiguredTargetAndTargets(attributeName, mode);
- ImmutableListMultimap.Builder<BuildConfiguration, ConfiguredTargetAndTarget> result =
+ ImmutableListMultimap.Builder<BuildConfiguration, ConfiguredTargetAndData> result =
ImmutableListMultimap.builder();
- for (ConfiguredTargetAndTarget ctat : ctatCollection) {
- result.put(ctat.getConfiguredTarget().getConfiguration(), ctat);
+ for (ConfiguredTargetAndData ctad : ctatCollection) {
+ result.put(ctad.getConfiguredTarget().getConfiguration(), ctad);
}
return result.build();
}
@@ -1395,7 +1395,7 @@ public final class RuleContext extends TargetContext
private PatchTransition disableLipoTransition;
private final PrerequisiteValidator prerequisiteValidator;
private final ErrorReporter reporter;
- private OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap;
+ private OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap;
private ImmutableMap<Label, ConfigMatchingProvider> configConditions;
private NestedSet<PackageGroupContents> visibility;
private ImmutableMap<String, Attribute> aspectAttributes;
@@ -1428,7 +1428,7 @@ public final class RuleContext extends TargetContext
Preconditions.checkNotNull(visibility);
AttributeMap attributes = ConfiguredAttributeMapper.of(rule, configConditions);
validateAttributes(attributes);
- ListMultimap<String, ConfiguredTargetAndTarget> targetMap = createTargetMap();
+ ListMultimap<String, ConfiguredTargetAndData> targetMap = createTargetMap();
ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap =
createFilesetEntryMap(rule, configConditions);
return new RuleContext(
@@ -1457,7 +1457,7 @@ public final class RuleContext extends TargetContext
* warning messages and sets the error flag as appropriate.
*/
Builder setPrerequisites(
- OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap) {
+ OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap) {
this.prerequisiteMap = Preconditions.checkNotNull(prerequisiteMap);
return this;
}
@@ -1506,7 +1506,7 @@ public final class RuleContext extends TargetContext
return this;
}
- private boolean validateFilesetEntry(FilesetEntry filesetEntry, ConfiguredTargetAndTarget src) {
+ private boolean validateFilesetEntry(FilesetEntry filesetEntry, ConfiguredTargetAndData src) {
if (src.getConfiguredTarget().getProvider(FilesetProvider.class) != null) {
return true;
}
@@ -1544,8 +1544,8 @@ public final class RuleContext extends TargetContext
continue;
}
String attributeName = attr.getName();
- Map<Label, ConfiguredTargetAndTarget> ctMap = new HashMap<>();
- for (ConfiguredTargetAndTarget prerequisite : prerequisiteMap.get(attr)) {
+ Map<Label, ConfiguredTargetAndData> ctMap = new HashMap<>();
+ for (ConfiguredTargetAndData prerequisite : prerequisiteMap.get(attr)) {
ctMap.put(
AliasProvider.getDependencyLabel(prerequisite.getConfiguredTarget()), prerequisite);
}
@@ -1554,7 +1554,7 @@ public final class RuleContext extends TargetContext
for (FilesetEntry entry : entries) {
if (entry.getFiles() == null) {
Label label = entry.getSrcLabel();
- ConfiguredTargetAndTarget src = ctMap.get(label);
+ ConfiguredTargetAndData src = ctMap.get(label);
if (!validateFilesetEntry(entry, src)) {
continue;
}
@@ -1574,11 +1574,11 @@ public final class RuleContext extends TargetContext
}
/** Determines and returns a map from attribute name to list of configured targets. */
- private ImmutableSortedKeyListMultimap<String, ConfiguredTargetAndTarget> createTargetMap() {
- ImmutableSortedKeyListMultimap.Builder<String, ConfiguredTargetAndTarget> mapBuilder =
+ private ImmutableSortedKeyListMultimap<String, ConfiguredTargetAndData> createTargetMap() {
+ ImmutableSortedKeyListMultimap.Builder<String, ConfiguredTargetAndData> mapBuilder =
ImmutableSortedKeyListMultimap.builder();
- for (Map.Entry<Attribute, Collection<ConfiguredTargetAndTarget>> entry :
+ for (Map.Entry<Attribute, Collection<ConfiguredTargetAndData>> entry :
prerequisiteMap.asMap().entrySet()) {
Attribute attribute = entry.getKey();
if (attribute == null) {
@@ -1592,7 +1592,7 @@ public final class RuleContext extends TargetContext
if (attribute.isSilentRuleClassFilter()) {
Predicate<RuleClass> filter = attribute.getAllowedRuleClassesPredicate();
- for (ConfiguredTargetAndTarget configuredTarget : entry.getValue()) {
+ for (ConfiguredTargetAndData configuredTarget : entry.getValue()) {
Target prerequisiteTarget = configuredTarget.getTarget();
if ((prerequisiteTarget instanceof Rule)
&& filter.apply(((Rule) prerequisiteTarget).getRuleClassObject())) {
@@ -1601,7 +1601,7 @@ public final class RuleContext extends TargetContext
}
}
} else {
- for (ConfiguredTargetAndTarget configuredTarget : entry.getValue()) {
+ for (ConfiguredTargetAndData configuredTarget : entry.getValue()) {
validateDirectPrerequisite(attribute, configuredTarget);
mapBuilder.put(attribute.getName(), configuredTarget);
}
@@ -1664,10 +1664,7 @@ public final class RuleContext extends TargetContext
}
private String badPrerequisiteMessage(
- String targetKind,
- ConfiguredTargetAndTarget prerequisite,
- String reason,
- boolean isWarning) {
+ String targetKind, ConfiguredTargetAndData prerequisite, String reason, boolean isWarning) {
String msgPrefix = targetKind != null ? targetKind + " " : "";
String msgReason = reason != null ? " (" + reason + ")" : "";
if (isWarning) {
@@ -1683,7 +1680,7 @@ public final class RuleContext extends TargetContext
private void reportBadPrerequisite(
Attribute attribute,
String targetKind,
- ConfiguredTargetAndTarget prerequisite,
+ ConfiguredTargetAndData prerequisite,
String reason,
boolean isWarning) {
String message = badPrerequisiteMessage(targetKind, prerequisite, reason, isWarning);
@@ -1695,7 +1692,7 @@ public final class RuleContext extends TargetContext
}
private void validateDirectPrerequisiteType(
- ConfiguredTargetAndTarget prerequisite, Attribute attribute) {
+ ConfiguredTargetAndData prerequisite, Attribute attribute) {
Target prerequisiteTarget = prerequisite.getTarget();
Label prerequisiteLabel = prerequisiteTarget.getLabel();
@@ -1778,7 +1775,7 @@ public final class RuleContext extends TargetContext
}
private void validateDirectPrerequisiteFileTypes(
- ConfiguredTargetAndTarget prerequisite, Attribute attribute) {
+ ConfiguredTargetAndData prerequisite, Attribute attribute) {
if (attribute.isSkipAnalysisTimeFileTypeCheck()) {
return;
}
@@ -1830,8 +1827,7 @@ public final class RuleContext extends TargetContext
* dependency is valid if it is from a rule in allowedRuledClasses, OR if all of the providers
* in requiredProviders are provided by the target.
*/
- private void validateRuleDependency(
- ConfiguredTargetAndTarget prerequisite, Attribute attribute) {
+ private void validateRuleDependency(ConfiguredTargetAndData prerequisite, Attribute attribute) {
Set<String> unfulfilledRequirements = new LinkedHashSet<>();
if (checkRuleDependencyClass(prerequisite, attribute, unfulfilledRequirements)) {
@@ -1855,7 +1851,7 @@ public final class RuleContext extends TargetContext
/** Check if prerequisite should be allowed based on its rule class. */
private boolean checkRuleDependencyClass(
- ConfiguredTargetAndTarget prerequisite,
+ ConfiguredTargetAndData prerequisite,
Attribute attribute,
Set<String> unfulfilledRequirements) {
if (attribute.getAllowedRuleClassesPredicate() != Predicates.<RuleClass>alwaysTrue()) {
@@ -1883,7 +1879,7 @@ public final class RuleContext extends TargetContext
* <p>If yes, also issues said warning.
*/
private boolean checkRuleDependencyClassWarnings(
- ConfiguredTargetAndTarget prerequisite, Attribute attribute) {
+ ConfiguredTargetAndData prerequisite, Attribute attribute) {
if (attribute
.getAllowedRuleClassesWarningPredicate()
.apply(((Rule) prerequisite.getTarget()).getRuleClassObject())) {
@@ -1904,7 +1900,7 @@ public final class RuleContext extends TargetContext
/** Check if prerequisite should be allowed based on required providers on the attribute. */
private boolean checkRuleDependencyMandatoryProviders(
- ConfiguredTargetAndTarget prerequisite,
+ ConfiguredTargetAndData prerequisite,
Attribute attribute,
Set<String> unfulfilledRequirements) {
RequiredProviders requiredProviders = attribute.getRequiredProviders();
@@ -1931,7 +1927,7 @@ public final class RuleContext extends TargetContext
}
private void validateDirectPrerequisite(
- Attribute attribute, ConfiguredTargetAndTarget prerequisite) {
+ Attribute attribute, ConfiguredTargetAndData prerequisite) {
validateDirectPrerequisiteType(prerequisite, attribute);
validateDirectPrerequisiteFileTypes(prerequisite, attribute);
if (attribute.performPrereqValidatorCheck()) {