Parser: allow multiple statements on the same line as the colon

 e.g. def foo(x, y): print(x); print(y)

Bug found when adding the pass statement.

--
MOS_MIGRATED_REVID=88852710
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 56a32e9..6a856f6 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
@@ -1210,6 +1210,7 @@
     return ImmutableList.copyOf(arguments);
   }
 
+  // suite is typically what follows a colon (e.g. after def or for).
   // suite ::= simple_stmt
   //         | NEWLINE INDENT stmt+ OUTDENT
   private List<Statement> parseSuite() {
@@ -1227,9 +1228,7 @@
       }
       expect(TokenKind.OUTDENT);
     } else {
-      Statement stmt = parseSmallStatement();
-      list.add(stmt);
-      expect(TokenKind.NEWLINE);
+      parseSimpleStatement(list);
     }
     return list;
   }
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 51da72c..b6741c4 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
@@ -756,6 +756,14 @@
   }
 
   @Test
+  public void testDefSingleLine() throws Exception {
+    List<Statement> statements = parseFileForSkylark(
+        "def foo(): x = 1; y = 2\n");
+    FunctionDefStatement stmt = (FunctionDefStatement) statements.get(0);
+    assertThat(stmt.getStatements()).hasSize(2);
+  }
+
+  @Test
   public void testSkipIfBlock() throws Exception {
     // Skip over 'if' blocks, when parsePython is set
     List<Statement> stmts = parseFile(