Patch #1550786: ellipsis literal.
diff --git a/Python/compile.c b/Python/compile.c
index ac82b84..40ac2d7 100644
--- a/Python/compile.c
+++ b/Python/compile.c
@@ -2746,6 +2746,8 @@
expr_constant(expr_ty e)
{
switch (e->kind) {
+ case Ellipsis_kind:
+ return 1;
case Num_kind:
return PyObject_IsTrue(e->v.Num.n);
case Str_kind:
@@ -2977,6 +2979,9 @@
case Str_kind:
ADDOP_O(c, LOAD_CONST, e->v.Str.s, consts);
break;
+ case Ellipsis_kind:
+ ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
+ break;
/* The following exprs can be assignment targets. */
case Attribute_kind:
if (e->v.Attribute.ctx != AugStore)
@@ -3255,9 +3260,6 @@
expr_context_ty ctx)
{
switch (s->kind) {
- case Ellipsis_kind:
- ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
- break;
case Slice_kind:
return compiler_slice(c, s, ctx);
case Index_kind:
@@ -3284,12 +3286,6 @@
VISIT(c, expr, s->v.Index.value);
}
break;
- case Ellipsis_kind:
- kindname = "ellipsis";
- if (ctx != AugStore) {
- ADDOP_O(c, LOAD_CONST, Py_Ellipsis, consts);
- }
- break;
case Slice_kind:
kindname = "slice";
if (!s->v.Slice.step)