bpo-40217:  Ensure Py_VISIT(Py_TYPE(self)) is always called for PyType_FromSpec types (reverts GH-19414) (GH-20264)


Heap types now always visit the type in tp_traverse. See added docs for details.

This reverts commit 0169d3003be3d072751dd14a5c84748ab63a249f.

Automerge-Triggered-By: @encukou
(cherry picked from commit 1cf15af9a6f28750f37b08c028ada31d38e818dd)

Co-authored-by: Pablo Galindo <Pablogsal@gmail.com>
diff --git a/Modules/_struct.c b/Modules/_struct.c
index 5984bb6..f759f0b 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1646,6 +1646,7 @@
 static int
 unpackiter_traverse(unpackiterobject *self, visitproc visit, void *arg)
 {
+    Py_VISIT(Py_TYPE(self));
     Py_VISIT(self->so);
     Py_VISIT(self->buf.obj);
     return 0;