diff --git a/Lib/test/test_generators.py b/Lib/test/test_generators.py index b997ebc1657..f4c9655afb7 100644 --- a/Lib/test/test_generators.py +++ b/Lib/test/test_generators.py @@ -1588,7 +1588,7 @@ SyntaxError: can't assign to yield expression Traceback (most recent call last): ... File "", line 1 -SyntaxError: augmented assignment to yield expression not possible +SyntaxError: can't assign to yield expression Now check some throw() conditions: diff --git a/Lib/test/test_genexps.py b/Lib/test/test_genexps.py index 17ad78a0336..3d896a530f8 100644 --- a/Lib/test/test_genexps.py +++ b/Lib/test/test_genexps.py @@ -144,7 +144,7 @@ Verify that syntax error's are raised for genexps used as lvalues Traceback (most recent call last): ... File "", 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 ############ diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 896ee81255d..c1027b1f6ef 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -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 "", 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 "", line 1 @@ -261,7 +261,7 @@ SyntaxError: cannot assign to None >>> f() += 1 Traceback (most recent call last): File "", line 1 -SyntaxError: illegal expression for augmented assignment +SyntaxError: can't assign to function call Test continue in finally in weird combinations. diff --git a/Python/ast.c b/Python/ast.c index abad2d9f5f4..2cc41b274f1 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -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;