Describe the Bug
Would you be open to adding special casing for the _replace method in a NamedTuple?
The idea is to statically catch errors like below:
from typing import NamedTuple
class Point(NamedTuple):
x: int
y: int
Point(1, 2)._replace(z=5) # not flagged
Point(1, 2)._replace(x="str") # not flagged
This would help in work with more complex NamedTuples in a safer / more succinct way.
Note: it was quite easy to add support for this to mypy (see python/mypy#17259), but obviously it may be very different given pyrefly's codebase
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN0A5VDRiYAKgFdisADro5AYyio4cOgAVcrBgAohI8VNgBKRHLoW6%2BRJ3QNzl0je1y5m7ToCMAGjoAmY0IAfUoYaVQFGB0ALwBeAFZjS0sAYjp0XH4wZTY2UTctOy9fAODQ8MidfFiZEDgGSlqkujSMrJy8zBBvEDJQ7NJCBlooCjT1Un6oUjo0LDx8OgVcdEg2CUpUBggVwjk0gGUYGDoACwYGYjhEAHobvpgBwl42G5h0G8xcBTgb5dWIOtNtsVjc6GBeHRUAA3VDQVDYWBLFZrDZbHboOi4Ygg9BwPboMgMU4rAC00JglDgGLosTotQAzIRPH5anIANqU6hUgC6cgk6C4PD4olJmAgoQU2wptLoAHJARlQnK5G1SaEAI4SCWigDWMFIpIikVUsrlAHdUJR0Cr0CAAL49CLSmAAMWgMAocxwBBI5HtQA
(Only applicable for extension issues) IDE Information
No response
Describe the Bug
Would you be open to adding special casing for the
_replacemethod in aNamedTuple?The idea is to statically catch errors like below:
This would help in work with more complex
NamedTuples in a safer / more succinct way.Note: it was quite easy to add support for this to mypy (see python/mypy#17259), but obviously it may be very different given pyrefly's codebase
Sandbox Link
https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeS4ATrgLYAEALqcROgOZ0Q3G6UN0A5VDRiYAKgFdisADro5AYyio4cOgAVcrBgAohI8VNgBKRHLoW6%2BRJ3QNzl0je1y5m7ToCMAGjoAmY0IAfUoYaVQFGB0ALwBeAFZjS0sAYjp0XH4wZTY2UTctOy9fAODQ8MidfFiZEDgGSlqkujSMrJy8zBBvEDJQ7NJCBlooCjT1Un6oUjo0LDx8OgVcdEg2CUpUBggVwjk0gGUYGDoACwYGYjhEAHobvpgBwl42G5h0G8xcBTgb5dWIOtNtsVjc6GBeHRUAA3VDQVDYWBLFZrDZbHboOi4Ygg9BwPboMgMU4rAC00JglDgGLosTotQAzIRPH5anIANqU6hUgC6cgk6C4PD4olJmAgoQU2wptLoAHJARlQnK5G1SaEAI4SCWigDWMFIpIikVUsrlAHdUJR0Cr0CAAL49CLSmAAMWgMAocxwBBI5HtQA
(Only applicable for extension issues) IDE Information
No response