diff options
author | 2016-10-05 16:36:49 +0000 | |
---|---|---|
committer | 2016-10-05 19:41:48 +0000 | |
commit | da57492887aa13b2bad2af2b0f9de25b1c87b446 (patch) | |
tree | 4c610c83a27ac55e44d0d26184a90ffba3073678 /src/main/java | |
parent | 39bb51a47e97f8d3771a282d5a9384fe041a506b (diff) |
Proper error messages when built-in rule attributes are overridden #1811
--
MOS_MIGRATED_REVID=135241715
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java | 2 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java | 6 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java index 48cb299a74..eb49821885 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/BaseRuleClasses.java @@ -161,6 +161,8 @@ public class BaseRuleClasses { */ public static RuleClass.Builder commonCoreAndSkylarkAttributes(RuleClass.Builder builder) { return builder + .add(attr("name", STRING) + .nonconfigurable("Rule name")) // The visibility attribute is special: it is a nodep label, and loading the // necessary package groups is handled by {@link LabelVisitor#visitTargetVisibility}. // Package groups always have the null configuration so that they are not duplicated diff --git a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java index a4feb031ac..4f84481c99 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java @@ -109,6 +109,9 @@ public class SkylarkRepositoryModule { // We'll set the name later, pass the empty string for now. Builder builder = new Builder("", RuleClassType.WORKSPACE, true); + builder.addOrOverrideAttribute(attr("$local", BOOLEAN).defaultValue(local).build()); + BaseRuleClasses.commonCoreAndSkylarkAttributes(builder); + builder.add(attr("expect_failure", STRING)); if (attrs != Runtime.NONE) { for (Map.Entry<String, Descriptor> attr : castMap(attrs, String.class, Descriptor.class, "attrs").entrySet()) { @@ -119,9 +122,6 @@ public class SkylarkRepositoryModule { builder.addOrOverrideAttribute(attrBuilder.build(attrName)); } } - builder.addOrOverrideAttribute(attr("$local", BOOLEAN).defaultValue(local).build()); - BaseRuleClasses.commonCoreAndSkylarkAttributes(builder); - builder.add(attr("expect_failure", STRING)); builder.setConfiguredTargetFunction(implementation); builder.setRuleDefinitionEnvironment(funcallEnv); builder.setWorkspaceOnly(); |