From abef13ed7953b7b0c278185f9ca5fc2db6bb1f56 Mon Sep 17 00:00:00 2001 From: Ali Hamdan Date: Sat, 22 Jul 2023 21:27:07 +0200 Subject: [PATCH 1/2] Add failing test --- test-data/unit/check-dataclasses.test | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test-data/unit/check-dataclasses.test b/test-data/unit/check-dataclasses.test index 3866442230bf..1e01a72921f7 100644 --- a/test-data/unit/check-dataclasses.test +++ b/test-data/unit/check-dataclasses.test @@ -1892,6 +1892,11 @@ class Two: bar: int t: Two reveal_type(t.__match_args__) # N: Revealed type is "Tuple[Literal['bar']]" +@dataclass +class Empty: + ... +e: Empty +reveal_type(e.__match_args__) # N: Revealed type is "Tuple[]" [builtins fixtures/dataclasses.pyi] [case testDataclassWithoutMatchArgs] From 88c4efd90182dbab521255994282914e91064a1c Mon Sep 17 00:00:00 2001 From: Ali Hamdan Date: Sat, 22 Jul 2023 21:28:55 +0200 Subject: [PATCH 2/2] Fix empty dataclass __match_args__ --- mypy/plugins/dataclasses.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mypy/plugins/dataclasses.py b/mypy/plugins/dataclasses.py index a4babe7faf61..d782acf50af5 100644 --- a/mypy/plugins/dataclasses.py +++ b/mypy/plugins/dataclasses.py @@ -365,7 +365,6 @@ def transform(self) -> bool: and ( "__match_args__" not in info.names or info.names["__match_args__"].plugin_generated ) - and attributes and py_version >= (3, 10) ): str_type = self._api.named_type("builtins.str")