@@ -1081,7 +1081,6 @@ class B(A[str]):
10811081class GoodPropertyOverride(A[str]):
10821082 @property
10831083 def member(self) -> str: ...
1084-
10851084 @member.setter
10861085 def member(self, val: str): ...
10871086
@@ -1092,7 +1091,6 @@ class BadPropertyOverride(A[str]):
10921091 # N: Subclass: \
10931092 # N: int
10941093 def member(self) -> int: ...
1095-
10961094 @member.setter
10971095 def member(self, val: int): ...
10981096
@@ -1103,7 +1101,47 @@ class BadGenericPropertyOverride(A[str], Generic[T]):
11031101 # N: Subclass: \
11041102 # N: T
11051103 def member(self) -> T: ...
1104+ @member.setter
1105+ def member(self, val: T): ...
1106+ [builtins fixtures/property.pyi]
1107+
1108+ [case testParameterizedGenericPropertyOverrideWithProperty]
1109+ from typing import TypeVar, Generic
1110+
1111+ T = TypeVar("T")
1112+
1113+ class A(Generic[T]):
1114+ @property
1115+ def member(self) -> T: ...
1116+ @member.setter
1117+ def member(self, val: T): ...
1118+
1119+ class B(A[str]):
1120+ member: str
1121+
1122+ class GoodPropertyOverride(A[str]):
1123+ @property
1124+ def member(self) -> str: ...
1125+ @member.setter
1126+ def member(self, val: str): ...
1127+
1128+ class BadPropertyOverride(A[str]):
1129+ @property # E: Signature of "member" incompatible with supertype "A" \
1130+ # N: Superclass: \
1131+ # N: str \
1132+ # N: Subclass: \
1133+ # N: int
1134+ def member(self) -> int: ...
1135+ @member.setter
1136+ def member(self, val: int): ...
11061137
1138+ class BadGenericPropertyOverride(A[str], Generic[T]):
1139+ @property # E: Signature of "member" incompatible with supertype "A" \
1140+ # N: Superclass: \
1141+ # N: str \
1142+ # N: Subclass: \
1143+ # N: T
1144+ def member(self) -> T: ...
11071145 @member.setter
11081146 def member(self, val: T): ...
11091147[builtins fixtures/property.pyi]
@@ -1118,14 +1156,12 @@ class A:
11181156class GoodPropertyOverride(A):
11191157 @property
11201158 def member(self) -> "GoodPropertyOverride": ...
1121-
11221159 @member.setter
11231160 def member(self, val: "GoodPropertyOverride"): ...
11241161
11251162class GoodPropertyOverrideSelf(A):
11261163 @property
11271164 def member(self) -> Self: ...
1128-
11291165 @member.setter
11301166 def member(self, val: Self): ...
11311167[builtins fixtures/property.pyi]
@@ -1146,7 +1182,6 @@ class B(A["B"]):
11461182class GoodPropertyOverride(A["GoodPropertyOverride"]):
11471183 @property
11481184 def member(self) -> Self: ...
1149-
11501185 @member.setter
11511186 def member(self, val: Self): ...
11521187[builtins fixtures/property.pyi]
0 commit comments