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 | 11 |
1 files changed, 9 insertions, 2 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 706d986193..5eac0d686a 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 @@ -158,6 +158,7 @@ public final class RuleContext extends TargetContext private RuleContext( Builder builder, + AttributeMap attributes, ListMultimap<String, ConfiguredTarget> targetMap, ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap, Set<ConfigMatchingProvider> configConditions, @@ -172,8 +173,7 @@ public final class RuleContext extends TargetContext this.targetMap = targetMap; this.filesetEntryMap = filesetEntryMap; this.configConditions = configConditions; - this.attributes = - ConfiguredAttributeMapper.of(builder.rule, configConditions); + this.attributes = attributes; this.features = getEnabledFeatures(); this.ruleClassNameForLogging = ruleClassNameForLogging; this.aspectAttributes = aspectAttributes; @@ -1306,11 +1306,14 @@ public final class RuleContext extends TargetContext Preconditions.checkNotNull(prerequisiteMap); Preconditions.checkNotNull(configConditions); Preconditions.checkNotNull(visibility); + AttributeMap attributes = ConfiguredAttributeMapper.of(rule, configConditions); + validateAttributes(attributes); ListMultimap<String, ConfiguredTarget> targetMap = createTargetMap(); ListMultimap<String, ConfiguredFilesetEntry> filesetEntryMap = createFilesetEntryMap(rule, configConditions); return new RuleContext( this, + attributes, targetMap, filesetEntryMap, configConditions, @@ -1319,6 +1322,10 @@ public final class RuleContext extends TargetContext aspectAttributes != null ? aspectAttributes : ImmutableMap.<String, Attribute>of()); } + private void validateAttributes(AttributeMap attributes) { + rule.getRuleClassObject().checkAttributesNonEmpty(rule, reporter, attributes); + } + Builder setVisibility(NestedSet<PackageSpecification> visibility) { this.visibility = visibility; return this; |