diff options
Diffstat (limited to 'Python')
-rw-r--r-- | Python/ast.c | 16 | ||||
-rw-r--r-- | Python/import.c | 5 |
2 files changed, 12 insertions, 9 deletions
diff --git a/Python/ast.c b/Python/ast.c index 9180fd0..9e8d911 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -387,6 +387,9 @@ set_context(expr_ty e, expr_context_ty ctx, const node *n) case GeneratorExp_kind: expr_name = "generator expression"; break; + case Yield_kind: + expr_name = "yield expression"; + break; case ListComp_kind: expr_name = "list comprehension"; break; @@ -1928,12 +1931,7 @@ ast_for_expr_stmt(struct compiling *c, const node *n) operator_ty newoperator; node *ch = CHILD(n, 0); - if (TYPE(ch) == testlist) - expr1 = ast_for_testlist(c, ch); - else - expr1 = Yield(ast_for_expr(c, CHILD(ch, 0)), LINENO(ch), n->n_col_offset, - c->c_arena); - + expr1 = ast_for_testlist(c, ch); if (!expr1) return NULL; /* TODO(nas): Remove duplicated error checks (set_context does it) */ @@ -1942,6 +1940,10 @@ ast_for_expr_stmt(struct compiling *c, const node *n) 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 = PyString_AS_STRING(expr1->v.Name.id); if (var_name[0] == 'N' && !strcmp(var_name, "None")) { @@ -1964,7 +1966,7 @@ ast_for_expr_stmt(struct compiling *c, const node *n) if (TYPE(ch) == testlist) expr2 = ast_for_testlist(c, ch); else - expr2 = Yield(ast_for_expr(c, ch), LINENO(ch), ch->n_col_offset, c->c_arena); + expr2 = ast_for_expr(c, ch); if (!expr2) return NULL; diff --git a/Python/import.c b/Python/import.c index ef64b21..26664ce 100644 --- a/Python/import.c +++ b/Python/import.c @@ -60,10 +60,11 @@ extern time_t PyOS_GetLastModificationTime(char *, FILE *); Python 2.5a0: 62081 (ast-branch) Python 2.5a0: 62091 (with) Python 2.5a0: 62092 (changed WITH_CLEANUP opcode) - Python 2.5c1: 62101 (fix wrong code: for x, in ...) + Python 2.5b3: 62101 (fix wrong code: for x, in ...) + Python 2.5b3: 62111 (fix wrong code: x += yield) . */ -#define MAGIC (62101 | ((long)'\r'<<16) | ((long)'\n'<<24)) +#define MAGIC (62111 | ((long)'\r'<<16) | ((long)'\n'<<24)) /* Magic word as global; note that _PyImport_Init() can change the value of this global to accommodate for alterations of how the |