aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
diff options
context:
space:
mode:
authorGravatar Kristina Chodorow <kchodorow@google.com>2016-02-02 19:31:23 +0000
committerGravatar David Chen <dzc@google.com>2016-02-03 03:03:52 +0000
commitbfaf947fc530f47a69fcbf457b8d52b04cb22df3 (patch)
treeb697f0ce0bfdbb816c6738968f19d8421c2b86f7 /src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
parent33b2f120914f7b8fcff80c07155c45024d3e30df (diff)
Add back documentation and better error message for workspace names
-- MOS_MIGRATED_REVID=113658912
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
index ca8fbdeb3b..dcf364a3e1 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java
@@ -167,11 +167,9 @@ public class WorkspaceFactory {
localReporter.clear();
}
- private static void checkWorkspaceName(String name, FuncallExpression ast) throws EvalException {
+ private static boolean isLegalWorkspaceName(String name) {
Matcher matcher = LEGAL_WORKSPACE_NAME.matcher(name);
- if (!matcher.matches()) {
- throw new EvalException(ast.getLocation(), name + " is not a legal workspace name");
- }
+ return matcher.matches();
}
@SkylarkSignature(name = "workspace", objectType = Object.class, returnType = SkylarkList.class,
@@ -190,7 +188,10 @@ public class WorkspaceFactory {
"workspace", FunctionSignature.namedOnly("name"), BuiltinFunction.USE_AST_ENV) {
public Object invoke(String name, FuncallExpression ast, Environment env)
throws EvalException {
- checkWorkspaceName(name, ast);
+ if (!isLegalWorkspaceName(name)) {
+ throw new EvalException(
+ ast.getLocation(), name + " is not a legal workspace name");
+ }
String errorMessage = LabelValidator.validateTargetName(name);
if (errorMessage != null) {
throw new EvalException(ast.getLocation(), errorMessage);
@@ -253,7 +254,10 @@ public class WorkspaceFactory {
Rule rule = builder
.externalPackageData()
.createAndAddRepositoryRule(builder, ruleClass, bindRuleClass, kwargs, ast);
- checkWorkspaceName(rule.getName(), ast);
+ if (!isLegalWorkspaceName(rule.getName())) {
+ throw new EvalException(
+ ast.getLocation(), rule + "'s name field must be a legal workspace name");
+ }
} catch (
RuleFactory.InvalidRuleException | Package.NameConflictException | LabelSyntaxException
e) {