Mercurial > cpython-lru_cache-weakref
diff Python/compile.c @ 74391:e1177b9167ce
make YieldFrom its own distinct from Yield (closes #13780)
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 14 Jan 2012 08:58:23 -0500 |
| parents | d64ac9ab4cd0 |
| children | 72556ff86828 |
line wrap: on
line diff
--- a/Python/compile.c Sat Jan 14 21:08:15 2012 +0800 +++ b/Python/compile.c Sat Jan 14 08:58:23 2012 -0500 @@ -3311,21 +3311,25 @@ case DictComp_kind: return compiler_dictcomp(c, e); case Yield_kind: + case YieldFrom_kind: { + expr_ty value; if (c->u->u_ste->ste_type != FunctionBlock) return compiler_error(c, "'yield' outside function"); - if (e->v.Yield.value) { - VISIT(c, expr, e->v.Yield.value); + value = (e->kind == YieldFrom_kind) ? e->v.YieldFrom.value : e->v.Yield.value; + if (value) { + VISIT(c, expr, value); } else { ADDOP_O(c, LOAD_CONST, Py_None, consts); } - if (e->v.Yield.is_from) { + if (e->kind == YieldFrom_kind) { ADDOP(c, YIELD_FROM); } else { ADDOP(c, YIELD_VALUE); } break; + } case Compare_kind: return compiler_compare(c, e); case Call_kind:
