Enable support for multiple variable assignments.
This happens in for loops, list comprehensions and simple assigment.
e.g.
a, b = expr
[a for a, b in expr]
--
MOS_MIGRATED_REVID=89123977
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index 040b650..da38aa0 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -365,6 +365,20 @@
}
@Test
+ public void testForLoopMultipleVariables() throws Exception {
+ List<Statement> input = parseFileForSkylark(
+ "def foo():\n"
+ + " s = ''\n"
+ + " for [i, j] in [[1, 2], [3, 4]]:\n"
+ + " s = s + str(i) + str(j) + '.'\n"
+ + " return s\n"
+ + "s = foo()");
+
+ exec(input, env);
+ assertEquals("12.34.", env.lookup("s"));
+ }
+
+ @Test
public void testNoneAssignment() throws Exception {
List<Statement> input = parseFileForSkylark(
"def foo(x=None):\n"