2Tests validation of frozen dataclass instances.
5# Specification: https://peps.python.org/pep-0557/#frozen-instances
7from dataclasses import dataclass
16dc1.a = 1 # E: dataclass is frozen
[invalid-assignment] Property `a` defined in `DC1` is read-only
17dc1.b = "" # E: dataclass is frozen
[invalid-assignment] Property `b` defined in `DC1` is read-only
20# This should generate an error because a non-frozen dataclass
21# cannot inherit from a frozen dataclass.
23class DC2(DC1): # E[DC2]
Tag 'DC2'
[invalid-frozen-dataclass-subclass] Non-frozen dataclass `DC2` cannot inherit from frozen dataclass `DC1`
30# This should generate an error because a frozen dataclass
31# cannot inherit from a non-frozen dataclass.
32@dataclass(frozen=True) # E[DC4]
33class DC4(DC3): # E[DC4]
Tag 'DC4'
[invalid-frozen-dataclass-subclass] Frozen dataclass `DC4` cannot inherit from non-frozen dataclass `DC3`
37@dataclass(frozen=True)
39 # This should be allowed because attributes within a frozen
40 # dataclass are covariant rather than invariant.