aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-01-04 14:53:52 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-01-04 14:55:57 -0800
commit7ee24c619495a6ec41eaf66140928b9005d09751 (patch)
tree219dd98b5fd0ed80276f80c2e246c25eb6108b86 /src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
parentb099292d4f513012c1c63a4e73cec043015a55fc (diff)
Allow late bound defaults in skylark aspects
RELNOTES: None. PiperOrigin-RevId: 180849649
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
index 32a78c9ad2..5b2b6e30ec 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkRuleClassFunctions.java
@@ -754,7 +754,7 @@ public class SkylarkRuleClassFunctions {
&& ((String) attribute.getDefaultValue(null)).isEmpty()) {
hasDefault = false; // isValueSet() is always true for attr.string.
}
- if (!Attribute.isImplicit(nativeName)) {
+ if (!Attribute.isImplicit(nativeName) && !Attribute.isLateBound(nativeName)) {
if (!attribute.checkAllowedValues() || attribute.getType() != Type.STRING) {
throw new EvalException(
ast.getLocation(),
@@ -776,7 +776,7 @@ public class SkylarkRuleClassFunctions {
nativeName, allowed.getErrorReason(defaultVal)));
}
}
- } else if (!hasDefault) { // Implicit attribute
+ } else if (!hasDefault) { // Implicit or late bound attribute
String skylarkName = "_" + nativeName.substring(1);
throw new EvalException(
ast.getLocation(),