]> granicus.if.org Git - python/commitdiff
give a better error message when deleting ()
authorBenjamin Peterson <benjamin@python.org>
Sat, 13 Jun 2009 17:08:53 +0000 (17:08 +0000)
committerBenjamin Peterson <benjamin@python.org>
Sat, 13 Jun 2009 17:08:53 +0000 (17:08 +0000)
Lib/test/test_syntax.py
Python/ast.c

index c1027b1f6eff36daa5f5bb889ba7544447933763..26d78adf9782ef1a9d9c5d14f8d057a44d52eb42 100644 (file)
@@ -462,6 +462,12 @@ Traceback (most recent call last):
   File "<doctest test.test_syntax[49]>", line 1
 SyntaxError: keyword argument repeated
 
+>>> del ()
+Traceback (most recent call last):
+   ...
+  File "<doctest test.test_syntax[50]>", line 1
+SyntaxError: can't delete ()
+
 """
 
 import re
index a415495a7027fc9bd5805b5276e8cdae813f8d5e..4a85164d8cd5557440a7abdb5f169ebd9b1e54d9 100644 (file)
@@ -402,10 +402,13 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
             s = e->v.List.elts;
             break;
         case Tuple_kind:
-            if (asdl_seq_LEN(e->v.Tuple.elts) == 0) 
-                return ast_error(n, "can't assign to ()");
-            e->v.Tuple.ctx = ctx;
-            s = e->v.Tuple.elts;
+            if (asdl_seq_LEN(e->v.Tuple.elts))  {
+                e->v.Tuple.ctx = ctx;
+                s = e->v.Tuple.elts;
+            }
+            else {
+                expr_name = "()";
+            }
             break;
         case Lambda_kind:
             expr_name = "lambda";