remove error checks already done in set_context()

This commit is contained in:
Benjamin Peterson 2009-06-08 23:44:13 +00:00
parent 8ea4ded9a6
commit a5a5728cf0
4 changed files with 5 additions and 30 deletions

View File

@ -1588,7 +1588,7 @@ SyntaxError: can't assign to yield expression
Traceback (most recent call last):
...
File "<doctest test.test_generators.__test__.coroutine[25]>", line 1
SyntaxError: augmented assignment to yield expression not possible
SyntaxError: can't assign to yield expression
Now check some throw() conditions:

View File

@ -144,7 +144,7 @@ Verify that syntax error's are raised for genexps used as lvalues
Traceback (most recent call last):
...
File "<doctest test.test_genexps.__test__.doctests[41]>", line 1
SyntaxError: augmented assignment to generator expression not possible
SyntaxError: can't assign to generator expression
########### Tests borrowed from or inspired by test_generators.py ############

View File

@ -248,12 +248,12 @@ Traceback (most recent call last):
SyntaxError: keyword can't be an expression
From ast_for_expr_stmt():
More set_context():
>>> (x for x in x) += 1
Traceback (most recent call last):
File "<doctest test.test_syntax[31]>", line 1
SyntaxError: augmented assignment to generator expression not possible
SyntaxError: can't assign to generator expression
>>> None += 1
Traceback (most recent call last):
File "<doctest test.test_syntax[32]>", line 1
@ -261,7 +261,7 @@ SyntaxError: cannot assign to None
>>> f() += 1
Traceback (most recent call last):
File "<doctest test.test_syntax[33]>", line 1
SyntaxError: illegal expression for augmented assignment
SyntaxError: can't assign to function call
Test continue in finally in weird combinations.

View File

@ -2088,31 +2088,6 @@ ast_for_expr_stmt(struct compiling *c, const node *n)
expr1 = ast_for_testlist(c, ch);
if (!expr1)
return NULL;
/* TODO(nas): Remove duplicated error checks (set_context does it) */
switch (expr1->kind) {
case GeneratorExp_kind:
ast_error(ch, "augmented assignment to generator "
"expression not possible");
return NULL;
case Yield_kind:
ast_error(ch, "augmented assignment to yield "
"expression not possible");
return NULL;
case Name_kind: {
const char *var_name = PyBytes_AS_STRING(expr1->v.Name.id);
if ((var_name[0] == 'N' || var_name[0] == 'T' || var_name[0] == 'F') &&
!forbidden_check(c, ch, var_name))
return NULL;
break;
}
case Attribute_kind:
case Subscript_kind:
break;
default:
ast_error(ch, "illegal expression for augmented "
"assignment");
return NULL;
}
if(!set_context(c, expr1, Store, ch))
return NULL;