diff options
author | Dmitry Lomov <dslomov@google.com> | 2015-11-09 13:09:12 +0000 |
---|---|---|
committer | Damien Martin-Guillerez <dmarting@google.com> | 2015-11-10 10:19:28 +0000 |
commit | b487ac69185fd0080461a3c8795589fe4532f4bb (patch) | |
tree | 4b36b926124ac8dfee576ee05385a51e4b7b41e7 /src | |
parent | c7d277f25f4ebcaed4c08e110f549fc5eef44bec (diff) |
Aspect terminology update.
Aspect => ConfiguredAspect
AspectWithParameters => Aspect
--
MOS_MIGRATED_REVID=107375211
Diffstat (limited to 'src')
31 files changed, 240 insertions, 253 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java index 835fb5e7de..d5ef9e846b 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java @@ -42,12 +42,12 @@ import javax.annotation.Nullable; * <p>Aspects are created alongside configured targets on request from dependents. */ @Immutable -public final class Aspect implements Iterable<TransitiveInfoProvider> { +public final class ConfiguredAspect implements Iterable<TransitiveInfoProvider> { private final String name; private final ImmutableMap<Class<? extends TransitiveInfoProvider>, TransitiveInfoProvider> providers; - private Aspect( + private ConfiguredAspect( String name, ImmutableMap<Class<? extends TransitiveInfoProvider>, TransitiveInfoProvider> providers) { this.name = name; @@ -84,7 +84,7 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> { } /** - * Builder for {@link Aspect}. + * Builder for {@link ConfiguredAspect}. */ public static class Builder { private final Map<Class<? extends TransitiveInfoProvider>, TransitiveInfoProvider> @@ -140,7 +140,7 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> { return this; } - public Aspect build() { + public ConfiguredAspect build() { if (!outputGroupBuilders.isEmpty()) { ImmutableMap.Builder<String, NestedSet<Artifact>> outputGroups = ImmutableMap.builder(); for (Map.Entry<String, NestedSetBuilder<Artifact>> entry : outputGroupBuilders.entrySet()) { @@ -159,7 +159,7 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> { providers.put(SkylarkProviders.class, new SkylarkProviders(skylarkProvidersMap)); } - return new Aspect(name, ImmutableMap.copyOf(providers)); + return new ConfiguredAspect(name, ImmutableMap.copyOf(providers)); } } } 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 667164001b..c983764d65 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 @@ -28,6 +28,6 @@ public interface ConfiguredAspectFactory { * @param parameters information from attributes of the rule that have requested this * aspect */ - Aspect create(ConfiguredTarget base, RuleContext context, AspectParameters parameters) + ConfiguredAspect create(ConfiguredTarget base, RuleContext context, AspectParameters parameters) throws InterruptedException; } 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 b52f5a65e3..e90971403a 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 @@ -14,7 +14,6 @@ package com.google.devtools.build.lib.analysis; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.common.base.Joiner; import com.google.common.base.Preconditions; import com.google.common.collect.ListMultimap; @@ -33,7 +32,7 @@ import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.packages.AspectParameters; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy; import com.google.devtools.build.lib.packages.ConfigurationFragmentPolicy.MissingFragmentPolicy; @@ -56,7 +55,6 @@ import com.google.devtools.build.lib.vfs.PathFragment; import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; -import java.util.Map; import java.util.Set; import javax.annotation.Nullable; @@ -284,36 +282,37 @@ public final class ConfiguredTargetFactory { } /** - * Constructs an {@link Aspect}. Returns null if an error occurs; in that case, + * Constructs an {@link ConfiguredAspect}. Returns null if an error occurs; in that case, * {@code aspectFactory} should call one of the error reporting methods of {@link RuleContext}. */ - public Aspect createAspect( + public ConfiguredAspect createAspect( AnalysisEnvironment env, RuleConfiguredTarget associatedTarget, ConfiguredAspectFactory aspectFactory, - AspectWithParameters aspectWithParameters, + Aspect aspect, ListMultimap<Attribute, ConfiguredTarget> prerequisiteMap, Set<ConfigMatchingProvider> configConditions, BuildConfiguration hostConfiguration) - throws InterruptedException { + throws InterruptedException { RuleContext.Builder builder = new RuleContext.Builder(env, associatedTarget.getTarget(), associatedTarget.getConfiguration(), hostConfiguration, ruleClassProvider.getPrerequisiteValidator()); - RuleContext ruleContext = builder - .setVisibility(convertVisibility( - prerequisiteMap, env.getEventHandler(), associatedTarget.getTarget(), null)) - .setPrerequisites(prerequisiteMap) - .setAspectAttributes(aspectWithParameters.getDefinition().getAttributes()) - .setConfigConditions(configConditions) - .build(); + RuleContext ruleContext = + builder + .setVisibility( + convertVisibility( + prerequisiteMap, env.getEventHandler(), associatedTarget.getTarget(), null)) + .setPrerequisites(prerequisiteMap) + .setAspectAttributes(aspect.getDefinition().getAttributes()) + .setConfigConditions(configConditions) + .build(); if (ruleContext.hasErrors()) { return null; } - return aspectFactory.create(associatedTarget, ruleContext, - aspectWithParameters.getParameters()); + return aspectFactory.create(associatedTarget, ruleContext, aspect.getParameters()); } /** diff --git a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java index fcea1537c2..57a1d92364 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/DependencyResolver.java @@ -25,9 +25,9 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.ImmutableSortedKeyListMultimap; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.AspectClass; import com.google.devtools.build.lib.packages.AspectDefinition; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Attribute.LateBoundDefault; import com.google.devtools.build.lib.packages.Attribute.SplitTransition; @@ -102,15 +102,14 @@ public abstract class DependencyResolver { private final Attribute.Transition transition; private final boolean hasStaticConfiguration; - private final ImmutableSet<AspectWithParameters> aspects; + private final ImmutableSet<Aspect> aspects; /** * Constructs a Dependency with a given configuration (suitable for static configuration * builds). */ - public Dependency(Label label, - @Nullable BuildConfiguration configuration, - ImmutableSet<AspectWithParameters> aspects) { + public Dependency( + Label label, @Nullable BuildConfiguration configuration, ImmutableSet<Aspect> aspects) { this.label = Preconditions.checkNotNull(label); this.configuration = configuration; this.transition = null; @@ -123,14 +122,13 @@ public abstract class DependencyResolver { * builds). */ public Dependency(Label label, @Nullable BuildConfiguration configuration) { - this(label, configuration, ImmutableSet.<AspectWithParameters>of()); + this(label, configuration, ImmutableSet.<Aspect>of()); } /** * Constructs a Dependency with a given transition (suitable for dynamic configuration builds). */ - public Dependency(Label label, Attribute.Transition transition, - ImmutableSet<AspectWithParameters> aspects) { + public Dependency(Label label, Attribute.Transition transition, ImmutableSet<Aspect> aspects) { this.label = Preconditions.checkNotNull(label); this.configuration = null; this.transition = Preconditions.checkNotNull(transition); @@ -167,7 +165,7 @@ public abstract class DependencyResolver { return transition; } - public ImmutableSet<AspectWithParameters> getAspects() { + public ImmutableSet<Aspect> getAspects() { return aspects; } @@ -204,7 +202,7 @@ public abstract class DependencyResolver { * represent those edges. Visibility attributes are only visited if {@code visitVisibility} is * {@code true}. * - * <p>If {@code aspectWithParameters} is null, returns the dependent nodes of the configured + * <p>If {@code aspect} is null, returns the dependent nodes of the configured * target node representing the given target and configuration, otherwise that of the aspect * node accompanying the aforementioned configured target node for the specified aspect. * @@ -220,7 +218,7 @@ public abstract class DependencyResolver { public final ListMultimap<Attribute, Dependency> dependentNodeMap( TargetAndConfiguration node, BuildConfiguration hostConfig, - AspectWithParameters aspectWithParameters, + Aspect aspect, Set<ConfigMatchingProvider> configConditions) throws EvalException, InterruptedException { Target target = node.getTarget(); @@ -242,11 +240,11 @@ public abstract class DependencyResolver { ListMultimap<Attribute, LabelAndConfiguration> labelMap = resolveAttributes( rule, - aspectWithParameters != null ? aspectWithParameters.getDefinition() : null, + aspect != null ? aspect.getDefinition() : null, config, hostConfig, configConditions); - visitRule(rule, aspectWithParameters, labelMap, outgoingEdges); + visitRule(rule, aspect, labelMap, outgoingEdges); } else if (target instanceof PackageGroup) { visitPackageGroup(node, (PackageGroup) target, outgoingEdges.get(null)); } else { @@ -555,20 +553,16 @@ public abstract class DependencyResolver { } } - private ImmutableSet<AspectWithParameters> requiredAspects( - AspectWithParameters aspectWithParameters, - Attribute attribute, - Target target, - Rule originalRule) { + private ImmutableSet<Aspect> requiredAspects( + Aspect aspect, Attribute attribute, Target target, Rule originalRule) { if (!(target instanceof Rule)) { return ImmutableSet.of(); } - Set<AspectWithParameters> aspectCandidates = - extractAspectCandidates(aspectWithParameters, attribute, originalRule); + Set<Aspect> aspectCandidates = extractAspectCandidates(aspect, attribute, originalRule); RuleClass ruleClass = ((Rule) target).getRuleClassObject(); - ImmutableSet.Builder<AspectWithParameters> result = ImmutableSet.builder(); - for (AspectWithParameters candidateClass : aspectCandidates) { + ImmutableSet.Builder<Aspect> result = ImmutableSet.builder(); + for (Aspect candidateClass : aspectCandidates) { if (Sets.difference( candidateClass.getDefinition().getRequiredProviders(), ruleClass.getAdvertisedProviders()) @@ -579,19 +573,18 @@ public abstract class DependencyResolver { return result.build(); } - private static Set<AspectWithParameters> extractAspectCandidates( - AspectWithParameters aspectWithParameters, Attribute attribute, Rule originalRule) { + private static Set<Aspect> extractAspectCandidates( + Aspect aspectWithParameters, Attribute attribute, Rule originalRule) { // The order of this set will be deterministic. This is necessary because this order eventually // influences the order in which aspects are merged into the main configured target, which in // turn influences which aspect takes precedence if two emit the same provider (maybe this // should be an error) - Set<AspectWithParameters> aspectCandidates = new LinkedHashSet<>(); - aspectCandidates.addAll(attribute.getAspectsWithParameters(originalRule)); + Set<Aspect> aspectCandidates = new LinkedHashSet<>(); + aspectCandidates.addAll(attribute.getAspects(originalRule)); if (aspectWithParameters != null) { for (AspectClass aspect : aspectWithParameters.getDefinition().getAttributeAspects().get(attribute.getName())) { - aspectCandidates.add( - new AspectWithParameters(aspect, aspectWithParameters.getParameters())); + aspectCandidates.add(new Aspect(aspect, aspectWithParameters.getParameters())); } } return aspectCandidates; @@ -604,7 +597,7 @@ public abstract class DependencyResolver { private void visitRule( Rule rule, - AspectWithParameters aspectWithParameters, + Aspect aspect, ListMultimap<Attribute, LabelAndConfiguration> labelMap, ListMultimap<Attribute, Dependency> outgoingEdges) { Preconditions.checkNotNull(labelMap); @@ -647,7 +640,7 @@ public abstract class DependencyResolver { } for (Dependency dependency : transitionApplier.getDependencies( - label, requiredAspects(aspectWithParameters, attribute, toTarget, rule))) { + label, requiredAspects(aspect, attribute, toTarget, rule))) { outgoingEdges.put( entry.getKey(), dependency); diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java index 14ef1550af..3ef5414323 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTarget.java @@ -53,7 +53,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { private final ImmutableMap<Class<? extends TransitiveInfoProvider>, Object> providers; private final ImmutableList<Artifact> mandatoryStampFiles; private final Set<ConfigMatchingProvider> configConditions; - private final ImmutableList<Aspect> aspects; + private final ImmutableList<ConfiguredAspect> configuredAspects; RuleConfiguredTarget(RuleContext ruleContext, ImmutableList<Artifact> mandatoryStampFiles, @@ -80,7 +80,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { this.providers = ImmutableMap.copyOf(providerBuilder); this.mandatoryStampFiles = mandatoryStampFiles; this.configConditions = ruleContext.getConfigConditions(); - this.aspects = ImmutableList.of(); + this.configuredAspects = ImmutableList.of(); // If this rule is the run_under target, then check that we have an executable; note that // run_under is only set in the target configuration, and the target must also be analyzed for @@ -108,7 +108,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { * an input or an output file). */ public static ConfiguredTarget mergeAspects( - ConfiguredTarget base, Iterable<Aspect> aspects) { + ConfiguredTarget base, Iterable<ConfiguredAspect> aspects) { if (Iterables.isEmpty(aspects)) { // If there are no aspects, don't bother with creating a proxy object return base; @@ -122,7 +122,7 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { /** * Creates an instance based on a configured target and a set of aspects. */ - private RuleConfiguredTarget(RuleConfiguredTarget base, Iterable<Aspect> aspects) { + private RuleConfiguredTarget(RuleConfiguredTarget base, Iterable<ConfiguredAspect> aspects) { super(base.getTarget(), base.getConfiguration()); Set<Class<? extends TransitiveInfoProvider>> providers = new HashSet<>(); @@ -138,8 +138,8 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { SkylarkProviders.merge(getAllProviders(base, aspects, SkylarkProviders.class)); // Validate that all other providers are only provided once. - for (Aspect aspect : aspects) { - for (TransitiveInfoProvider aspectProvider : aspect) { + for (ConfiguredAspect configuredAspect : aspects) { + for (TransitiveInfoProvider aspectProvider : configuredAspect) { Class<? extends TransitiveInfoProvider> aClass = aspectProvider.getClass(); if (OutputGroupProvider.class.equals(aClass)) { continue; @@ -178,21 +178,19 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { } this.mandatoryStampFiles = base.mandatoryStampFiles; this.configConditions = base.configConditions; - this.aspects = ImmutableList.copyOf(aspects); + this.configuredAspects = ImmutableList.copyOf(aspects); } private static <T extends TransitiveInfoProvider> List<T> getAllProviders( - RuleConfiguredTarget base, - Iterable<Aspect> aspects, - Class<T> providerClass) { + RuleConfiguredTarget base, Iterable<ConfiguredAspect> aspects, Class<T> providerClass) { T baseProvider = base.getProvider(providerClass); List<T> providers = new ArrayList<>(); if (baseProvider != null) { providers.add(baseProvider); } - for (Aspect aspect : aspects) { - final T aspectProvider = aspect.getProvider(providerClass); + for (ConfiguredAspect configuredAspect : aspects) { + final T aspectProvider = configuredAspect.getProvider(providerClass); if (aspectProvider == null) { continue; } @@ -215,8 +213,8 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { // class? Object provider = providers.get(providerClass); if (provider == null) { - for (Aspect aspect : aspects) { - provider = aspect.getProviders().get(providerClass); + for (ConfiguredAspect configuredAspect : configuredAspects) { + provider = configuredAspect.getProviders().get(providerClass); if (provider != null) { break; } @@ -247,8 +245,8 @@ public final class RuleConfiguredTarget extends AbstractConfiguredTarget { public UnmodifiableIterator<TransitiveInfoProvider> iterator() { Map<Class<? extends TransitiveInfoProvider>, TransitiveInfoProvider> allProviders = new LinkedHashMap<>(); - for (int i = aspects.size() - 1; i >= 0; i++) { - for (TransitiveInfoProvider tip : aspects.get(i)) { + for (int i = configuredAspects.size() - 1; i >= 0; i++) { + for (TransitiveInfoProvider tip : configuredAspects.get(i)) { allProviders.put(tip.getClass(), tip); } } diff --git a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java index d7c9a8a807..bb0922b368 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/TopLevelArtifactHelper.java @@ -134,12 +134,11 @@ public final class TopLevelArtifactHelper { public static ArtifactsToBuild getAllArtifactsToBuild( AspectValue aspectValue, TopLevelArtifactContext context) { - Aspect aspect = aspectValue.getAspect(); + ConfiguredAspect configuredAspect = aspectValue.getConfiguredAspect(); return getAllArtifactsToBuild( - aspect.getProvider(OutputGroupProvider.class), - aspect.getProvider(FileProvider.class), - context - ); + configuredAspect.getProvider(OutputGroupProvider.class), + configuredAspect.getProvider(FileProvider.class), + context); } public static ArtifactsToBuild getAllArtifactsToBuild( diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java index a5f2c6bfbd..49f71b605b 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java @@ -43,7 +43,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.packages.AspectWithParameters; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Attribute.Configurator; import com.google.devtools.build.lib.packages.Attribute.SplitTransition; @@ -1466,8 +1466,8 @@ public final class BuildConfiguration { * for each configuration represented by this instance. * TODO(bazel-team): this is a really ugly reverse dependency: factor this away. */ - Iterable<DependencyResolver.Dependency> getDependencies(Label label, - ImmutableSet<AspectWithParameters> aspects); + Iterable<DependencyResolver.Dependency> getDependencies( + Label label, ImmutableSet<Aspect> aspects); } /** @@ -1540,8 +1540,8 @@ public final class BuildConfiguration { } @Override - public Iterable<DependencyResolver.Dependency> getDependencies(Label label, - ImmutableSet<AspectWithParameters> aspects) { + public Iterable<DependencyResolver.Dependency> getDependencies( + Label label, ImmutableSet<Aspect> aspects) { return ImmutableList.of( new DependencyResolver.Dependency(label, currentConfiguration, aspects)); } @@ -1641,8 +1641,8 @@ public final class BuildConfiguration { } @Override - public Iterable<DependencyResolver.Dependency> getDependencies(Label label, - ImmutableSet<AspectWithParameters> aspects) { + public Iterable<DependencyResolver.Dependency> getDependencies( + Label label, ImmutableSet<Aspect> aspects) { return ImmutableList.of(new DependencyResolver.Dependency(label, transition, aspects)); } } @@ -1708,8 +1708,8 @@ public final class BuildConfiguration { @Override - public Iterable<DependencyResolver.Dependency> getDependencies(Label label, - ImmutableSet<AspectWithParameters> aspects) { + public Iterable<DependencyResolver.Dependency> getDependencies( + Label label, ImmutableSet<Aspect> aspects) { ImmutableList.Builder<DependencyResolver.Dependency> builder = ImmutableList.builder(); for (TransitionApplier applier : appliers) { builder.addAll(applier.getDependencies(label, aspects)); diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java index c12fed248d..aaeb7cddac 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/BuildResultPrinter.java @@ -107,7 +107,7 @@ class BuildResultPrinter { for (AspectValue aspect : aspectsToPrint) { Label label = aspect.getLabel(); - String aspectName = aspect.getAspect().getName(); + String aspectName = aspect.getConfiguredAspect().getName(); boolean headerFlag = true; NestedSet<Artifact> importantArtifacts = TopLevelArtifactHelper.getAllArtifactsToBuild(aspect, context).getImportantArtifacts(); diff --git a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java index 197c550c20..5512a1993b 100644 --- a/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspect.java @@ -23,8 +23,8 @@ import com.google.devtools.build.lib.actions.ActionOwner; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.Root; import com.google.devtools.build.lib.analysis.AnalysisUtils; -import com.google.devtools.build.lib.analysis.Aspect; -import com.google.devtools.build.lib.analysis.Aspect.Builder; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect.Builder; import com.google.devtools.build.lib.analysis.ConfiguredNativeAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; @@ -119,9 +119,9 @@ public class AndroidStudioInfoAspect implements ConfiguredNativeAspectFactory { } @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { - Aspect.Builder builder = new Builder(NAME); + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { + ConfiguredAspect.Builder builder = new Builder(NAME); AndroidStudioInfoFilesProvider.Builder providerBuilder = new AndroidStudioInfoFilesProvider.Builder(); diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectWithParameters.java b/src/main/java/com/google/devtools/build/lib/packages/Aspect.java index 6f47f9a18c..017a5f3232 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AspectWithParameters.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Aspect.java @@ -22,21 +22,21 @@ import java.util.Objects; * created with help of aspect factory instances and parameters are used to configure them, so we * have to keep them together. */ -public final class AspectWithParameters { +public final class Aspect { // TODO(bazel-team): class objects are not really hashable or comparable for equality other than // by reference. We should identify the aspect here in a way that does not rely on comparison // by reference so that keys can be serialized and deserialized properly. private final AspectClass aspectClass; private final AspectParameters parameters; - public AspectWithParameters(AspectClass aspect, AspectParameters parameters) { + public Aspect(AspectClass aspect, AspectParameters parameters) { Preconditions.checkNotNull(aspect); Preconditions.checkNotNull(parameters); this.aspectClass = aspect; this.parameters = parameters; } - public AspectWithParameters(AspectClass aspect) { + public Aspect(AspectClass aspect) { this(aspect, AspectParameters.EMPTY); } @@ -59,10 +59,10 @@ public final class AspectWithParameters { if (this == other) { return true; } - if (!(other instanceof AspectWithParameters)) { + if (!(other instanceof Aspect)) { return false; } - AspectWithParameters that = (AspectWithParameters) other; + Aspect that = (Aspect) other; return Objects.equals(this.aspectClass, that.aspectClass) && Objects.equals(this.parameters, that.parameters); } @@ -74,7 +74,7 @@ public final class AspectWithParameters { @Override public String toString() { - return String.format("AspectWithParameters %s(%s)", aspectClass, parameters); + return String.format("Aspect %s(%s)", aspectClass, parameters); } public AspectDefinition getDefinition() { diff --git a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java index 9b5b5b98f7..de9c5c3e81 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java +++ b/src/main/java/com/google/devtools/build/lib/packages/AspectDefinition.java @@ -32,8 +32,7 @@ import java.util.Map; import java.util.Set; /** - * The definition of an aspect (see {@link com.google.devtools.build.lib.analysis.Aspect} for more - * information.) + * The definition of an aspect (see {@link Aspect} for moreinformation.) * * <p>Contains enough information to build up the configured target graph except for the actual way * to build the Skyframe node (that is the territory of @@ -145,7 +144,7 @@ public final class AspectDefinition { } LinkedHashMultimap<Attribute, Label> result = LinkedHashMultimap.create(); - for (AspectWithParameters candidateClass : attribute.getAspectsWithParameters(from)) { + for (Aspect candidateClass : attribute.getAspects(from)) { // Check if target satisfies condition for this aspect (has to provide all required // TransitiveInfoProviders) if (!advertisedProviders.containsAll( diff --git a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java index d11efff42b..9e19e68c66 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Attribute.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Attribute.java @@ -1332,25 +1332,13 @@ public final class Attribute implements Comparable<Attribute> { } /** - * Returns the set of aspects required for dependencies through this attribute. + * Returns the list of aspects required for dependencies through this attribute. */ - public ImmutableSet<AspectClass> getAspects() { - ImmutableSet.Builder<AspectClass> builder = ImmutableSet.builder(); - for (RuleAspect aspect : aspects) { - builder.add(aspect.getAspectFactory()); - } - return builder.build(); - } - - /** - * Returns set of pairs of aspect factories and corresponding aspect parameters. - */ - public ImmutableList<AspectWithParameters> getAspectsWithParameters(Rule rule) { - ImmutableList.Builder<AspectWithParameters> builder = ImmutableList.builder(); + public ImmutableList<Aspect> getAspects(Rule rule) { + ImmutableList.Builder<Aspect> builder = ImmutableList.builder(); for (RuleAspect aspect : aspects) { builder.add( - new AspectWithParameters( - aspect.getAspectFactory(), aspect.getParametersExtractor().apply(rule))); + new Aspect(aspect.getAspectFactory(), aspect.getParametersExtractor().apply(rule))); } return builder.build(); } diff --git a/src/main/java/com/google/devtools/build/lib/packages/Rule.java b/src/main/java/com/google/devtools/build/lib/packages/Rule.java index 07f16509aa..027a943e90 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/Rule.java +++ b/src/main/java/com/google/devtools/build/lib/packages/Rule.java @@ -737,7 +737,7 @@ public final class Rule implements Target { BinaryPredicate<Rule, Attribute> predicate) { LinkedHashMultimap<Attribute, Label> labels = LinkedHashMultimap.create(); for (Attribute attribute : this.getAttributes()) { - for (AspectWithParameters candidateClass : attribute.getAspectsWithParameters(this)) { + for (Aspect candidateClass : attribute.getAspects(this)) { AspectDefinition.addAllAttributesOfAspect( Rule.this, labels, candidateClass.getDefinition(), predicate); } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java index 3f210f114e..c71e372c9e 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/ConservativeAspectResolver.java @@ -18,8 +18,8 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.LinkedHashMultimap; import com.google.common.collect.Multimap; import com.google.devtools.build.lib.cmdline.Label; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.AspectDefinition; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Rule; import com.google.devtools.build.lib.packages.Target; @@ -42,9 +42,9 @@ public class ConservativeAspectResolver implements AspectResolver { Multimap<Attribute, Label> result = LinkedHashMultimap.create(); for (Attribute attribute : rule.getAttributes()) { - for (AspectWithParameters aspectWithParameters : attribute.getAspectsWithParameters(rule)) { + for (Aspect aspect : attribute.getAspects(rule)) { AspectDefinition.addAllAttributesOfAspect( - rule, result, aspectWithParameters.getDefinition(), Rule.ALL_DEPS); + rule, result, aspect.getDefinition(), Rule.ALL_DEPS); } } diff --git a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java index 3067006d21..4da4f3a260 100644 --- a/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java +++ b/src/main/java/com/google/devtools/build/lib/query2/output/PreciseAspectResolver.java @@ -20,8 +20,8 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.LabelSyntaxException; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.events.EventHandler; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.AspectDefinition; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.NoSuchPackageException; import com.google.devtools.build.lib.packages.NoSuchThingException; @@ -95,8 +95,7 @@ public class PreciseAspectResolver implements AspectResolver { new BinaryPredicate<Rule, Attribute>() { @Override public boolean apply(@Nullable Rule rule, Attribute attribute) { - for (AspectWithParameters aspectWithParameters : - attribute.getAspectsWithParameters(rule)) { + for (Aspect aspectWithParameters : attribute.getAspects(rule)) { if (!aspectWithParameters.getDefinition().getAttributes().isEmpty()) { return true; } 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 b2a865b88a..eb856708d9 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 @@ -14,7 +14,7 @@ package com.google.devtools.build.lib.rules.android; import com.google.common.collect.ImmutableList; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredNativeAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; @@ -45,11 +45,11 @@ public class AndroidNeverlinkAspect implements ConfiguredNativeAspectFactory { "deps", "exports", "runtime_deps", "binary_under_test", "$instrumentation_test_runner"); @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { if (!JavaCommon.getConstraints(ruleContext).contains("android") && !ruleContext.getRule().getRuleClass().startsWith("android_")) { - return new Aspect.Builder(NAME).build(); + return new ConfiguredAspect.Builder(NAME).build(); } List<TransitiveInfoCollection> deps = new ArrayList<>(); @@ -65,7 +65,7 @@ public class AndroidNeverlinkAspect implements ConfiguredNativeAspectFactory { deps.addAll(ruleContext.getPrerequisites(attribute, Mode.TARGET)); } - return new Aspect.Builder(NAME) + return new ConfiguredAspect.Builder(NAME) .addProvider( AndroidNeverLinkLibrariesProvider.class, new AndroidNeverLinkLibrariesProvider( diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractJ2ObjcProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractJ2ObjcProtoAspect.java index b792bc2b97..59a54702e9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractJ2ObjcProtoAspect.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AbstractJ2ObjcProtoAspect.java @@ -18,7 +18,7 @@ import static com.google.devtools.build.lib.rules.objc.J2ObjcSource.SourceType; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredNativeAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; @@ -75,10 +75,10 @@ public abstract class AbstractJ2ObjcProtoAspect implements ConfiguredNativeAspec protected abstract boolean checkShouldCreateAspect(RuleContext ruleContext); @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { if (!checkShouldCreateAspect(ruleContext)) { - return new Aspect.Builder(NAME).build(); + return new ConfiguredAspect.Builder(NAME).build(); } ProtoSourcesProvider protoSourcesProvider = base.getProvider(ProtoSourcesProvider.class); @@ -110,7 +110,7 @@ public abstract class AbstractJ2ObjcProtoAspect implements ConfiguredNativeAspec NestedSet<Artifact> j2ObjcTransitiveClassMappingFiles = j2ObjcTransitiveClassMappingFiles( ruleContext, classMappingFiles); - return new Aspect.Builder(NAME) + return new ConfiguredAspect.Builder(NAME) .addProvider(J2ObjcSrcsProvider.class, j2objcSrcsProvider) .addProvider( J2ObjcMappingFileProvider.class, 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 410d6d4bf5..5d28156446 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 @@ -24,7 +24,7 @@ import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.Constants; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.ParameterFile; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredNativeAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; @@ -90,9 +90,9 @@ public class J2ObjcAspect implements ConfiguredNativeAspectFactory { } @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { - Aspect.Builder builder = new Aspect.Builder(NAME); + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { + ConfiguredAspect.Builder builder = new ConfiguredAspect.Builder(NAME); JavaCompilationArgsProvider compilationArgsProvider = base.getProvider(JavaCompilationArgsProvider.class); 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 1206ccee1d..1e301f5e6c 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 @@ -17,8 +17,8 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Preconditions; import com.google.common.collect.ImmutableList; import com.google.common.collect.ListMultimap; -import com.google.devtools.build.lib.analysis.Aspect; import com.google.devtools.build.lib.analysis.CachingAnalysisEnvironment; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget; @@ -28,7 +28,6 @@ import com.google.devtools.build.lib.analysis.config.ConfigMatchingProvider; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.StoredEventHandler; -import com.google.devtools.build.lib.packages.AspectParameters; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.NativeAspectClass; @@ -98,11 +97,11 @@ public final class AspectFunction implements SkyFunction { NestedSetBuilder<Package> transitivePackages = NestedSetBuilder.stableOrder(); AspectKey key = (AspectKey) skyKey.argument(); ConfiguredAspectFactory aspectFactory; - if (key.getAspect() instanceof NativeAspectClass<?>) { + if (key.getAspectClass() instanceof NativeAspectClass<?>) { aspectFactory = - (ConfiguredAspectFactory) ((NativeAspectClass<?>) key.getAspect()).newInstance(); - } else if (key.getAspect() instanceof SkylarkAspectClass) { - SkylarkAspectClass skylarkAspectClass = (SkylarkAspectClass) key.getAspect(); + (ConfiguredAspectFactory) ((NativeAspectClass<?>) key.getAspectClass()).newInstance(); + } else if (key.getAspectClass() instanceof SkylarkAspectClass) { + SkylarkAspectClass skylarkAspectClass = (SkylarkAspectClass) key.getAspectClass(); SkylarkAspect skylarkAspect; try { skylarkAspect = @@ -182,7 +181,7 @@ public final class AspectFunction implements SkyFunction { env, resolver, ctgValue, - key.getAspectWithParameters(), + key.getAspect(), configConditions, ruleClassProvider, view.getHostConfiguration(ctgValue.getConfiguration()), @@ -224,9 +223,14 @@ public final class AspectFunction implements SkyFunction { return null; } - Aspect aspect = view.createAspect( - analysisEnvironment, associatedTarget, aspectFactory, directDeps, configConditions, - key.getAspectWithParameters()); + ConfiguredAspect configuredAspect = + view.createAspect( + analysisEnvironment, + associatedTarget, + aspectFactory, + directDeps, + configConditions, + key.getAspect()); events.replayOn(env.getListener()); if (events.hasErrors()) { @@ -242,13 +246,13 @@ public final class AspectFunction implements SkyFunction { } analysisEnvironment.disable(associatedTarget.getTarget()); - Preconditions.checkNotNull(aspect); + Preconditions.checkNotNull(configuredAspect); return new AspectValue( key, associatedTarget.getLabel(), associatedTarget.getTarget().getLocation(), - aspect, + configuredAspect, ImmutableList.copyOf(analysisEnvironment.getRegisteredActions()), transitivePackages.build()); } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java index 4b0d6785a5..4d5e6c2c2b 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/AspectValue.java @@ -16,15 +16,15 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.base.Objects; import com.google.devtools.build.lib.actions.Action; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.cmdline.PackageIdentifier; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.events.Location; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.AspectClass; import com.google.devtools.build.lib.packages.AspectParameters; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.skyframe.SkyFunctionName; import com.google.devtools.build.skyframe.SkyKey; @@ -32,7 +32,7 @@ import com.google.devtools.build.skyframe.SkyKey; import javax.annotation.Nullable; /** - * An aspectWithParameters in the context of the Skyframe graph. + * An aspect in the context of the Skyframe graph. */ public final class AspectValue extends ActionLookupValue { @@ -50,7 +50,7 @@ public final class AspectValue extends ActionLookupValue { public static final class AspectKey extends AspectValueKey { private final Label label; private final BuildConfiguration configuration; - private final AspectWithParameters aspectWithParameters; + private final Aspect aspect; protected AspectKey( Label label, @@ -59,7 +59,7 @@ public final class AspectValue extends ActionLookupValue { AspectParameters parameters) { this.label = label; this.configuration = configuration; - this.aspectWithParameters = new AspectWithParameters(aspectClass, parameters); + this.aspect = new Aspect(aspectClass, parameters); } @Override @@ -73,21 +73,21 @@ public final class AspectValue extends ActionLookupValue { return label; } - public AspectClass getAspect() { - return aspectWithParameters.getAspectClass(); + public AspectClass getAspectClass() { + return aspect.getAspectClass(); } @Nullable public AspectParameters getParameters() { - return aspectWithParameters.getParameters(); + return aspect.getParameters(); } - public AspectWithParameters getAspectWithParameters() { - return aspectWithParameters; + public Aspect getAspect() { + return aspect; } public String getDescription() { - return String.format("%s of %s", aspectWithParameters.getAspectClass().getName(), getLabel()); + return String.format("%s of %s", aspect.getAspectClass().getName(), getLabel()); } public BuildConfiguration getConfiguration() { @@ -96,7 +96,7 @@ public final class AspectValue extends ActionLookupValue { @Override public int hashCode() { - return Objects.hashCode(label, configuration, aspectWithParameters); + return Objects.hashCode(label, configuration, aspect); } @Override @@ -112,23 +112,23 @@ public final class AspectValue extends ActionLookupValue { AspectKey that = (AspectKey) other; return Objects.equal(label, that.label) && Objects.equal(configuration, that.configuration) - && Objects.equal(aspectWithParameters, that.aspectWithParameters); + && Objects.equal(aspect, that.aspect); } @Override public String toString() { return label + "#" - + aspectWithParameters.getAspectClass().getName() + + aspect.getAspectClass().getName() + " " + (configuration == null ? "null" : configuration.checksum()) + " " - + aspectWithParameters.getParameters(); + + aspect.getParameters(); } } /** - * The key for a skylark aspectWithParameters. + * The key for a skylark aspect. */ public static class SkylarkAspectLoadingKey extends AspectValueKey { @@ -180,22 +180,26 @@ public final class AspectValue extends ActionLookupValue { private final Label label; private final Location location; private final AspectKey key; - private final Aspect aspect; + private final ConfiguredAspect configuredAspect; private final NestedSet<Package> transitivePackages; public AspectValue( - AspectKey key, Label label, Location location, Aspect aspect, Iterable<Action> actions, + AspectKey key, + Label label, + Location location, + ConfiguredAspect configuredAspect, + Iterable<Action> actions, NestedSet<Package> transitivePackages) { super(actions); this.location = location; this.label = label; this.key = key; - this.aspect = aspect; + this.configuredAspect = configuredAspect; this.transitivePackages = transitivePackages; } - public Aspect getAspect() { - return aspect; + public ConfiguredAspect getConfiguredAspect() { + return configuredAspect; } public Label getLabel() { diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java index 96dd2cfe21..f19a572f98 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/CompletionFunction.java @@ -148,7 +148,7 @@ public final class CompletionFunction<TValue extends SkyValue, TResult extends S String.format( "%s, aspect %s: missing input file '%s'", value.getLabel(), - value.getAspect().getName(), + value.getConfiguredAspect().getName(), rootCause)); } @@ -157,7 +157,7 @@ public final class CompletionFunction<TValue extends SkyValue, TResult extends S return new MissingInputFileException( value.getLabel() + ", aspect " - + value.getAspect().getName() + + value.getConfiguredAspect().getName() + missingCount + " input file(s) do not exist", value.getLocation()); 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 d139ea6215..76ac0f8665 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 @@ -26,8 +26,8 @@ import com.google.devtools.build.lib.actions.Action; import com.google.devtools.build.lib.actions.Actions; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; -import com.google.devtools.build.lib.analysis.Aspect; import com.google.devtools.build.lib.analysis.CachingAnalysisEnvironment; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.DependencyResolver.Dependency; import com.google.devtools.build.lib.analysis.LabelAndConfiguration; @@ -44,8 +44,8 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.StoredEventHandler; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.AspectDefinition; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.BuildType; @@ -214,7 +214,7 @@ final class ConfiguredTargetFunction implements SkyFunction { * @param env the Skyframe environment * @param resolver The dependency resolver * @param ctgValue The label and the configuration of the node - * @param aspectWithParameters + * @param aspect * @param configConditions the configuration conditions for evaluating the attributes of the node * @param ruleClassProvider rule class provider for determining the right configuration fragments * to apply to deps @@ -227,7 +227,7 @@ final class ConfiguredTargetFunction implements SkyFunction { Environment env, SkyframeDependencyResolver resolver, TargetAndConfiguration ctgValue, - AspectWithParameters aspectWithParameters, + Aspect aspect, Set<ConfigMatchingProvider> configConditions, RuleClassProvider ruleClassProvider, BuildConfiguration hostConfiguration, @@ -237,8 +237,7 @@ final class ConfiguredTargetFunction implements SkyFunction { ListMultimap<Attribute, Dependency> depValueNames; try { depValueNames = - resolver.dependentNodeMap( - ctgValue, hostConfiguration, aspectWithParameters, configConditions); + resolver.dependentNodeMap(ctgValue, hostConfiguration, aspect, configConditions); } catch (EvalException e) { env.getListener().handle(Event.error(e.getLocation(), e.getMessage())); throw new DependencyEvaluationException(new ConfiguredValueCreationException(e.print())); @@ -263,8 +262,8 @@ final class ConfiguredTargetFunction implements SkyFunction { } // Resolve required aspects. - ListMultimap<SkyKey, Aspect> depAspects = resolveAspectDependencies( - env, depValues, depValueNames.values(), transitivePackages); + ListMultimap<SkyKey, ConfiguredAspect> depAspects = + resolveAspectDependencies(env, depValues, depValueNames.values(), transitivePackages); if (depAspects == null) { return null; } @@ -467,7 +466,7 @@ final class ConfiguredTargetFunction implements SkyFunction { private static ListMultimap<Attribute, ConfiguredTarget> mergeAspects( ListMultimap<Attribute, Dependency> depValueNames, Map<SkyKey, ConfiguredTarget> depConfiguredTargetMap, - ListMultimap<SkyKey, Aspect> depAspectMap) { + ListMultimap<SkyKey, ConfiguredAspect> depAspectMap) { ListMultimap<Attribute, ConfiguredTarget> result = ArrayListMultimap.create(); for (Map.Entry<Attribute, Dependency> entry : depValueNames.entries()) { @@ -483,19 +482,21 @@ final class ConfiguredTargetFunction implements SkyFunction { /** * Given a list of {@link Dependency} objects, returns a multimap from the {@link SkyKey} of the - * dependency to the {@link Aspect} instances that should be merged into it. + * dependency to the {@link ConfiguredAspect} instances that should be merged into it. * * <p>Returns null if the required aspects are not computed yet. */ @Nullable - private static ListMultimap<SkyKey, Aspect> resolveAspectDependencies(Environment env, - Map<SkyKey, ConfiguredTarget> configuredTargetMap, Iterable<Dependency> deps, + private static ListMultimap<SkyKey, ConfiguredAspect> resolveAspectDependencies( + Environment env, + Map<SkyKey, ConfiguredTarget> configuredTargetMap, + Iterable<Dependency> deps, NestedSetBuilder<Package> transitivePackages) throws AspectCreationException { - ListMultimap<SkyKey, Aspect> result = ArrayListMultimap.create(); + ListMultimap<SkyKey, ConfiguredAspect> result = ArrayListMultimap.create(); Set<SkyKey> aspectKeys = new HashSet<>(); for (Dependency dep : deps) { - for (AspectWithParameters depAspect : dep.getAspects()) { + for (Aspect depAspect : dep.getAspects()) { aspectKeys.add(createAspectKey(dep.getLabel(), dep.getConfiguration(), depAspect)); } } @@ -513,7 +514,7 @@ final class ConfiguredTargetFunction implements SkyFunction { continue; } ConfiguredTarget depConfiguredTarget = configuredTargetMap.get(depKey); - for (AspectWithParameters depAspect : dep.getAspects()) { + for (Aspect depAspect : dep.getAspects()) { if (!aspectMatchesConfiguredTarget(depConfiguredTarget, depAspect)) { continue; } @@ -538,23 +539,22 @@ final class ConfiguredTargetFunction implements SkyFunction { // Dependent aspect has either not been computed yet or is in error. return null; } - result.put(depKey, aspectValue.getAspect()); + result.put(depKey, aspectValue.getConfiguredAspect()); transitivePackages.addTransitive(aspectValue.getTransitivePackages()); } } return result; } - public static SkyKey createAspectKey(Label label, BuildConfiguration buildConfiguration, - AspectWithParameters depAspect) { + public static SkyKey createAspectKey( + Label label, BuildConfiguration buildConfiguration, Aspect depAspect) { return AspectValue.key(label, buildConfiguration, depAspect.getAspectClass(), depAspect.getParameters()); } - private static boolean aspectMatchesConfiguredTarget( - ConfiguredTarget dep, AspectWithParameters aspectClass) { + private static boolean aspectMatchesConfiguredTarget(ConfiguredTarget dep, Aspect aspectClass) { AspectDefinition aspectDefinition = aspectClass.getDefinition(); for (Class<?> provider : aspectDefinition.getRequiredProviders()) { if (dep.getProvider(provider.asSubclass(TransitiveInfoProvider.class)) == null) { 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 1b90dcec83..b1d0faec8f 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 @@ -34,11 +34,10 @@ import com.google.devtools.build.lib.actions.MutableActionGraph; import com.google.devtools.build.lib.actions.MutableActionGraph.ActionConflictException; import com.google.devtools.build.lib.analysis.AnalysisEnvironment; import com.google.devtools.build.lib.analysis.AnalysisFailureEvent; -import com.google.devtools.build.lib.analysis.Aspect; -import com.google.devtools.build.lib.packages.AspectWithParameters; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.BuildView; import com.google.devtools.build.lib.analysis.CachingAnalysisEnvironment; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; @@ -56,7 +55,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.packages.AspectParameters; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Package; import com.google.devtools.build.lib.packages.RuleClassProvider; @@ -537,16 +536,21 @@ public final class SkyframeBuildView { } @Nullable - public Aspect createAspect( + public ConfiguredAspect createAspect( AnalysisEnvironment env, RuleConfiguredTarget associatedTarget, ConfiguredAspectFactory aspectFactory, ListMultimap<Attribute, ConfiguredTarget> prerequisiteMap, Set<ConfigMatchingProvider> configConditions, - AspectWithParameters aspectWithParameters) - throws InterruptedException { - return factory.createAspect(env, associatedTarget, aspectFactory, aspectWithParameters, - prerequisiteMap, configConditions, + Aspect aspect) + throws InterruptedException { + return factory.createAspect( + env, + associatedTarget, + aspectFactory, + aspect, + prerequisiteMap, + configConditions, getHostConfiguration(associatedTarget.getConfiguration())); } 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 a660ba59c9..631fc2f599 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 @@ -50,9 +50,9 @@ import com.google.devtools.build.lib.actions.Executor; import com.google.devtools.build.lib.actions.PackageRootResolutionException; import com.google.devtools.build.lib.actions.ResourceManager; import com.google.devtools.build.lib.actions.Root; -import com.google.devtools.build.lib.analysis.Aspect; import com.google.devtools.build.lib.analysis.BlazeDirectories; import com.google.devtools.build.lib.analysis.BuildView.Options; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredRuleClassProvider; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.DependencyResolver.Dependency; @@ -77,7 +77,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadCompatible; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.events.Reporter; -import com.google.devtools.build.lib.packages.AspectWithParameters; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException; import com.google.devtools.build.lib.packages.NoSuchPackageException; @@ -1134,7 +1134,7 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { final List<SkyKey> skyKeys = new ArrayList<>(); for (Dependency key : keys) { skyKeys.add(ConfiguredTargetValue.key(key.getLabel(), configs.get(key))); - for (AspectWithParameters aspect : key.getAspects()) { + for (Aspect aspect : key.getAspects()) { skyKeys.add( ConfiguredTargetFunction.createAspectKey(key.getLabel(), configs.get(key), aspect)); } @@ -1153,19 +1153,19 @@ public abstract class SkyframeExecutor implements WalkableGraphFactory { ConfiguredTarget configuredTarget = ((ConfiguredTargetValue) result.get(configuredTargetKey)).getConfiguredTarget(); - List<Aspect> aspects = new ArrayList<>(); + List<ConfiguredAspect> configuredAspects = new ArrayList<>(); - for (AspectWithParameters aspect : key.getAspects()) { + for (Aspect aspect : key.getAspects()) { SkyKey aspectKey = ConfiguredTargetFunction.createAspectKey(key.getLabel(), configs.get(key), aspect); if (result.get(aspectKey) == null) { continue DependentNodeLoop; } - aspects.add(((AspectValue) result.get(aspectKey)).getAspect()); + configuredAspects.add(((AspectValue) result.get(aspectKey)).getConfiguredAspect()); } - cts.put(key, RuleConfiguredTarget.mergeAspects(configuredTarget, aspects)); + cts.put(key, RuleConfiguredTarget.mergeAspects(configuredTarget, configuredAspects)); } return cts.build(); 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 c8775c97c3..707a8963f8 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 @@ -15,7 +15,7 @@ package com.google.devtools.build.lib.skyframe; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleContext; @@ -44,7 +44,8 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory { } @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { try (Mutability mutability = Mutability.create("aspect")) { SkylarkRuleContext skylarkRuleContext; @@ -79,16 +80,16 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory { return null; } - Aspect.Builder builder = new Aspect.Builder(name); + ConfiguredAspect.Builder builder = new ConfiguredAspect.Builder(name); SkylarkClassObject struct = (SkylarkClassObject) aspectSkylarkObject; Location loc = struct.getCreationLoc(); for (String key : struct.getKeys()) { builder.addSkylarkTransitiveInfo(key, struct.getValue(key), loc); } - Aspect aspect = builder.build(); + ConfiguredAspect configuredAspect = builder.build(); SkylarkProviderValidationUtil.checkOrphanArtifacts(ruleContext); - return aspect; + return configuredAspect; } catch (EvalException e) { addAspectToStackTrace(base, e); ruleContext.ruleError("\n" + e.print()); diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java index 973a4697ef..c413271186 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectDefinitionTest.java @@ -47,7 +47,8 @@ public class AspectDefinitionTest { } @Override - public Aspect create(ConfiguredTarget base, RuleContext context, AspectParameters parameters) { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext context, AspectParameters parameters) { throw new IllegalStateException(); } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java index 7341ba1643..9616dffa7c 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java @@ -237,13 +237,15 @@ public class AspectTest extends AnalysisTestCase { } @Override - public Aspect create(ConfiguredTarget base, - RuleContext ruleContext, AspectParameters parameters) throws InterruptedException { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) + throws InterruptedException { Object lateBoundPrereq = ruleContext.getPrerequisite(":late", TARGET); - return new Aspect.Builder("testaspect") + return new ConfiguredAspect.Builder("testaspect") .addProvider( - new AspectInfo(NestedSetBuilder.create( - Order.STABLE_ORDER, lateBoundPrereq != null ? "non-empty" : "empty"))) + new AspectInfo( + NestedSetBuilder.create( + Order.STABLE_ORDER, lateBoundPrereq != null ? "non-empty" : "empty"))) .build(); } } diff --git a/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java b/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java index 5a190d5915..3bf70e8447 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/DependencyResolverTest.java @@ -26,7 +26,7 @@ import com.google.devtools.build.lib.analysis.util.AnalysisTestCase; import com.google.devtools.build.lib.analysis.util.TestAspects; import com.google.devtools.build.lib.analysis.util.TestAspects.AspectRequiringRule; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.packages.AspectWithParameters; +import com.google.devtools.build.lib.packages.Aspect; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.NativeAspectClass; import com.google.devtools.build.lib.packages.NoSuchThingException; @@ -113,7 +113,7 @@ public class DependencyResolverTest extends AnalysisTestCase { return dependencyResolver.dependentNodeMap( new TargetAndConfiguration(target, getTargetConfiguration()), getHostConfiguration(), - aspect != null ? new AspectWithParameters(new NativeAspectClass<T>(aspect)) : null, + aspect != null ? new Aspect(new NativeAspectClass<T>(aspect)) : null, ImmutableSet.<ConfigMatchingProvider>of()); } @@ -122,7 +122,7 @@ public class DependencyResolverTest extends AnalysisTestCase { ListMultimap<Attribute, Dependency> dependentNodeMap, String attrName, String dep, - AspectWithParameters... aspects) { + Aspect... aspects) { Attribute attr = null; for (Attribute candidate : dependentNodeMap.keySet()) { if (candidate.getName().equals(attrName)) { @@ -152,10 +152,7 @@ public class DependencyResolverTest extends AnalysisTestCase { "aspect(name='b', foo=[])"); ListMultimap<Attribute, Dependency> map = dependentNodeMap("//a:a", null); assertDep( - map, - "foo", - "//a:b", - new AspectWithParameters(new NativeAspectClass(TestAspects.SimpleAspect.class))); + map, "foo", "//a:b", new Aspect(new NativeAspectClass(TestAspects.SimpleAspect.class))); } @Test @@ -167,10 +164,7 @@ public class DependencyResolverTest extends AnalysisTestCase { ListMultimap<Attribute, Dependency> map = dependentNodeMap("//a:a", TestAspects.AttributeAspect.class); assertDep( - map, - "foo", - "//a:b", - new AspectWithParameters(new NativeAspectClass(TestAspects.AttributeAspect.class))); + map, "foo", "//a:b", new Aspect(new NativeAspectClass(TestAspects.AttributeAspect.class))); } @Test @@ -205,18 +199,18 @@ public class DependencyResolverTest extends AnalysisTestCase { BuildConfiguration host = getHostConfiguration(); BuildConfiguration target = getTargetConfiguration(); - ImmutableSet<AspectWithParameters> twoAspects = + ImmutableSet<Aspect> twoAspects = ImmutableSet.of( - new AspectWithParameters(new NativeAspectClass(TestAspects.SimpleAspect.class)), - new AspectWithParameters(new NativeAspectClass(TestAspects.AttributeAspect.class))); - ImmutableSet<AspectWithParameters> inverseAspects = + new Aspect(new NativeAspectClass(TestAspects.SimpleAspect.class)), + new Aspect(new NativeAspectClass(TestAspects.AttributeAspect.class))); + ImmutableSet<Aspect> inverseAspects = ImmutableSet.of( - new AspectWithParameters(new NativeAspectClass(TestAspects.AttributeAspect.class)), - new AspectWithParameters(new NativeAspectClass(TestAspects.SimpleAspect.class))); - ImmutableSet<AspectWithParameters> differentAspects = + new Aspect(new NativeAspectClass(TestAspects.AttributeAspect.class)), + new Aspect(new NativeAspectClass(TestAspects.SimpleAspect.class))); + ImmutableSet<Aspect> differentAspects = ImmutableSet.of( - new AspectWithParameters(new NativeAspectClass(TestAspects.AttributeAspect.class)), - new AspectWithParameters(new NativeAspectClass(TestAspects.ErrorAspect.class))); + new Aspect(new NativeAspectClass(TestAspects.AttributeAspect.class)), + new Aspect(new NativeAspectClass(TestAspects.ErrorAspect.class))); new EqualsTester() .addEqualityGroup( diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java index 0a67c921b1..f6d650dc33 100644 --- a/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java +++ b/src/test/java/com/google/devtools/build/lib/analysis/util/TestAspects.java @@ -26,7 +26,7 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableCollection; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.Aspect; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.ConfiguredNativeAspectFactory; import com.google.devtools.build.lib.analysis.ConfiguredTarget; import com.google.devtools.build.lib.analysis.RuleConfiguredTarget.Mode; @@ -149,16 +149,16 @@ public class TestAspects { */ public abstract static class BaseAspect implements ConfiguredNativeAspectFactory { @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { String information = parameters.isEmpty() ? "" : " data " + Iterables.getFirst(parameters.getAttribute("baz"), null); - return new Aspect.Builder(getClass().getName()) + return new ConfiguredAspect.Builder(getClass().getName()) .addProvider( AspectInfo.class, - new AspectInfo(collectAspectData("aspect " + ruleContext.getLabel() + information, - ruleContext))) + new AspectInfo( + collectAspectData("aspect " + ruleContext.getLabel() + information, ruleContext))) .build(); } } @@ -249,7 +249,7 @@ public class TestAspects { return builder.build(); } - public Aspect create( + public ConfiguredAspect create( ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { StringBuilder information = new StringBuilder("aspect " + ruleContext.getLabel()); if (!parameters.isEmpty()) { @@ -264,7 +264,7 @@ public class TestAspects { information.append(dep.getLabel()); } information.append("]"); - return new Aspect.Builder(getClass().getName()) + return new ConfiguredAspect.Builder(getClass().getName()) .addProvider( AspectInfo.class, new AspectInfo(collectAspectData(information.toString(), ruleContext))) @@ -283,8 +283,8 @@ public class TestAspects { */ public static class ErrorAspect implements ConfiguredNativeAspectFactory { @Override - public Aspect create(ConfiguredTarget base, RuleContext ruleContext, - AspectParameters parameters) { + public ConfiguredAspect create( + ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters) { ruleContext.ruleError("Aspect error"); return null; } diff --git a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java index 84b95533a0..2dd238ef6b 100644 --- a/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java +++ b/src/test/java/com/google/devtools/build/lib/ideinfo/AndroidStudioInfoAspectTestBase.java @@ -22,8 +22,8 @@ import com.google.common.collect.ImmutableMap; import com.google.common.collect.Lists; import com.google.common.eventbus.EventBus; import com.google.devtools.build.lib.actions.Artifact; -import com.google.devtools.build.lib.analysis.Aspect; import com.google.devtools.build.lib.analysis.BuildView.AnalysisResult; +import com.google.devtools.build.lib.analysis.ConfiguredAspect; import com.google.devtools.build.lib.analysis.OutputGroupProvider; import com.google.devtools.build.lib.analysis.actions.BinaryFileWriteAction; import com.google.devtools.build.lib.analysis.util.BuildViewTestCase; @@ -78,7 +78,7 @@ abstract class AndroidStudioInfoAspectTestBase extends BuildViewTestCase { }; private AnalysisResult analysisResult; - private Aspect aspect; + private ConfiguredAspect configuredAspect; protected static String jarString(String base, String jar, String iJar, String sourceJar) { StringBuilder sb = new StringBuilder(); @@ -118,14 +118,14 @@ abstract class AndroidStudioInfoAspectTestBase extends BuildViewTestCase { Collection<AspectValue> aspects = analysisResult.getAspects(); assertThat(aspects.size()).isEqualTo(1); AspectValue value = aspects.iterator().next(); - this.aspect = value.getAspect(); - assertThat(aspect.getName()).isEqualTo(AndroidStudioInfoAspect.NAME); + this.configuredAspect = value.getConfiguredAspect(); + assertThat(configuredAspect.getName()).isEqualTo(AndroidStudioInfoAspect.NAME); } protected Map<String, RuleIdeInfo> buildRuleIdeInfo(String target) throws Exception { buildTarget(target); AndroidStudioInfoFilesProvider provider = - aspect.getProvider(AndroidStudioInfoFilesProvider.class); + configuredAspect.getProvider(AndroidStudioInfoFilesProvider.class); Iterable<Artifact> artifacts = provider.getIdeInfoFiles(); ImmutableMap.Builder<String, RuleIdeInfo> builder = ImmutableMap.builder(); for (Artifact artifact : artifacts) { @@ -138,7 +138,8 @@ abstract class AndroidStudioInfoAspectTestBase extends BuildViewTestCase { } protected List<String> getOutputGroupResult(String outputGroup) { - OutputGroupProvider outputGroupProvider = this.aspect.getProvider(OutputGroupProvider.class); + OutputGroupProvider outputGroupProvider = + this.configuredAspect.getProvider(OutputGroupProvider.class); assert outputGroupProvider != null; NestedSet<Artifact> artifacts = outputGroupProvider.getOutputGroup(outputGroup); diff --git a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java index 7633d4fde5..2b02bc1dfb 100644 --- a/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java +++ b/src/test/java/com/google/devtools/build/lib/skylark/SkylarkAspectsTest.java @@ -71,7 +71,7 @@ public class SkylarkAspectsTest extends BuildViewTestCase { public String apply(AspectValue aspectValue) { return String.format( "%s(%s)", - aspectValue.getAspect().getName(), + aspectValue.getConfiguredAspect().getName(), aspectValue.getLabel().toString()); } })) @@ -122,7 +122,8 @@ public class SkylarkAspectsTest extends BuildViewTestCase { })) .containsExactly("//test:xxx"); AspectValue aspectValue = analysisResult.getAspects().iterator().next(); - SkylarkProviders skylarkProviders = aspectValue.getAspect().getProvider(SkylarkProviders.class); + SkylarkProviders skylarkProviders = + aspectValue.getConfiguredAspect().getProvider(SkylarkProviders.class); assertThat(skylarkProviders).isNotNull(); Object names = skylarkProviders.getValue("target_labels"); assertThat(names).isInstanceOf(SkylarkNestedSet.class); |