Allow construct "a, = [1]" in parser.
This is equivalent to:
(a,) = [1]
which puts the element of a 1-element list in the variable.
--
MOS_MIGRATED_REVID=103371728
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 d685dcf..078efce 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
@@ -101,6 +101,7 @@
EnumSet.of(
TokenKind.EOF,
TokenKind.NEWLINE,
+ TokenKind.EQUALS,
TokenKind.RBRACE,
TokenKind.RBRACKET,
TokenKind.RPAREN,
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
index 496e30b..04746bb 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
@@ -430,6 +430,11 @@
}
@Test
+ public void testSingleTuple() throws Exception {
+ newTest().setUp("a, = [1]").testLookup("a", 1);
+ }
+
+ @Test
public void testHeterogeneousDict() throws Exception {
newTest().setUp("d = {'str': 1, 2: 3}", "a = d['str']", "b = d[2]").testLookup("a", 1)
.testLookup("b", 3);