Prohibit multiple load() statements from appearing on the same line

This is an incompatible change, but it's an obvious bug.

RELNOTES[INC]: Fixed a bug whereby multiple load() statements could appear on the same line

PiperOrigin-RevId: 161070399
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 06f0ac9..7bc94c1 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
@@ -1116,6 +1116,7 @@
 
     LoadStatement stmt = new LoadStatement(importString, symbols);
     list.add(setLocation(stmt, start, token.left));
+    expectAndRecover(TokenKind.NEWLINE);
   }
 
   /**
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 62e176e..f0cd551 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
@@ -1219,16 +1219,23 @@
   }
 
   @Test
-  public void testLoadSyntaxError() throws Exception {
+  public void testLoadLabelQuoteError() throws Exception {
     setFailFast(false);
     parseFileForSkylark("load(non_quoted, 'a')\n");
     assertContainsError("syntax error");
   }
 
   @Test
-  public void testLoadSyntaxError2() throws Exception {
+  public void testLoadSymbolQuoteError() throws Exception {
     setFailFast(false);
-    parseFileForSkylark("load('non_quoted', a)\n");
+    parseFileForSkylark("load('label', non_quoted)\n");
+    assertContainsError("syntax error");
+  }
+
+  @Test
+  public void testLoadDisallowSameLine() throws Exception {
+    setFailFast(false);
+    parseFileForSkylark("load('foo.bzl', 'foo') load('bar.bzl', 'bar')");
     assertContainsError("syntax error");
   }