New GitHub issue #96418 from twoone-3:<br>

<hr>

<pre>
typeobject.c
```c
    /* Set type.__module__ */
    r = _PyDict_ContainsId(type->tp_dict, &PyId___module__);
    if (r < 0) {
        goto fail;
    }
    if (r == 0) {
        s = strrchr(spec->name, '.');
        if (s != NULL) {
            modname = PyUnicode_FromStringAndSize(
                    spec->name, (Py_ssize_t)(s - spec->name));
            if (modname == NULL) {
                goto fail;
            }
            r = _PyDict_SetItemId(type->tp_dict, &PyId___module__, modname);
            Py_DECREF(modname);
            if (r != 0)
                goto fail;
        } else {
            if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1,
                    "builtin type %.200s has no __module__ attribute",
                    spec->name))
                goto fail;
        }
    }
```
[https://docs.python.org/3/c-api/typeobj.html#c.PyTypeObject.tp_name](docs)
Dynamic types are still checkpointed and the document does not match the code
</pre>

<hr>

<a href="https://github.com/python/cpython/issues/96418">View on GitHub</a>
<p>Labels: type-bug</p>
<p>Assignee: </p>