Print singleton tuples with a comma
Like python, print singleton tuples with a terminating comma before the closing
parenthesis, so you can read them back as tuples.
Also, have toString() call the pretty-printer for Skylark lists and tuples.
--
MOS_MIGRATED_REVID=88831764
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 3fd5508..b2bfaec 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
@@ -427,7 +427,7 @@
public void testListComprehensionOnDictionaryCompositeExpression() throws Exception {
exec(parseFile("d = {1:'a',2:'b'}\n"
+ "l = [d[x] for x in d]"), env);
- assertEquals("[a, b]", env.lookup("l").toString());
+ assertEquals("[\"a\", \"b\"]", EvalUtils.prettyPrintValue(env.lookup("l")));
}
@Test
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 633744c..65996d8 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
@@ -816,6 +816,12 @@
assertEquals("a1", env.lookup("v"));
}
+ @Test
+ public void testSingletonTuple() throws Exception {
+ exec(parseFileForSkylark("v = (1,)"), env);
+ assertEquals("(1,)", env.lookup("v").toString());
+ }
+
@SuppressWarnings("unchecked")
@Test
public void testDirFindsClassObjectFields() throws Exception {