Skylark: load() allows the loading of symbols via an alias.

E.g. load("/foo/bla", my_rule = "old_name") will introduce the symbol "my_rule" as an alias for "old_name".

--
MOS_MIGRATED_REVID=98933635
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 dad2d46..93e14a8 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
@@ -29,8 +29,10 @@
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
 
+import java.util.LinkedList;
 import java.util.List;
 
+
 /**
  *  Tests of parser behaviour.
  */
@@ -1069,6 +1071,47 @@
   }
 
   @Test
+  public void testLoadAlias() throws Exception {
+    runLoadAliasTestForSymbols("my_alias = 'lawl'", "my_alias");
+  }
+
+  @Test
+  public void testLoadAliasMultiple() throws Exception {
+    runLoadAliasTestForSymbols(
+        "my_alias = 'lawl', 'lol', next_alias = 'rofl'", "my_alias", "lol", "next_alias");
+  }
+
+  private void runLoadAliasTestForSymbols(String loadSymbolString, String... expectedSymbols) {
+    List<Statement> statements =
+        parseFileForSkylark(String.format("load('/foo/bar/file', %s)\n", loadSymbolString));
+    LoadStatement stmt = (LoadStatement) statements.get(0);
+    ImmutableList<Identifier> actualSymbols = stmt.getSymbols();
+
+    assertThat(actualSymbols).hasSize(expectedSymbols.length);
+
+    List<String> actualSymbolNames = new LinkedList<>();
+
+    for (Identifier identifier : actualSymbols) {
+      actualSymbolNames.add(identifier.getName());
+    }
+
+    assertThat(actualSymbolNames).containsExactly((Object[]) expectedSymbols);
+  }
+
+  @Test
+  public void testLoadAliasSyntaxError() throws Exception {
+    setFailFast(false);
+    parseFileForSkylark("load('/foo', test1 = )\n");
+    assertContainsEvent("syntax error at ')': expected string");
+
+    parseFileForSkylark("load('/foo', test2 = 1)\n");
+    assertContainsEvent("syntax error at '1': expected string");
+
+    parseFileForSkylark("load('/foo', test3 = old)\n");
+    assertContainsEvent("syntax error at 'old': expected string");
+  }
+  
+  @Test
   public void testParseErrorNotComparison() throws Exception {
     setFailFast(false);
     parseFile("2 < not 3");