Skip to content

Commit 2e0b868

Browse files
authored
Revert "Have namedtuple __replace__ return Self" (#17496)
Reverts #17475
1 parent ec00fb8 commit 2e0b868

File tree

2 files changed

+2
-18
lines changed

2 files changed

+2
-18
lines changed

mypy/semanal_namedtuple.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@
5757
TYPED_NAMEDTUPLE_NAMES,
5858
AnyType,
5959
CallableType,
60-
Instance,
6160
LiteralType,
6261
TupleType,
6362
Type,
@@ -632,10 +631,9 @@ def add_method(
632631
args=[Argument(var, var.type, EllipsisExpr(), ARG_NAMED_OPT) for var in vars],
633632
)
634633
if self.options.python_version >= (3, 13):
635-
type_vars = [tv for tv in info.defn.type_vars]
636634
add_method(
637635
"__replace__",
638-
ret=Instance(info, type_vars),
636+
ret=None,
639637
args=[Argument(var, var.type, EllipsisExpr(), ARG_NAMED_OPT) for var in vars],
640638
)
641639

test-data/unit/check-namedtuple.test

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1407,23 +1407,9 @@ from typing import NamedTuple
14071407
class A(NamedTuple):
14081408
x: int
14091409

1410-
replaced = A(x=0).__replace__(x=1)
1411-
reveal_type(replaced) # N: Revealed type is "__main__.A"
1412-
1410+
A(x=0).__replace__(x=1)
14131411
A(x=0).__replace__(x="asdf") # E: Argument "x" to "__replace__" of "A" has incompatible type "str"; expected "int"
14141412
A(x=0).__replace__(y=1) # E: Unexpected keyword argument "y" for "__replace__" of "A"
1415-
1416-
from typing import TypeVar, Generic
1417-
1418-
T = TypeVar("T")
1419-
1420-
class GenericA(NamedTuple, Generic[T]):
1421-
x: T
1422-
1423-
replaced_2 = GenericA(x=0).__replace__(x=1)
1424-
reveal_type(replaced_2) # N: Revealed type is "__main__.GenericA"
1425-
GenericA(x=0).__replace__(x="abc") # E: Argument "x" to "__replace__" of "GenericA" has incompatible type "str"; expected "int"
1426-
14271413
[builtins fixtures/tuple.pyi]
14281414
[typing fixtures/typing-namedtuple.pyi]
14291415

0 commit comments

Comments
 (0)