Skip to content

Commit a3ce6d5

Browse files
authored
Fix swapped errors for frozen/non-frozen dataclass inheritance (python#18918)
There is a mix-up in error messages related to frozen and non-frozen dataclass inheritance.
1 parent 616e186 commit a3ce6d5

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

mypy/plugins/dataclasses.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -359,12 +359,12 @@ def transform(self) -> bool:
359359

360360
if decorator_arguments["frozen"]:
361361
if any(not parent["frozen"] for parent in parent_decorator_arguments):
362-
self._api.fail("Cannot inherit frozen dataclass from a non-frozen one", info)
362+
self._api.fail("Frozen dataclass cannot inherit from a non-frozen dataclass", info)
363363
self._propertize_callables(attributes, settable=False)
364364
self._freeze(attributes)
365365
else:
366366
if any(parent["frozen"] for parent in parent_decorator_arguments):
367-
self._api.fail("Cannot inherit non-frozen dataclass from a frozen one", info)
367+
self._api.fail("Non-frozen dataclass cannot inherit from a frozen dataclass", info)
368368
self._propertize_callables(attributes)
369369

370370
if decorator_arguments["slots"]:

test-data/unit/check-dataclasses.test

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,15 @@ class FrozenBase:
260260
pass
261261

262262
@dataclass
263-
class BadNormalDerived(FrozenBase): # E: Cannot inherit non-frozen dataclass from a frozen one
263+
class BadNormalDerived(FrozenBase): # E: Non-frozen dataclass cannot inherit from a frozen dataclass
264264
pass
265265

266266
@dataclass
267267
class NormalBase:
268268
pass
269269

270270
@dataclass(frozen=True)
271-
class BadFrozenDerived(NormalBase): # E: Cannot inherit frozen dataclass from a non-frozen one
271+
class BadFrozenDerived(NormalBase): # E: Frozen dataclass cannot inherit from a non-frozen dataclass
272272
pass
273273

274274
[builtins fixtures/dataclasses.pyi]

0 commit comments

Comments
 (0)