diff options
author | 2016-02-02 19:31:23 +0000 | |
---|---|---|
committer | 2016-02-03 03:03:52 +0000 | |
commit | bfaf947fc530f47a69fcbf457b8d52b04cb22df3 (patch) | |
tree | b697f0ce0bfdbb816c6738968f19d8421c2b86f7 /src/main/java/com/google/devtools/build/lib/packages/WorkspaceFactory.java | |
parent | 33b2f120914f7b8fcff80c07155c45024d3e30df (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.java | 16 |
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) { |