Allow Skylark rules to be private. -- MOS_MIGRATED_REVID=97662036
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java index 05ad52a..0286796 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -225,7 +225,7 @@ * of that name already exists. Use {@link #overrideAttribute} in that case. */ public static final class Builder { - private static final Pattern RULE_NAME_PATTERN = Pattern.compile("[A-Za-z][A-Za-z0-9_]*"); + private static final Pattern RULE_NAME_PATTERN = Pattern.compile("[A-Za-z_][A-Za-z0-9_]*"); /** * The type of the rule class, which determines valid names and required
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 6fcf85f..924bd04 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
@@ -304,10 +304,6 @@ throw new EvalException(ast.getLocation(), "Invalid rule class hasn't been exported by a Skylark file"); } - if (ruleClassName.startsWith("_")) { - throw new EvalException(ast.getLocation(), "Invalid rule class name '" + ruleClassName - + "', cannot be private"); - } if (type == RuleClassType.TEST != TargetUtils.isTestRuleName(ruleClassName)) { throw new EvalException(ast.getLocation(), "Invalid rule class name '" + ruleClassName + "', test rule class names must end with '_test' and other rule classes must not");