Skip to content

Commit c0f0699

Browse files
committed
give a better error message when deleting ()
1 parent 57fa79a commit c0f0699

2 files changed

Lines changed: 13 additions & 4 deletions

File tree

Lib/test/test_syntax.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,12 @@
462462
File "<doctest test.test_syntax[49]>", line 1
463463
SyntaxError: keyword argument repeated
464464
465+
>>> del ()
466+
Traceback (most recent call last):
467+
...
468+
File "<doctest test.test_syntax[50]>", line 1
469+
SyntaxError: can't delete ()
470+
465471
"""
466472

467473
import re

Python/ast.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -402,10 +402,13 @@ set_context(struct compiling *c, expr_ty e, expr_context_ty ctx, const node *n)
402402
s = e->v.List.elts;
403403
break;
404404
case Tuple_kind:
405-
if (asdl_seq_LEN(e->v.Tuple.elts) == 0)
406-
return ast_error(n, "can't assign to ()");
407-
e->v.Tuple.ctx = ctx;
408-
s = e->v.Tuple.elts;
405+
if (asdl_seq_LEN(e->v.Tuple.elts)) {
406+
e->v.Tuple.ctx = ctx;
407+
s = e->v.Tuple.elts;
408+
}
409+
else {
410+
expr_name = "()";
411+
}
409412
break;
410413
case Lambda_kind:
411414
expr_name = "lambda";

0 commit comments

Comments
 (0)