diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java index 23d6b87b43..4ff90d9944 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java @@ -409,7 +409,15 @@ public class SkylarkRuleClassFunctions { throws EvalException { ImmutableList.Builder<String> attrAspects = ImmutableList.builder(); for (Object attributeAspect : attributeAspects) { - attrAspects.add(STRING.convert(attributeAspect, "attr_aspects")); + String attrName = STRING.convert(attributeAspect, "attr_aspects"); + if (!attrName.startsWith("_")) { + attrAspects.add(attrName); + } else { + // Implicit attribute names mean ether implicit or late-bound attributes + // (``$attr`` or ``:attr``). Depend on both. + attrAspects.add(attributeToNative(attrName, location, false)); + attrAspects.add(attributeToNative(attrName, location, true)); + } } ImmutableList<Pair<String, SkylarkAttr.Descriptor>> attributes = |