mirror of
https://github.com/python/cpython.git
synced 2025-11-01 06:01:29 +00:00
This partially reverts #137047, keeping the tests for GC collectability of the original class that dataclass adds `__slots__` to. The reference leaks solved there are instead solved by having the `__dict__` & `__weakref__` descriptors not tied to (and referencing) their class. Instead, they're shared between all classes that need them (within an interpreter). The `__objclass__` ol the descriptors is set to `object`, since these descriptors work with *any* object. (The appropriate checks were already made in the get/set code, so the `__objclass__` check was redundant.) The repr of these descriptors (and any others whose `__objclass__` is `object`) now doesn't mention the objclass. This change required adjustment of introspection code that checks `__objclass__` to determine an object's “own” (i.e. not inherited) `__dict__`. Third-party code that does similar introspection of the internals will also need adjusting. Co-authored-by: Jelle Zijlstra <jelle.zijlstra@gmail.com> |
||
|---|---|---|
| .. | ||
| _contextvars.c.h | ||
| _warnings.c.h | ||
| bltinmodule.c.h | ||
| context.c.h | ||
| import.c.h | ||
| instruction_sequence.c.h | ||
| instrumentation.c.h | ||
| marshal.c.h | ||
| Python-tokenize.c.h | ||
| sysmodule.c.h | ||
| traceback.c.h | ||