aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar Vladimir Moskva <vladmos@google.com>2016-10-05 16:36:49 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-10-05 19:41:48 +0000
commitda57492887aa13b2bad2af2b0f9de25b1c87b446 (patch)
tree4c610c83a27ac55e44d0d26184a90ffba3073678 /src/main/java
parent39bb51a47e97f8d3771a282d5a9384fe041a506b (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.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/repository/skylark/SkylarkRepositoryModule.java6
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();