blob: 7dc852f1d733cb0303790e85511364f2f354146e [file]
[case updateDataclassTransformParameterViaDecorator]
# flags: --python-version 3.11
from m import my_dataclass
@my_dataclass
class Foo:
x: int
foo = Foo(1)
foo.x = 2
[file m.py]
from typing import dataclass_transform
@dataclass_transform(frozen_default=False)
def my_dataclass(cls): return cls
[file m.py.2]
from typing import dataclass_transform
@dataclass_transform(frozen_default=True)
def my_dataclass(cls): return cls
[typing fixtures/typing-full.pyi]
[builtins fixtures/dataclasses.pyi]
[out]
==
main:9: error: Property "x" defined in "Foo" is read-only
[case updateDataclassTransformParameterViaParentClass]
# flags: --python-version 3.11
from m import Dataclass
class Foo(Dataclass):
x: int
foo = Foo(1)
foo.x = 2
[file m.py]
from typing import dataclass_transform
@dataclass_transform(frozen_default=False)
class Dataclass: ...
[file m.py.2]
from typing import dataclass_transform
@dataclass_transform(frozen_default=True)
class Dataclass: ...
[typing fixtures/typing-full.pyi]
[builtins fixtures/dataclasses.pyi]
[out]
==
main:8: error: Property "x" defined in "Foo" is read-only
[case updateBaseClassToUseDataclassTransform]
# flags: --python-version 3.11
from m import A
class B(A):
y: int
B(x=1, y=2)
[file m.py]
class Dataclass: ...
class A(Dataclass):
x: int
[file m.py.2]
from typing import dataclass_transform
@dataclass_transform()
class Dataclass: ...
class A(Dataclass):
x: int
[typing fixtures/typing-full.pyi]
[builtins fixtures/dataclasses.pyi]
[out]
main:7: error: Unexpected keyword argument "x" for "B"
builtins.pyi:12: note: "B" defined here
main:7: error: Unexpected keyword argument "y" for "B"
builtins.pyi:12: note: "B" defined here
==