Clarify parser error for load() statements

RELNOTES: None
PiperOrigin-RevId: 186693205
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index b535030..3fcf76f 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -337,7 +337,7 @@
 
   /**
    * Consume tokens past the first token that has a kind that is in the set of
-   * teminatingTokens.
+   * terminatingTokens.
    * @param terminatingTokens
    * @return the end offset of the terminating token.
    */
@@ -354,7 +354,7 @@
 
   /**
    * Consume tokens until we reach the first token that has a kind that is in
-   * the set of teminatingTokens.
+   * the set of terminatingTokens.
    * @param terminatingTokens
    * @return the end offset of the terminating token.
    */
@@ -1047,7 +1047,7 @@
     return list;
   }
 
-  // load '(' STRING (COMMA [IDENTIFIER EQUALS] STRING)* COMMA? ')'
+  // load '(' STRING (COMMA [IDENTIFIER EQUALS] STRING)+ COMMA? ')'
   private void parseLoad(List<Statement> list) {
     int start = token.left;
     expect(TokenKind.LOAD);
@@ -1058,6 +1058,10 @@
     }
 
     StringLiteral importString = parseStringLiteral();
+    if (token.kind == TokenKind.RPAREN) {
+      syntaxError(token, "expected at least one symbol to load");
+      return;
+    }
     expect(TokenKind.COMMA);
 
     Map<Identifier, String> symbols = new HashMap<>();
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index 50d6d88..85ffb0e 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -1221,7 +1221,7 @@
   public void testLoadNoSymbol() throws Exception {
     setFailFast(false);
     parseFileForSkylark("load('/foo/bar/file')\n");
-    assertContainsError("syntax error");
+    assertContainsError("expected at least one symbol to load");
   }
 
   @Test
diff --git a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/DependencyAnalyzerTest.java b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/DependencyAnalyzerTest.java
index 674c124..e34d86e 100644
--- a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/DependencyAnalyzerTest.java
+++ b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/DependencyAnalyzerTest.java
@@ -149,7 +149,7 @@
         ImmutableMap.<String, String>builder()
             .put("/WORKSPACE", "")
             .put("/pkg1/BUILD", "")
-            .put("/pkg1/test.bzl", "load('//pkg2:bar.bzl')")
+            .put("/pkg1/test.bzl", "load('//pkg2:bar.bzl', 'bar')")
             .put("/pkg2/BUILD", "")
             .put("/pkg2/bar.bzl", "def bar(): pass")
             .build();
@@ -163,7 +163,7 @@
         ImmutableMap.<String, String>builder()
             .put("/WORKSPACE", "")
             .put("/pkg1/BUILD.bazel", "")
-            .put("/pkg1/test.bzl", "load('//pkg2:bar.bzl')")
+            .put("/pkg1/test.bzl", "load('//pkg2:bar.bzl', 'bar')")
             .put("/pkg2/BUILD.bazel", "")
             .put("/pkg2/bar.bzl", "def bar(): pass")
             .build();