diff options
Diffstat (limited to 'src/main/java')
28 files changed, 202 insertions, 187 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AliasProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/AliasProvider.java index e650ec5343..ce3957e1d1 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AliasProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AliasProvider.java @@ -18,7 +18,7 @@ import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; /** * A provider that gives information about the aliases a rule was resolved through. @@ -66,7 +66,7 @@ public final class AliasProvider implements TransitiveInfoProvider { return aliasChain; } - public static String printLabelWithAliasChain(ConfiguredTargetAndTarget target) { + public static String printLabelWithAliasChain(ConfiguredTargetAndData target) { AliasProvider aliasProvider = target.getConfiguredTarget().getProvider(AliasProvider.class); String suffix = aliasProvider == null ? "" diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AspectResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/AspectResolver.java index 79baad0f98..da80785060 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AspectResolver.java @@ -25,7 +25,7 @@ import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.skyframe.AspectFunction; import com.google.devtools.build.lib.skyframe.AspectValue; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skyframe.ConfiguredTargetValue; import com.google.devtools.build.lib.util.OrderedSetMultimap; import com.google.devtools.build.skyframe.SkyFunction; @@ -50,7 +50,7 @@ public final class AspectResolver { @Nullable public static OrderedSetMultimap<Dependency, ConfiguredAspect> resolveAspectDependencies( SkyFunction.Environment env, - Map<SkyKey, ConfiguredTargetAndTarget> configuredTargetMap, + Map<SkyKey, ConfiguredTargetAndData> configuredTargetMap, Iterable<Dependency> deps, @Nullable NestedSetBuilder<Package> transitivePackages) throws AspectFunction.AspectCreationException, InterruptedException { @@ -90,7 +90,7 @@ public final class AspectResolver { } // Validate that aspect is applicable to "bare" configured target. - ConfiguredTargetAndTarget associatedTarget = + ConfiguredTargetAndData associatedTarget = configuredTargetMap.get( ConfiguredTargetValue.key(dep.getLabel(), dep.getConfiguration())); if (!aspectMatchesConfiguredTarget(associatedTarget, aspectValue.getAspect())) { @@ -115,17 +115,17 @@ public final class AspectResolver { * combinations of aspects for a particular configured target, so it would result in a * combinatorial explosion of Skyframe nodes. */ - public static OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> mergeAspects( + public static OrderedSetMultimap<Attribute, ConfiguredTargetAndData> mergeAspects( OrderedSetMultimap<Attribute, Dependency> depValueNames, - Map<SkyKey, ConfiguredTargetAndTarget> depConfiguredTargetMap, + Map<SkyKey, ConfiguredTargetAndData> depConfiguredTargetMap, OrderedSetMultimap<Dependency, ConfiguredAspect> depAspectMap) throws MergedConfiguredTarget.DuplicateException { - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> result = OrderedSetMultimap.create(); + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> result = OrderedSetMultimap.create(); for (Map.Entry<Attribute, Dependency> entry : depValueNames.entries()) { Dependency dep = entry.getValue(); SkyKey depKey = ConfiguredTargetValue.key(dep.getLabel(), dep.getConfiguration()); - ConfiguredTargetAndTarget depConfiguredTarget = depConfiguredTargetMap.get(depKey); + ConfiguredTargetAndData depConfiguredTarget = depConfiguredTargetMap.get(depKey); result.put( entry.getKey(), @@ -165,8 +165,7 @@ public final class AspectResolver { return aspectKey; } - public static boolean aspectMatchesConfiguredTarget( - ConfiguredTargetAndTarget dep, Aspect aspect) { + public static boolean aspectMatchesConfiguredTarget(ConfiguredTargetAndData dep, Aspect aspect) { if (!aspect.getDefinition().applyToFiles() && !(dep.getTarget() instanceof Rule)) { return false; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java index ef8118fec8..8c4c28ddbb 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BuildView.java @@ -81,7 +81,7 @@ import com.google.devtools.build.lib.pkgcache.PackageManager.PackageManagerStati import com.google.devtools.build.lib.skyframe.AspectValue; import com.google.devtools.build.lib.skyframe.AspectValue.AspectKey; import com.google.devtools.build.lib.skyframe.AspectValue.AspectValueKey; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; import com.google.devtools.build.lib.skyframe.CoverageReportValue; import com.google.devtools.build.lib.skyframe.SkyframeAnalysisResult; @@ -967,7 +967,7 @@ public class BuildView { getDirectPrerequisiteDependenciesForTesting( eventHandler, ct, configurations, /*toolchainContext=*/ null) .values())), - ConfiguredTargetAndTarget::getConfiguredTarget); + ConfiguredTargetAndData::getConfiguredTarget); } @VisibleForTesting @@ -1080,7 +1080,7 @@ public class BuildView { return ImmutableMap.copyOf(keys); } - private OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> getPrerequisiteMapForTesting( + private OrderedSetMultimap<Attribute, ConfiguredTargetAndData> getPrerequisiteMapForTesting( final ExtendedEventHandler eventHandler, ConfiguredTarget target, BuildConfigurationCollection configurations, @@ -1091,11 +1091,11 @@ public class BuildView { getDirectPrerequisiteDependenciesForTesting( eventHandler, target, configurations, toolchainContext); - ImmutableMultimap<Dependency, ConfiguredTargetAndTarget> cts = + ImmutableMultimap<Dependency, ConfiguredTargetAndData> cts = skyframeExecutor.getConfiguredTargetMapForTesting( eventHandler, target.getConfiguration(), ImmutableSet.copyOf(depNodeNames.values())); - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> result = OrderedSetMultimap.create(); + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> result = OrderedSetMultimap.create(); for (Map.Entry<Attribute, Dependency> entry : depNodeNames.entries()) { result.putAll(entry.getKey(), cts.get(entry.getValue())); } @@ -1144,7 +1144,7 @@ public class BuildView { } @VisibleForTesting - public ConfiguredTargetAndTarget getConfiguredTargetAndTargetForTesting( + public ConfiguredTargetAndData getConfiguredTargetAndTargetForTesting( ExtendedEventHandler eventHandler, Label label, BuildConfiguration config) { return skyframeExecutor.getConfiguredTargetAndTargetForTesting(eventHandler, label, config); } @@ -1200,7 +1200,7 @@ public class BuildView { ToolchainContext toolchainContext = skyframeExecutor.getToolchainContextForTesting( requiredToolchains, targetConfig, eventHandler); - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap = + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap = getPrerequisiteMapForTesting( eventHandler, configuredTarget, configurations, toolchainContext); toolchainContext.resolveToolchains(prerequisiteMap); @@ -1239,11 +1239,11 @@ public class BuildView { BuildConfigurationCollection configurations) throws EvalException, InvalidConfigurationException, InterruptedException, InconsistentAspectOrderException { - Collection<ConfiguredTargetAndTarget> configuredTargets = + Collection<ConfiguredTargetAndData> configuredTargets = getPrerequisiteMapForTesting( eventHandler, dependentTarget, configurations, /*toolchainContext=*/ null) .values(); - for (ConfiguredTargetAndTarget ct : configuredTargets) { + for (ConfiguredTargetAndData ct : configuredTargets) { if (ct.getTarget().getLabel().equals(desiredTarget)) { return ct.getConfiguredTarget(); } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspectFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspectFactory.java index 16159e3785..18462fb74d 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspectFactory.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspectFactory.java @@ -14,7 +14,7 @@ package com.google.devtools.build.lib.analysis; import com.google.devtools.build.lib.packages.AspectParameters; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; /** * Creates the Skyframe node of an aspect. @@ -23,12 +23,12 @@ public interface ConfiguredAspectFactory { /** * Creates the aspect based on the configured target of the associated rule. * - * @param ctatBase the ConfiguredTargetAndTarget of the associated rule + * @param ctadBase the ConfiguredTargetAndData of the associated rule * @param context the context of the associated configured target plus all the attributes the * aspect itself has defined * @param parameters information from attributes of the rule that have requested this */ ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext context, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext context, AspectParameters parameters) throws InterruptedException; } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java index 2cd14da2f5..c349b80799 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredRuleClassProvider.java @@ -52,7 +52,7 @@ import com.google.devtools.build.lib.packages.RuleClassProvider; import com.google.devtools.build.lib.packages.RuleErrorConsumer; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.Environment.Extension; @@ -93,7 +93,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { */ void validate( RuleContext.Builder contextBuilder, - ConfiguredTargetAndTarget prerequisite, + ConfiguredTargetAndData prerequisite, Attribute attribute); } @@ -103,7 +103,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { @Override public void validate( RuleContext.Builder contextBuilder, - ConfiguredTargetAndTarget prerequisite, + ConfiguredTargetAndData prerequisite, Attribute attribute) { validateDirectPrerequisiteForDeprecation( contextBuilder, contextBuilder.getRule(), prerequisite, contextBuilder.forAspect()); @@ -154,7 +154,7 @@ public class ConfiguredRuleClassProvider implements RuleClassProvider { public static void validateDirectPrerequisiteForDeprecation( RuleErrorConsumer errors, Rule rule, - ConfiguredTargetAndTarget prerequisite, + ConfiguredTargetAndData prerequisite, boolean forAspect) { Target prerequisiteTarget = prerequisite.getTarget(); Label prerequisiteLabel = prerequisiteTarget.getLabel(); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java index f963a22716..9647cb3435 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredTargetFactory.java @@ -66,7 +66,7 @@ import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.packages.Target; import com.google.devtools.build.lib.profiler.memory.CurrentRuleTracker; import com.google.devtools.build.lib.skyframe.BuildConfigurationValue; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skyframe.ConfiguredTargetKey; import com.google.devtools.build.lib.util.OrderedSetMultimap; import com.google.devtools.build.lib.vfs.PathFragment; @@ -100,7 +100,7 @@ public final class ConfiguredTargetFactory { * to the {@code AnalysisEnvironment}. */ private NestedSet<PackageGroupContents> convertVisibility( - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, EventHandler reporter, Target target, BuildConfiguration packageGroupConfiguration) { @@ -148,10 +148,10 @@ public final class ConfiguredTargetFactory { } private TransitiveInfoCollection findPrerequisite( - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, Label label, BuildConfiguration config) { - for (ConfiguredTargetAndTarget prerequisite : prerequisiteMap.get(null)) { + for (ConfiguredTargetAndData prerequisite : prerequisiteMap.get(null)) { if (prerequisite.getTarget().getLabel().equals(label) && (prerequisite.getConfiguredTarget().getConfiguration() == config)) { return prerequisite.getConfiguredTarget(); @@ -231,7 +231,7 @@ public final class ConfiguredTargetFactory { Target target, BuildConfiguration config, BuildConfiguration hostConfig, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, @Nullable ToolchainContext toolchainContext) throws InterruptedException, ActionConflictException { @@ -305,7 +305,7 @@ public final class ConfiguredTargetFactory { Rule rule, BuildConfiguration configuration, BuildConfiguration hostConfiguration, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, @Nullable ToolchainContext toolchainContext) throws InterruptedException, ActionConflictException { @@ -414,11 +414,11 @@ public final class ConfiguredTargetFactory { */ public ConfiguredAspect createAspect( AnalysisEnvironment env, - ConfiguredTargetAndTarget associatedTarget, + ConfiguredTargetAndData associatedTarget, ImmutableList<Aspect> aspectPath, ConfiguredAspectFactory aspectFactory, Aspect aspect, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, @Nullable ToolchainContext toolchainContext, BuildConfiguration aspectConfiguration, 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()) { diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java index cd1fa08b17..4f554840b0 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/TargetContext.java @@ -24,7 +24,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.packages.PackageSpecification.PackageGroupContents; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.List; import java.util.Set; import javax.annotation.Nullable; @@ -48,7 +48,7 @@ public class TargetContext { * exception of visibility (i.e., visibility is represented here, even though it is a rule * attribute in case of a rule). Rule attributes are handled by the {@link RuleContext} subclass. */ - private final List<ConfiguredTargetAndTarget> directPrerequisites; + private final List<ConfiguredTargetAndData> directPrerequisites; private final NestedSet<PackageGroupContents> visibility; @@ -61,7 +61,7 @@ public class TargetContext { AnalysisEnvironment env, Target target, BuildConfiguration configuration, - Set<ConfiguredTargetAndTarget> directPrerequisites, + Set<ConfiguredTargetAndData> directPrerequisites, NestedSet<PackageGroupContents> visibility) { this.env = env; this.target = target; @@ -115,7 +115,7 @@ public class TargetContext { */ public TransitiveInfoCollection maybeFindDirectPrerequisite(Label label, BuildConfiguration config) { - for (ConfiguredTargetAndTarget prerequisite : directPrerequisites) { + for (ConfiguredTargetAndData prerequisite : directPrerequisites) { if (prerequisite.getTarget().getLabel().equals(label) && (Objects.equal(prerequisite.getConfiguredTarget().getConfiguration(), config))) { return prerequisite.getConfiguredTarget(); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java index 490462fdb7..a2e63b9755 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ToolchainContext.java @@ -31,7 +31,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.events.Location; import com.google.devtools.build.lib.packages.Attribute; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; @@ -113,7 +113,7 @@ public class ToolchainContext { } public void resolveToolchains( - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap) { + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap) { if (!this.requiredToolchains.isEmpty()) { this.resolvedToolchainProviders = new ResolvedToolchainProviders(findToolchains(resolvedToolchainLabels, prerequisiteMap)); @@ -164,7 +164,7 @@ public class ToolchainContext { private static ImmutableMap<Label, ToolchainInfo> findToolchains( ResolvedToolchainLabels resolvedToolchainLabels, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap) { + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap) { // Find the prerequisites associated with the $toolchains attribute. Optional<Attribute> toolchainAttribute = prerequisiteMap @@ -178,7 +178,7 @@ public class ToolchainContext { "No toolchains attribute found while loading resolved toolchains"); ImmutableMap.Builder<Label, ToolchainInfo> toolchains = new ImmutableMap.Builder<>(); - for (ConfiguredTargetAndTarget target : prerequisiteMap.get(toolchainAttribute.get())) { + for (ConfiguredTargetAndData target : prerequisiteMap.get(toolchainAttribute.get())) { Label discoveredLabel = target.getTarget().getLabel(); Label toolchainType = resolvedToolchainLabels.getType(discoveredLabel); if (toolchainType != null) { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelPrerequisiteValidator.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelPrerequisiteValidator.java index f6033adb5a..bfb346e421 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelPrerequisiteValidator.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelPrerequisiteValidator.java @@ -24,7 +24,7 @@ import com.google.devtools.build.lib.packages.RawAttributeMapper; import com.google.devtools.build.lib.packages.RequiredProviders; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.syntax.Type; /** Ensures that a target's prerequisites are visible to it and match its testonly status. */ @@ -33,7 +33,7 @@ public class BazelPrerequisiteValidator @Override public void validate( - RuleContext.Builder context, ConfiguredTargetAndTarget prerequisite, Attribute attribute) { + RuleContext.Builder context, ConfiguredTargetAndData prerequisite, Attribute attribute) { validateDirectPrerequisiteVisibility(context, prerequisite, attribute.getName()); validateDirectPrerequisiteForTestOnly(context, prerequisite); ConfiguredRuleClassProvider.DeprecationValidator.validateDirectPrerequisiteForDeprecation( @@ -41,7 +41,7 @@ public class BazelPrerequisiteValidator } private void validateDirectPrerequisiteVisibility( - RuleContext.Builder context, ConfiguredTargetAndTarget prerequisite, String attrName) { + RuleContext.Builder context, ConfiguredTargetAndData prerequisite, String attrName) { Rule rule = context.getRule(); Target prerequisiteTarget = prerequisite.getTarget(); if (!context @@ -100,7 +100,7 @@ public class BazelPrerequisiteValidator } private void validateDirectPrerequisiteForTestOnly( - RuleContext.Builder context, ConfiguredTargetAndTarget prerequisite) { + RuleContext.Builder context, ConfiguredTargetAndData prerequisite) { Rule rule = context.getRule(); if (rule.getRuleClassObject().getAdvertisedProviders().canHaveAnyProvider()) { diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverlinkAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverlinkAspect.java index ff56c613fe..8e569e1f89 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverlinkAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidNeverlinkAspect.java @@ -27,7 +27,7 @@ import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; import com.google.devtools.build.lib.rules.java.JavaCommon; import com.google.devtools.build.lib.rules.java.JavaInfo; import com.google.devtools.build.lib.rules.java.JavaRuntimeJarProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.ArrayList; import java.util.List; @@ -47,7 +47,7 @@ public class AndroidNeverlinkAspect extends NativeAspectClass implements Configu @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) { + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) { if (!JavaCommon.getConstraints(ruleContext).contains("android") && !ruleContext.getRule().getRuleClass().startsWith("android_")) { return new ConfiguredAspect.Builder(this, parameters, ruleContext).build(); @@ -72,7 +72,7 @@ public class AndroidNeverlinkAspect extends NativeAspectClass implements Configu AndroidCommon.collectTransitiveNeverlinkLibraries( ruleContext, deps, - ctatBase + ctadBase .getConfiguredTarget() .getProvider(JavaRuntimeJarProvider.class) .getRuntimeJars()))) diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java index adc6bea3d7..93d1709505 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/DexArchiveAspect.java @@ -64,7 +64,7 @@ import com.google.devtools.build.lib.rules.java.proto.JavaProtoAspectCommon; import com.google.devtools.build.lib.rules.java.proto.JavaProtoLibraryAspectProvider; import com.google.devtools.build.lib.rules.proto.ProtoLangToolchainProvider; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -170,11 +170,11 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters params) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters params) throws InterruptedException { ConfiguredAspect.Builder result = new ConfiguredAspect.Builder(this, params, ruleContext); Function<Artifact, Artifact> desugaredJars = - desugarJarsIfRequested(ctatBase.getConfiguredTarget(), ruleContext, result); + desugarJarsIfRequested(ctadBase.getConfiguredTarget(), ruleContext, result); TriState incrementalAttr = TriState.valueOf(params.getOnlyValueOfAttribute("incremental_dexing")); @@ -193,7 +193,7 @@ public final class DexArchiveAspect extends NativeAspectClass implements Configu new DexArchiveProvider.Builder() .addTransitiveProviders(collectPrerequisites(ruleContext, DexArchiveProvider.class)); Iterable<Artifact> runtimeJars = - getProducedRuntimeJars(ctatBase.getConfiguredTarget(), ruleContext); + getProducedRuntimeJars(ctadBase.getConfiguredTarget(), ruleContext); if (runtimeJars != null) { boolean basenameClash = checkBasenameClash(runtimeJars); Set<Set<String>> aspectDexopts = aspectDexopts(ruleContext); diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java index 6a1ad0813d..acb8bd7aeb 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/proto/CcProtoAspect.java @@ -61,7 +61,7 @@ import com.google.devtools.build.lib.rules.proto.ProtoLangToolchainProvider; import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; import com.google.devtools.build.lib.rules.proto.ProtoSupportDataProvider; import com.google.devtools.build.lib.rules.proto.SupportData; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.vfs.FileSystemUtils; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; @@ -89,11 +89,11 @@ public abstract class CcProtoAspect extends NativeAspectClass implements Configu @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { // Get SupportData, which is provided by the proto_library rule we attach to. SupportData supportData = - checkNotNull(ctatBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) + checkNotNull(ctadBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) .getSupportData(); try { diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java index 6a2417de70..8a4056bd06 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java @@ -55,7 +55,7 @@ import com.google.devtools.build.lib.rules.proto.ProtoLangToolchainProvider; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; import com.google.devtools.build.lib.rules.proto.ProtoSupportDataProvider; import com.google.devtools.build.lib.rules.proto.SupportData; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import javax.annotation.Nullable; /** An Aspect which JavaLiteProtoLibrary injects to build Java Lite protos. */ @@ -87,13 +87,13 @@ public class JavaLiteProtoAspect extends NativeAspectClass implements Configured @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { ConfiguredAspect.Builder aspect = new ConfiguredAspect.Builder(this, parameters, ruleContext); // Get SupportData, which is provided by the proto_library rule we attach to. SupportData supportData = - checkNotNull(ctatBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) + checkNotNull(ctadBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) .getSupportData(); JavaProtoAspectCommon aspectCommon = diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java index 82030e0643..81845ba13f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoAspect.java @@ -54,7 +54,7 @@ import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; import com.google.devtools.build.lib.rules.proto.ProtoSupportDataProvider; import com.google.devtools.build.lib.rules.proto.SupportData; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import javax.annotation.Nullable; /** An Aspect which JavaProtoLibrary injects to build Java SPEED protos. */ @@ -90,7 +90,7 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { ConfiguredAspect.Builder aspect = new ConfiguredAspect.Builder(this, parameters, ruleContext); @@ -100,14 +100,14 @@ public class JavaProtoAspect extends NativeAspectClass implements ConfiguredAspe // Get SupportData, which is provided by the proto_library rule we attach to. SupportData supportData = - checkNotNull(ctatBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) + checkNotNull(ctadBase.getConfiguredTarget().getProvider(ProtoSupportDataProvider.class)) .getSupportData(); JavaProtoAspectCommon aspectCommon = JavaProtoAspectCommon.getSpeedInstance(ruleContext, javaSemantics, rpcSupport); Impl impl = new Impl(ruleContext, supportData, aspectCommon, rpcSupport); if (impl.shouldGenerateCode() - && ActionReuser.reuseExistingActions(ctatBase.getConfiguredTarget(), ruleContext, aspect)) { + && ActionReuser.reuseExistingActions(ctadBase.getConfiguredTarget(), ruleContext, aspect)) { return aspect.build(); } impl.addProviders(aspect); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java index be2a83943d..4150d8ec52 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleBinary.java @@ -48,7 +48,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.objc.AppleDebugOutputsInfo.OutputType; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.objc.MultiArchBinarySupport.DependencySpecificConfiguration; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.Map; import java.util.TreeMap; @@ -144,7 +144,7 @@ public class AppleBinary implements RuleConfiguredTargetFactory { "non_propagated_deps", Mode.SPLIT, ObjcProvider.SKYLARK_CONSTRUCTOR); ImmutableListMultimap<BuildConfiguration, TransitiveInfoCollection> configToDepsCollectionMap = ruleContext.getPrerequisitesByConfiguration("deps", Mode.SPLIT); - ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndTarget> + ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndData> configToCTATDepsCollectionMap = ruleContext.getPrerequisiteCofiguredTargetAndTargetsByConfiguration("deps", Mode.SPLIT); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java index ab1f93e049..98b764baff 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleStaticLibrary.java @@ -38,7 +38,7 @@ import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.cpp.CppHelper; import com.google.devtools.build.lib.rules.objc.ObjcProvider.Key; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -76,7 +76,7 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory { MultiArchSplitTransitionProvider.validateMinimumOs(ruleContext); PlatformType platformType = MultiArchSplitTransitionProvider.getPlatformType(ruleContext); - ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndTarget> + ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndData> configToCTATDepsCollectionMap = ruleContext.getPrerequisiteCofiguredTargetAndTargetsByConfiguration("deps", Mode.SPLIT); ImmutableListMultimap<BuildConfiguration, ObjcProvider> configToObjcAvoidDepsMap = @@ -208,7 +208,7 @@ public class AppleStaticLibrary implements RuleConfiguredTargetFactory { RuleContext ruleContext, BuildConfiguration buildConfiguration, IntermediateArtifacts intermediateArtifacts, - List<ConfiguredTargetAndTarget> propagatedConfigredTargetAndTargetDeps, + List<ConfiguredTargetAndData> propagatedConfigredTargetAndTargetDeps, Optional<ObjcProvider> protosObjcProvider) { CompilationArtifacts compilationArtifacts = new CompilationArtifacts.Builder().build(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java index 06759dcfe5..5a65d0b48e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcAspect.java @@ -72,7 +72,7 @@ import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; import com.google.devtools.build.lib.rules.proto.ProtoSupportDataProvider; import com.google.devtools.build.lib.rules.proto.SupportData; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.List; @@ -225,9 +225,9 @@ public class J2ObjcAspect extends NativeAspectClass implements ConfiguredAspectF @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { - ConfiguredTarget base = ctatBase.getConfiguredTarget(); + ConfiguredTarget base = ctadBase.getConfiguredTarget(); if (isProtoRule(base)) { if (shouldAttachToProtoRule(ruleContext)) { return proto(base, ruleContext, parameters); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java index 372412f4b2..fa1662265d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/MultiArchBinarySupport.java @@ -39,7 +39,7 @@ import com.google.devtools.build.lib.rules.cpp.CcLinkParamsInfo; import com.google.devtools.build.lib.rules.cpp.CcToolchainProvider; import com.google.devtools.build.lib.rules.objc.CompilationSupport.ExtraLinkArgs; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.List; import java.util.Map; import java.util.Set; @@ -211,7 +211,7 @@ public class MultiArchBinarySupport { public ImmutableSet<DependencySpecificConfiguration> getDependencySpecificConfigurations( Map<BuildConfiguration, CcToolchainProvider> childConfigurationsAndToolchains, ImmutableListMultimap<BuildConfiguration, TransitiveInfoCollection> configToDepsCollectionMap, - ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndTarget> + ImmutableListMultimap<BuildConfiguration, ConfiguredTargetAndData> configToCTATDepsCollectionMap, ImmutableListMultimap<BuildConfiguration, ObjcProvider> configurationToNonPropagatedObjcMap, Iterable<TransitiveInfoCollection> dylibProviders) @@ -299,7 +299,7 @@ public class MultiArchBinarySupport { RuleContext ruleContext, BuildConfiguration buildConfiguration, IntermediateArtifacts intermediateArtifacts, - List<ConfiguredTargetAndTarget> propagatedConfiguredTargetAndTargetDeps, + List<ConfiguredTargetAndData> propagatedConfiguredTargetAndDataDeps, List<ObjcProvider> nonPropagatedObjcDeps, Iterable<ObjcProvider> additionalDepProviders) { @@ -307,7 +307,7 @@ public class MultiArchBinarySupport { new ObjcCommon.Builder(ruleContext, buildConfiguration) .setCompilationAttributes( CompilationAttributes.Builder.fromRuleContext(ruleContext).build()) - .addDeps(propagatedConfiguredTargetAndTargetDeps) + .addDeps(propagatedConfiguredTargetAndDataDeps) .addDepObjcProviders(additionalDepProviders) .addNonPropagatedDepObjcProviders(nonPropagatedObjcDeps) .setIntermediateArtifacts(intermediateArtifacts) diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java index fbfa23e121..bb20db497c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCommon.java @@ -72,7 +72,7 @@ import com.google.devtools.build.lib.rules.cpp.CcLinkParams; import com.google.devtools.build.lib.rules.cpp.CcLinkParamsInfo; import com.google.devtools.build.lib.rules.cpp.CppFileTypes; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import com.google.devtools.build.lib.util.FileType; import com.google.devtools.build.lib.util.FileTypeSet; import com.google.devtools.build.lib.vfs.PathFragment; @@ -249,14 +249,14 @@ public final class ObjcCommon { return this; } - Builder addDeps(List<ConfiguredTargetAndTarget> deps) { + Builder addDeps(List<ConfiguredTargetAndData> deps) { ImmutableList.Builder<ObjcProvider> propagatedObjcDeps = ImmutableList.<ObjcProvider>builder(); ImmutableList.Builder<CcCompilationInfo> cppDeps = ImmutableList.<CcCompilationInfo>builder(); ImmutableList.Builder<CcLinkParamsInfo> cppDepLinkParams = ImmutableList.<CcLinkParamsInfo>builder(); - for (ConfiguredTargetAndTarget dep : deps) { + for (ConfiguredTargetAndData dep : deps) { ConfiguredTarget depCT = dep.getConfiguredTarget(); addAnyProviders(propagatedObjcDeps, depCT, ObjcProvider.SKYLARK_CONSTRUCTOR); addAnyProviders(cppDeps, depCT, CcCompilationInfo.PROVIDER); @@ -567,7 +567,7 @@ public final class ObjcCommon { return new ObjcCommon(objcProvider.build(), compilationArtifacts); } - private static boolean isCcLibrary(ConfiguredTargetAndTarget info) { + private static boolean isCcLibrary(ConfiguredTargetAndData info) { try { String targetName = info.getTarget().getTargetKind(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java index 010f2bcca3..279f19ec73 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProtoAspect.java @@ -29,7 +29,7 @@ import com.google.devtools.build.lib.packages.AspectParameters; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.SkylarkNativeAspect; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; /** * Aspect that gathers the proto dependencies of the attached rule target, and propagates the proto @@ -47,7 +47,7 @@ public class ObjcProtoAspect extends SkylarkNativeAspect implements ConfiguredAs @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { ConfiguredAspect.Builder aspectBuilder = new ConfiguredAspect.Builder( this, parameters, ruleContext); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtoAttributes.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtoAttributes.java index 6add80c7df..8552434635 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ProtoAttributes.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ProtoAttributes.java @@ -30,7 +30,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.rules.proto.ProtoSourceFileBlacklist; import com.google.devtools.build.lib.rules.proto.ProtoSourcesProvider; -import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndTarget; +import com.google.devtools.build.lib.skyframe.ConfiguredTargetAndData; import java.util.ArrayList; /** Common rule attributes used by an objc_proto_library. */ @@ -91,7 +91,7 @@ final class ProtoAttributes { return ruleContext.attributes().has(ObjcProtoLibraryRule.PORTABLE_PROTO_FILTERS_ATTR); } - private boolean isObjcProtoLibrary(ConfiguredTargetAndTarget dependency) { + private boolean isObjcProtoLibrary(ConfiguredTargetAndData dependency) { try { String targetName = dependency.getTarget().getTargetKind(); return targetName.equals("objc_proto_library rule"); @@ -247,7 +247,7 @@ final class ProtoAttributes { } private boolean hasObjcProtoLibraryDependencies() { - for (ConfiguredTargetAndTarget dep : + for (ConfiguredTargetAndData dep : ruleContext.getPrerequisiteConfiguredTargetAndTargets("deps", Mode.TARGET)) { if (isObjcProtoLibrary(dep)) { return true; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java index 54a0a370ad..917dfcb9dd 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectFunction.java @@ -260,15 +260,17 @@ public final class AspectFunction implements SkyFunction { ConfiguredTarget associatedTarget = baseConfiguredTargetValue.getConfiguredTarget(); - ConfiguredTargetAndTarget associatedConfiguredTargetAndTarget; + ConfiguredTargetAndData associatedConfiguredTargetAndData; Package targetPkg = ((PackageValue) env.getValue(PackageValue.key(associatedTarget.getLabel().getPackageIdentifier()))) .getPackage(); try { - associatedConfiguredTargetAndTarget = - new ConfiguredTargetAndTarget( - associatedTarget, targetPkg.getTarget(associatedTarget.getLabel().getName())); + associatedConfiguredTargetAndData = + new ConfiguredTargetAndData( + associatedTarget, + targetPkg.getTarget(associatedTarget.getLabel().getName()), + associatedTarget.getConfiguration()); } catch (NoSuchTargetException e) { throw new IllegalStateException("Name already verified", e); } @@ -276,7 +278,7 @@ public final class AspectFunction implements SkyFunction { if (baseConfiguredTargetValue.getConfiguredTarget().getProvider(AliasProvider.class) != null) { return createAliasAspect( env, - associatedConfiguredTargetAndTarget.getTarget(), + associatedConfiguredTargetAndData.getTarget(), aspect, key, baseConfiguredTargetValue.getConfiguredTarget()); @@ -307,14 +309,14 @@ public final class AspectFunction implements SkyFunction { env.getListener() .handle( Event.error( - associatedConfiguredTargetAndTarget.getTarget().getLocation(), e.getMessage())); + associatedConfiguredTargetAndData.getTarget().getLocation(), e.getMessage())); throw new AspectFunctionException( new AspectCreationException(e.getMessage(), associatedTarget.getLabel())); } } - associatedConfiguredTargetAndTarget = - associatedConfiguredTargetAndTarget.fromConfiguredTarget(associatedTarget); + associatedConfiguredTargetAndData = + associatedConfiguredTargetAndData.fromConfiguredTarget(associatedTarget); aspectPathBuilder.add(aspect); SkyframeDependencyResolver resolver = view.createDependencyResolver(env); @@ -329,13 +331,13 @@ public final class AspectFunction implements SkyFunction { // will be present this way. TargetAndConfiguration originalTargetAndAspectConfiguration = new TargetAndConfiguration( - associatedConfiguredTargetAndTarget.getTarget(), aspectConfiguration); + associatedConfiguredTargetAndData.getTarget(), aspectConfiguration); ImmutableList<Aspect> aspectPath = aspectPathBuilder.build(); try { // Get the configuration targets that trigger this rule's configurable attributes. ImmutableMap<Label, ConfigMatchingProvider> configConditions = ConfiguredTargetFunction.getConfigConditions( - associatedConfiguredTargetAndTarget.getTarget(), + associatedConfiguredTargetAndData.getTarget(), env, resolver, originalTargetAndAspectConfiguration, @@ -356,7 +358,7 @@ public final class AspectFunction implements SkyFunction { String.format( "aspect %s applied to %s", aspect.getDescriptor().getDescription(), - associatedConfiguredTargetAndTarget.getTarget().toString()), + associatedConfiguredTargetAndData.getTarget().toString()), requiredToolchains, key.getAspectConfigurationKey()); } catch (ToolchainContextException e) { @@ -367,7 +369,7 @@ public final class AspectFunction implements SkyFunction { return null; } - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> depValueMap; + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> depValueMap; try { depValueMap = ConfiguredTargetFunction.computeDependencies( @@ -398,7 +400,7 @@ public final class AspectFunction implements SkyFunction { aspectPath, aspect, aspectFactory, - associatedConfiguredTargetAndTarget, + associatedConfiguredTargetAndData, aspectConfiguration, configConditions, toolchainContext, @@ -523,11 +525,11 @@ public final class AspectFunction implements SkyFunction { ImmutableList<Aspect> aspectPath, Aspect aspect, ConfiguredAspectFactory aspectFactory, - ConfiguredTargetAndTarget associatedTarget, + ConfiguredTargetAndData associatedTarget, BuildConfiguration aspectConfiguration, ImmutableMap<Label, ConfigMatchingProvider> configConditions, ToolchainContext toolchainContext, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> directDeps, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> directDeps, @Nullable NestedSetBuilder<Package> transitivePackagesForPackageRootResolution) throws AspectFunctionException, InterruptedException { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java index 15480b6a5b..829dac1af1 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndTarget.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetAndData.java @@ -16,48 +16,64 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Preconditions; import com.google.devtools.build.lib.analysis.ConfiguredTarget; +import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.Target; /** - * A container class for a {@link ConfiguredTarget} and {@link Target}. In the future, {@link - * ConfiguredTarget} objects will no longer contain their associated {@link Target}. Consumers that - * need the {@link Target} must therefore have access to one of these objects. + * A container class for a {@link ConfiguredTarget} and associated data, {@link Target} and {@link + * BuildConfiguration}. In the future, {@link ConfiguredTarget} objects will no longer contain their + * associated {@link BuildConfiguration}. Consumers that need the {@link Target} or {@link + * BuildConfiguration} must therefore have access to one of these objects. * - * <p>These objects are intended to be short-lived, never stored in Skyframe, since they pair two - * heavyweight objects, a {@link ConfiguredTarget} and a {@link Target}, which holds a {@link - * Package}. + * <p>These objects are intended to be short-lived, never stored in Skyframe, since they pair three + * heavyweight objects, a {@link ConfiguredTarget}, a {@link Target} (which holds a {@link + * Package}), and a {@link BuildConfiguration}. */ -public class ConfiguredTargetAndTarget { +public class ConfiguredTargetAndData { private final ConfiguredTarget configuredTarget; private final Target target; + private final BuildConfiguration configuration; - ConfiguredTargetAndTarget(ConfiguredTarget configuredTarget, Target target) { + ConfiguredTargetAndData( + ConfiguredTarget configuredTarget, Target target, BuildConfiguration configuration) { this.configuredTarget = configuredTarget; this.target = target; + this.configuration = configuration; Preconditions.checkState( configuredTarget.getLabel().equals(target.getLabel()), - "Unable to construct ConfiguredTargetAndTarget:" + "Unable to construct ConfiguredTargetAndData:" + " ConfiguredTarget's label %s is not equal to Target's label %s", configuredTarget.getLabel(), target.getLabel()); + Preconditions.checkState( + configuration == configuredTarget.getConfiguration(), + "Configurations don't match: %s %s (%s %s)", + configuration, + configuredTarget.getConfiguration(), + configuredTarget, + target); } /** * For use with {@code MergedConfiguredTarget} and similar, where we create a virtual {@link * ConfiguredTarget} corresponding to the same {@link Target}. */ - public ConfiguredTargetAndTarget fromConfiguredTarget(ConfiguredTarget maybeNew) { + public ConfiguredTargetAndData fromConfiguredTarget(ConfiguredTarget maybeNew) { if (configuredTarget.equals(maybeNew)) { return this; } - return new ConfiguredTargetAndTarget(maybeNew, this.target); + return new ConfiguredTargetAndData(maybeNew, this.target, configuration); } public Target getTarget() { return target; } + public BuildConfiguration getConfiguration() { + return configuration; + } + public ConfiguredTarget getConfiguredTarget() { return configuredTarget; } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java index 42b32c98ca..ea70f6ebdc 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/ConfiguredTargetFunction.java @@ -258,7 +258,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { } // Calculate the dependencies of this target. - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> depValueMap = + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> depValueMap = computeDependencies( env, resolver, @@ -382,7 +382,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { * the host configuration as early as possible and pass this reference to all consumers */ @Nullable - static OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> computeDependencies( + static OrderedSetMultimap<Attribute, ConfiguredTargetAndData> computeDependencies( Environment env, SkyframeDependencyResolver resolver, TargetAndConfiguration ctgValue, @@ -432,7 +432,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { } // Resolve configured target dependencies and handle errors. - Map<SkyKey, ConfiguredTargetAndTarget> depValues = + Map<SkyKey, ConfiguredTargetAndData> depValues = resolveConfiguredTargetDependencies( env, depValueNames.values(), @@ -522,7 +522,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { } configValueNames = staticConfigs.build(); - Map<SkyKey, ConfiguredTargetAndTarget> configValues = + Map<SkyKey, ConfiguredTargetAndData> configValues = resolveConfiguredTargetDependencies( env, configValueNames, @@ -555,12 +555,12 @@ public final class ConfiguredTargetFunction implements SkyFunction { /** * Resolves the targets referenced in depValueNames and returns their {@link - * ConfiguredTargetAndTarget} instances. + * ConfiguredTargetAndData} instances. * * <p>Returns null if not all instances are available yet. */ @Nullable - private static Map<SkyKey, ConfiguredTargetAndTarget> resolveConfiguredTargetDependencies( + private static Map<SkyKey, ConfiguredTargetAndData> resolveConfiguredTargetDependencies( Environment env, Collection<Dependency> deps, @Nullable NestedSetBuilder<Package> transitivePackagesForPackageRootResolution, @@ -582,7 +582,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { deps, input -> PackageValue.key(input.getLabel().getPackageIdentifier()))); Map<SkyKey, ValueOrException<ConfiguredValueCreationException>> depValuesOrExceptions = env.getValuesOrThrow(depKeys, ConfiguredValueCreationException.class); - Map<SkyKey, ConfiguredTargetAndTarget> result = Maps.newHashMapWithExpectedSize(deps.size()); + Map<SkyKey, ConfiguredTargetAndData> result = Maps.newHashMapWithExpectedSize(deps.size()); Set<SkyKey> aliasPackagesToFetch = new HashSet<>(); List<Dependency> aliasDepsToRedo = new ArrayList<>(); Map<SkyKey, SkyValue> aliasPackageValues = null; @@ -629,9 +629,10 @@ public final class ConfiguredTargetFunction implements SkyFunction { try { result.put( key, - new ConfiguredTargetAndTarget( + new ConfiguredTargetAndData( depValue.getConfiguredTarget(), - pkgValue.getPackage().getTarget(depLabel.getName()))); + pkgValue.getPackage().getTarget(depLabel.getName()), + depValue.getConfiguredTarget().getConfiguration())); } catch (NoSuchTargetException e) { throw new IllegalStateException("Target already verified for " + dep, e); } @@ -676,7 +677,7 @@ public final class ConfiguredTargetFunction implements SkyFunction { Environment env, Target target, BuildConfiguration configuration, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> depValueMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> depValueMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, @Nullable ToolchainContext toolchainContext, @Nullable NestedSetBuilder<Package> transitivePackagesForPackageRootResolution) diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java index 5d9cde9c17..3cb34515df 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeBuildView.java @@ -504,7 +504,7 @@ public final class SkyframeBuildView { Target target, BuildConfiguration configuration, CachingAnalysisEnvironment analysisEnvironment, - OrderedSetMultimap<Attribute, ConfiguredTargetAndTarget> prerequisiteMap, + OrderedSetMultimap<Attribute, ConfiguredTargetAndData> prerequisiteMap, ImmutableMap<Label, ConfigMatchingProvider> configConditions, @Nullable ToolchainContext toolchainContext) throws InterruptedException, ActionConflictException { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java index 8390a34d9a..8783f43d5f 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeExecutor.java @@ -1284,7 +1284,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { } /** - * Returns the {@link ConfiguredTargetAndTarget}s corresponding to the given keys. + * Returns the {@link ConfiguredTargetAndData}s corresponding to the given keys. * * <p>For use for legacy support and tests calling through {@code BuildView} only. * @@ -1292,7 +1292,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { * returned list. */ @ThreadSafety.ThreadSafe - public ImmutableList<ConfiguredTargetAndTarget> getConfiguredTargetsForTesting( + public ImmutableList<ConfiguredTargetAndData> getConfiguredTargetsForTesting( ExtendedEventHandler eventHandler, BuildConfiguration originalConfig, Iterable<Dependency> keys) { @@ -1300,7 +1300,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { } /** - * Returns a map from {@link Dependency} inputs to the {@link ConfiguredTargetAndTarget}s + * Returns a map from {@link Dependency} inputs to the {@link ConfiguredTargetAndData}s * corresponding to those dependencies. * * <p>For use for legacy support and tests calling through {@code BuildView} only. @@ -1309,7 +1309,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { * returned list. */ @ThreadSafety.ThreadSafe - public ImmutableMultimap<Dependency, ConfiguredTargetAndTarget> getConfiguredTargetMapForTesting( + public ImmutableMultimap<Dependency, ConfiguredTargetAndData> getConfiguredTargetMapForTesting( ExtendedEventHandler eventHandler, BuildConfiguration originalConfig, Iterable<Dependency> keys) { @@ -1347,7 +1347,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { reportCycles(eventHandler, entry.getValue().getCycleInfo(), entry.getKey()); } - ImmutableMultimap.Builder<Dependency, ConfiguredTargetAndTarget> cts = + ImmutableMultimap.Builder<Dependency, ConfiguredTargetAndData> cts = ImmutableMultimap.builder(); // Logic copied from ConfiguredTargetFunction#computeDependencies. @@ -1399,11 +1399,14 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { } try { + ConfiguredTarget mergedTarget = + MergedConfiguredTarget.of(configuredTarget, configuredAspects); cts.put( key, - new ConfiguredTargetAndTarget( - MergedConfiguredTarget.of(configuredTarget, configuredAspects), - packageValue.getPackage().getTarget(configuredTarget.getLabel().getName()))); + new ConfiguredTargetAndData( + mergedTarget, + packageValue.getPackage().getTarget(configuredTarget.getLabel().getName()), + mergedTarget.getConfiguration())); } catch (DuplicateException | NoSuchTargetException e) { throw new IllegalStateException( @@ -1661,21 +1664,19 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { Label label, BuildConfiguration configuration, ConfigurationTransition transition) { - ConfiguredTargetAndTarget configuredTargetAndTarget = + ConfiguredTargetAndData configuredTargetAndData = getConfiguredTargetAndTargetForTesting(eventHandler, label, configuration, transition); - return configuredTargetAndTarget == null - ? null - : configuredTargetAndTarget.getConfiguredTarget(); + return configuredTargetAndData == null ? null : configuredTargetAndData.getConfiguredTarget(); } @VisibleForTesting @Nullable - public ConfiguredTargetAndTarget getConfiguredTargetAndTargetForTesting( + public ConfiguredTargetAndData getConfiguredTargetAndTargetForTesting( ExtendedEventHandler eventHandler, Label label, BuildConfiguration configuration, ConfigurationTransition transition) { - ConfiguredTargetAndTarget configuredTargetAndTarget = + ConfiguredTargetAndData configuredTargetAndData = Iterables.getFirst( getConfiguredTargetsForTesting( eventHandler, @@ -1686,12 +1687,12 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { : Dependency.withTransitionAndAspects( label, transition, AspectCollection.EMPTY))), null); - return configuredTargetAndTarget; + return configuredTargetAndData; } @VisibleForTesting @Nullable - public ConfiguredTargetAndTarget getConfiguredTargetAndTargetForTesting( + public ConfiguredTargetAndData getConfiguredTargetAndTargetForTesting( ExtendedEventHandler eventHandler, Label label, BuildConfiguration configuration) { return getConfiguredTargetAndTargetForTesting( eventHandler, label, configuration, NoTransition.INSTANCE); diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java index 4db1988ea3..a01560e427 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java @@ -50,7 +50,7 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory { @Override public ConfiguredAspect create( - ConfiguredTargetAndTarget ctatBase, RuleContext ruleContext, AspectParameters parameters) + ConfiguredTargetAndData ctadBase, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { SkylarkRuleContext skylarkRuleContext = null; try (Mutability mutability = Mutability.create("aspect")) { @@ -77,7 +77,7 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory { skylarkAspect .getImplementation() .call( - /*args=*/ ImmutableList.of(ctatBase.getConfiguredTarget(), skylarkRuleContext), + /*args=*/ ImmutableList.of(ctadBase.getConfiguredTarget(), skylarkRuleContext), /* kwargs= */ ImmutableMap.of(), /*ast=*/ null, env); @@ -94,7 +94,7 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory { } return createAspect(aspectSkylarkObject, aspectDescriptor, ruleContext); } catch (EvalException e) { - addAspectToStackTrace(ctatBase.getTarget(), e); + addAspectToStackTrace(ctadBase.getTarget(), e); ruleContext.ruleError("\n" + e.print()); return null; } |