File tree Expand file tree Collapse file tree 2 files changed +6
-4
lines changed Expand file tree Collapse file tree 2 files changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -680,7 +680,8 @@ def collect_attributes(self) -> list[DataclassAttribute] | None:
680680 )
681681
682682 current_attr_names .add (lhs .name )
683- init_type = self ._infer_dataclass_attr_init_type (sym , lhs .name , stmt )
683+ with state .strict_optional_set (self ._api .options .strict_optional ):
684+ init_type = self ._infer_dataclass_attr_init_type (sym , lhs .name , stmt )
684685 found_attrs [lhs .name ] = DataclassAttribute (
685686 name = lhs .name ,
686687 alias = alias ,
Original file line number Diff line number Diff line change @@ -1019,18 +1019,19 @@ class Desc:
10191019 def __get__(self, instance: object, owner: Any) -> str: ...
10201020 def __get__(self, instance, owner): ...
10211021
1022- def __set__(self, instance: Any, value: bytes) -> None: ...
1022+ def __set__(self, instance: Any, value: bytes | None ) -> None: ...
10231023
10241024@my_dataclass
10251025class C:
10261026 x: Desc
10271027
10281028c = C(x=b'x')
1029- C(x=1) # E: Argument "x" to "C" has incompatible type "int"; expected "bytes"
1029+ c = C(x=None)
1030+ C(x=1) # E: Argument "x" to "C" has incompatible type "int"; expected "Optional[bytes]"
10301031reveal_type(c.x) # N: Revealed type is "builtins.str"
10311032reveal_type(C.x) # N: Revealed type is "builtins.int"
10321033c.x = b'x'
1033- c.x = 1 # E: Incompatible types in assignment (expression has type "int", variable has type "bytes")
1034+ c.x = 1 # E: Incompatible types in assignment (expression has type "int", variable has type "Optional[ bytes] ")
10341035
10351036[typing fixtures/typing-full.pyi]
10361037[builtins fixtures/dataclasses.pyi]
You can’t perform that action at this time.
0 commit comments