Improve error message when 'del' keyword is used
--
MOS_MIGRATED_REVID=135784854
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 73da09b..18c2dbf 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
@@ -346,11 +346,14 @@
String error;
switch (token.kind) {
case ASSERT: error = "'assert' not supported, use 'fail' instead"; break;
- case TRY: error = "'try' not supported, all exceptions are fatal"; break;
+ case DEL:
+ error = "'del' not supported, use '.pop()' to delete an item from a dictionary or a list";
+ break;
case IMPORT: error = "'import' not supported, use 'load' instead"; break;
case IS: error = "'is' not supported, use '==' instead"; break;
case LAMBDA: error = "'lambda' not supported, declare a function instead"; break;
case RAISE: error = "'raise' not supported, use 'fail' instead"; break;
+ case TRY: error = "'try' not supported, all exceptions are fatal"; break;
case WHILE: error = "'while' not supported, use 'for' instead"; break;
default: error = "keyword '" + token.kind.getPrettyName() + "' not supported"; break;
}
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 36ecfe1..b761450 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
@@ -401,6 +401,13 @@
}
@Test
+ public void testDel() {
+ setFailFast(false);
+ parseExpression("del d['a']");
+ assertContainsError("'del' not supported, use '.pop()' to delete");
+ }
+
+ @Test
public void testTupleAssign() {
List<Statement> statements = parseFile("list[0] = 5; dict['key'] = value\n");
assertThat(statements).hasSize(2);