diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java | 45 |
1 files changed, 15 insertions, 30 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java index 202be7b633..937cf74c45 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 @@ -53,7 +53,7 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.Location; -import com.google.devtools.build.lib.packages.AspectParameters; +import com.google.devtools.build.lib.packages.AspectDescriptor; import com.google.devtools.build.lib.packages.Attribute; import com.google.devtools.build.lib.packages.Attribute.ConfigurationTransition; import com.google.devtools.build.lib.packages.Attribute.SplitTransition; @@ -151,8 +151,7 @@ public final class RuleContext extends TargetContext private static final String HOST_CONFIGURATION_PROGRESS_TAG = "for host"; private final Rule rule; - @Nullable private final String aspectName; - @Nullable private final AspectParameters aspectParameters; + private final ImmutableList<AspectDescriptor> aspectDescriptors; private final ListMultimap<String, ConfiguredTarget> targetMap; private final ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap; private final ImmutableMap<Label, ConfigMatchingProvider> configConditions; @@ -183,8 +182,7 @@ public final class RuleContext extends TargetContext super(builder.env, builder.rule, builder.configuration, builder.prerequisiteMap.get(null), builder.visibility); this.rule = builder.rule; - this.aspectName = builder.getAspectName(); - this.aspectParameters = builder.getAspectParameters(); + this.aspectDescriptors = builder.aspectDescriptors; this.configurationFragmentPolicy = builder.configurationFragmentPolicy; this.universalFragment = universalFragment; this.targetMap = targetMap; @@ -334,7 +332,7 @@ public final class RuleContext extends TargetContext @Override public ActionOwner getActionOwner() { if (actionOwner == null) { - actionOwner = createActionOwner(rule, aspectName, aspectParameters, getConfiguration()); + actionOwner = createActionOwner(rule, aspectDescriptors, getConfiguration()); } return actionOwner; } @@ -412,13 +410,11 @@ public final class RuleContext extends TargetContext @VisibleForTesting public static ActionOwner createActionOwner( Rule rule, - @Nullable String aspectName, - @Nullable AspectParameters aspectParameters, + ImmutableList<AspectDescriptor> aspectDescriptors, BuildConfiguration configuration) { return ActionOwner.create( rule.getLabel(), - aspectName, - aspectParameters, + aspectDescriptors, rule.getLocation(), configuration.getMnemonic(), rule.getTargetKind(), @@ -1434,28 +1430,25 @@ public final class RuleContext extends TargetContext private final BuildConfiguration configuration; private final BuildConfiguration hostConfiguration; private final PrerequisiteValidator prerequisiteValidator; - @Nullable private final String aspectName; - @Nullable private final AspectParameters aspectParameters; private final ErrorReporter reporter; private OrderedSetMultimap<Attribute, ConfiguredTarget> prerequisiteMap; private ImmutableMap<Label, ConfigMatchingProvider> configConditions; private NestedSet<PackageSpecification> visibility; private ImmutableMap<String, Attribute> aspectAttributes; private ImmutableBiMap<String, Class<? extends TransitiveInfoProvider>> skylarkProviderRegistry; + private ImmutableList<AspectDescriptor> aspectDescriptors; Builder( AnalysisEnvironment env, Rule rule, - @Nullable String aspectName, - @Nullable AspectParameters aspectParameters, + ImmutableList<AspectDescriptor> aspectDescriptors, BuildConfiguration configuration, BuildConfiguration hostConfiguration, PrerequisiteValidator prerequisiteValidator, ConfigurationFragmentPolicy configurationFragmentPolicy) { this.env = Preconditions.checkNotNull(env); this.rule = Preconditions.checkNotNull(rule); - this.aspectName = aspectName; - this.aspectParameters = aspectParameters; + this.aspectDescriptors = aspectDescriptors; this.configurationFragmentPolicy = Preconditions.checkNotNull(configurationFragmentPolicy); this.configuration = Preconditions.checkNotNull(configuration); this.hostConfiguration = Preconditions.checkNotNull(hostConfiguration); @@ -1736,7 +1729,7 @@ public final class RuleContext extends TargetContext /** Returns whether the context being constructed is for the evaluation of an aspect. */ public boolean forAspect() { - return aspectName != null; + return !aspectDescriptors.isEmpty(); } public Rule getRule() { @@ -1747,9 +1740,11 @@ public final class RuleContext extends TargetContext * Returns a rule class name suitable for log messages, including an aspect name if applicable. */ public String getRuleClassNameForLogging() { - return aspectName != null - ? aspectName + " aspect on " + rule.getRuleClass() - : rule.getRuleClass(); + if (aspectDescriptors.isEmpty()) { + return rule.getRuleClass(); + } + + return Joiner.on(",").join(aspectDescriptors) + " aspect on " + rule.getRuleClass(); } public BuildConfiguration getConfiguration() { @@ -1959,16 +1954,6 @@ public final class RuleContext extends TargetContext prerequisiteValidator.validate(this, prerequisite, attribute); } } - - @Nullable - public AspectParameters getAspectParameters() { - return aspectParameters; - } - - @Nullable - public String getAspectName() { - return aspectName; - } } /** |