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);