From: Nick Coghlan Date: Fri, 17 Mar 2006 17:59:10 +0000 (+0000) Subject: Fix bug 1441408 where a double colon didn't trigger extended slice semantics (applies... X-Git-Tag: v2.5a0~193 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=77858684e4d66a373b63987856001929f1852b10;p=python Fix bug 1441408 where a double colon didn't trigger extended slice semantics (applies patch 1452332) --- diff --git a/Python/ast.c b/Python/ast.c index bb1774bb97..3c339f000e 100644 --- a/Python/ast.c +++ b/Python/ast.c @@ -1317,16 +1317,20 @@ ast_for_slice(struct compiling *c, const node *n) ch = CHILD(n, NCH(n) - 1); if (TYPE(ch) == sliceop) { - if (NCH(ch) == 1) - /* XXX: If only 1 child, then should just be a colon. Should we - just skip assigning and just get to the return? */ - ch = CHILD(ch, 0); - else - ch = CHILD(ch, 1); - if (TYPE(ch) == test) { - step = ast_for_expr(c, ch); + if (NCH(ch) == 1) { + /* No expression, so step is None */ + ch = CHILD(ch, 0); + step = Name(new_identifier("None", c->c_arena), Load, + LINENO(ch), ch->n_col_offset, c->c_arena); if (!step) return NULL; + } else { + ch = CHILD(ch, 1); + if (TYPE(ch) == test) { + step = ast_for_expr(c, ch); + if (!step) + return NULL; + } } }