Skip to content

Support inline namedtuple definition #2811

@grievejia

Description

@grievejia

Describe the Bug

Minimal repro:

import collections
CustomDevice = collections.namedtuple("FakeDevice", ["type", "index"])(
    "lazy-caster", 0  # pyrefly FP: Expected 1 positional argument, got 2 in function `tuple.__new__`
)

Both pyright and ty have better understanding of the pattern and won't report the type error.

Sandbox Link

https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeSIEAtsbgE4AuABAMa5SwsMS7pwA66AMIBXOA1xUAIjABuEFjCYBeVu07decQulRUYmBiOKwAFPxAAxVAGsYM%2BYosAaJgG0LDUsRgumFiCwYfAsAXQBKc3QmGP8QKFQAL1IAWhZUcRg6PwAGQXCQZxARbihtMgoAYiYAVVKILyYwEXQuHj5BQUwYMCb6KlQGAH10ESpsLNN8RCZAhnCmFIA%2BJnE6REFYpjoYIzposAsAOTGJ9aZgfABfC0FCkDIdsChSQgkqKCqmAAVSJ5fVhgcAQ1OhIABzER0QbtQiCaoAZRgSgAFgwGMQ4IgAPTYx49F6Eejg7EwdDYzC4FhwbFsMEQSHQzTkvp0JioWSoaCobCwUEQqEw3hMXDEZnaQRkBgo3gpWRZODtFRxADMhAAjAAmW7oEBXIqoNryyzQGAUNBYPBECpXIA

(Only applicable for extension issues) IDE Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    typecheckingusabilityUsability & readiness issues identified with running Pyrefly on top OSS projects

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions