Skip to content

Commit c6169b6

Browse files
committed
Use self._reason as error position instead
1 parent 1ed3f69 commit c6169b6

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

mypy/plugins/dataclasses.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ def _add_dunder_hash(self, is_hashable: bool) -> None:
472472
self._api.fail(
473473
"Incompatible override of '__hash__': dataclasses without"
474474
" 'frozen' or 'unsafe_hash' have '__hash__' set to None",
475-
self._cls,
475+
self._reason,
476476
)
477477
add_attribute_to_class(
478478
self._api, self._cls, "__hash__", typ=NoneType(), is_classvar=True

test-data/unit/check-dataclasses.test

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,9 +259,8 @@ from dataclasses import dataclass
259259
class FrozenBase:
260260
pass
261261

262-
@dataclass
263-
class BadNormalDerived(FrozenBase): # E: Incompatible override of '__hash__': dataclasses without 'frozen' or 'unsafe_hash' have '__hash__' set to None \
264-
# E: Non-frozen dataclass cannot inherit from a frozen dataclass
262+
@dataclass # E: Incompatible override of '__hash__': dataclasses without 'frozen' or 'unsafe_hash' have '__hash__' set to None
263+
class BadNormalDerived(FrozenBase): # E: Non-frozen dataclass cannot inherit from a frozen dataclass
265264
pass
266265

267266
@dataclass
@@ -277,6 +276,12 @@ class BadFrozenDerived(NormalBase): # E: Signature of "__hash__" incompatible w
277276
# E: Frozen dataclass cannot inherit from a non-frozen dataclass
278277
pass
279278

279+
280+
281+
282+
283+
284+
280285
[builtins fixtures/dataclasses.pyi]
281286

282287
[case testDataclassesFields]
@@ -2634,8 +2639,8 @@ class Good(Hashable):
26342639
class AlsoGood(Hashable):
26352640
a: int
26362641

2637-
@dataclasses.dataclass()
2638-
class Bad(Hashable): # E: Incompatible override of '__hash__': dataclasses without 'frozen' or 'unsafe_hash' have '__hash__' set to None
2642+
@dataclasses.dataclass() # E: Incompatible override of '__hash__': dataclasses without 'frozen' or 'unsafe_hash' have '__hash__' set to None
2643+
class Bad(Hashable):
26392644
a: int
26402645

26412646
Good(4)

0 commit comments

Comments
 (0)