cpython
cpython copied to clipboard
gh-99249: Clarify "read-only" slots tp_bases & tp_mro
These slots are marked "should be treated as read-only" in the table at the start of the document. That doesn't say anything about setting them in the static struct.
tp_bases docs do say that it should be NULL (TIL!). If you ignore that, seemingly nothing bad happens. However, some slots may not be inherited, depending on which sub-slot structs are present. (FWIW, NumPy sets tp_bases and is affected by the quirk -- though to be fair, its DUAL_INHERIT code probably predates tp_bases docs, and also the result happens to be benign.)
This patch makes things explicit. It also makes the summary table legend easier to scan.
- Issue: gh-99249