There are already 2 complexities I can think of:
1. This behavior may break some people's code, if they use __slots__ to iterate over
the fields of a dataclass. Solution: explicitly mention in the docs that
not every field may get a slot on the new class. Advise them to use
`fields()` to iterate over the fields.
2. It's technically allowed for __slots__ to be an iterator (which will then be
exhausted at class creation). Finding the __slots__ of such a class
may require more elaborate introspection. |