]> granicus.if.org Git - python/commitdiff
Fix bug 1441408 where a double colon didn't trigger extended slice semantics (applies...
authorNick Coghlan <ncoghlan@gmail.com>
Fri, 17 Mar 2006 17:59:10 +0000 (17:59 +0000)
committerNick Coghlan <ncoghlan@gmail.com>
Fri, 17 Mar 2006 17:59:10 +0000 (17:59 +0000)
Python/ast.c

index bb1774bb976d2f0310ef3a32adaec0fd65930ebd..3c339f000ee0fd669a1ced0fd892d0461962a408 100644 (file)
@@ -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;
+            }
         }
     }