Get rid of most of the flags (in tp_flags) that keep track of various
variations of the type struct and its attachments.  In Py3k, all type
structs have to have all fields -- no binary backwards compatibility.
Had to change the complex object to a new-style number!
diff --git a/Python/ceval.c b/Python/ceval.c
index e356800..f14e7da 100644
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -3833,8 +3833,7 @@
 			x = PyInt_AsSsize_t(v);
 		}
 		else if (v->ob_type->tp_as_number &&
-			 PyType_HasFeature(v->ob_type, Py_TPFLAGS_HAVE_INDEX)
-			 && v->ob_type->tp_as_number->nb_index) {
+			 v->ob_type->tp_as_number->nb_index) {
 			x = v->ob_type->tp_as_number->nb_index(v);
 			if (x == -1 && PyErr_Occurred())
 				return 0;
@@ -3853,8 +3852,7 @@
 #undef ISINDEX
 #define ISINDEX(x) ((x) == NULL || PyInt_Check(x) || PyLong_Check(x) || \
 		    ((x)->ob_type->tp_as_number && \
-                     PyType_HasFeature((x)->ob_type, Py_TPFLAGS_HAVE_INDEX) \
-		     && (x)->ob_type->tp_as_number->nb_index))
+		     (x)->ob_type->tp_as_number->nb_index))
 
 static PyObject *
 apply_slice(PyObject *u, PyObject *v, PyObject *w) /* return u[v:w] */