bpo-43176: Fix processing of empty dataclasses (GH-24484)

When a dataclass inherits from an empty base, all immutability checks are omitted. This PR fixes this and adds tests for it.

Automerge-Triggered-By: GH:ericvsmith
This commit is contained in:
Iurii Kemaev 2021-04-06 06:14:01 +01:00 committed by GitHub
parent 4663e5f39e
commit 376ffc6ac4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 1 deletions

View file

@ -860,7 +860,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen):
# Only process classes that have been processed by our
# decorator. That is, they have a _FIELDS attribute.
base_fields = getattr(b, _FIELDS, None)
if base_fields:
if base_fields is not None:
has_dataclass_bases = True
for f in base_fields.values():
fields[f.name] = f