aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleContext.java11
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;