Skip to content

bad-param-name-override false positive for Sequence.__contains__ #2609

@grievejia

Description

@grievejia

Describe the Bug

Minimal repro:

# Pyrefly reports "Class member X overrides parent class Y in an inconsistent
# manner -- Got parameter name A, expected B" even when the parameters are
# positional-only in the parent class (so the name does not matter for
# Liskov substitution).

# --------------------------------------------------------------------------
# In typeshed, Sequence.__contains__ is:
#   def __contains__(self, value: object, /) -> bool: ...
# The `/` makes `value` positional-only, so renaming it to `item` is fine.
# --------------------------------------------------------------------------


from typing import Sequence

class RouteTable(Sequence[str]):

    # pyrefly FP: Got parameter name `item`, expected `value`
    def __contains__(self, item: object) -> bool: ...

Sandbox Link

https://pyrefly.org/sandbox/?project=N4IgZglgNgpgziAXKOBDAdgEwEYHsAeAdAA4CeSIAxAAQAKpATjGFKdU8bgwC5zUA6IAMJRUcPgFsYE7DAbUAGtVwA3OQwiZ41Yqibpu1AMajx1AJrUI6ahivojudHAhxuMA-3Q0JGdHOoAWkDqAHFcQ10GVCl3eXQYmGoAQQAaahh8Yhgjd0xqACFBDLUbAHcACw9qbiqdPUS4vj0YLxpOF24IJ1QoQKdWexq6qI9DEzE%2BAAo4XGGkhKlqTFxtdAjqX2446jAuNuoAGVcAa1VqOABXbDcIbkuupwBKQi8D4I-Pr%2B%2Bf37--gF-A4ASRs3FI2TgVUw6QAyjAAI6XDxGGCEAD66McBlQ1jgmKscEQB2oy2Y1Ex2O4uOcmJmMCgYHSKl6yMQymwACsctx0gB6J5BAB81DwuCg7MIUoOABU6gADPnyzaoE7aeUsqDI5UdO7dBJ9AakdKzdgeGLWADmVkM3Dm8ru0mVrl21jR70Bnq93p9Hze6C8YAYuAkNQhVqsEk4PGo8KRKNaAYcpj4ACVcA8YDLUNhYFM48iHDAANpuBgAXSexKTpNJ7UYzEGADFaOzwpEGrEAoskg73BJ5elMtlcjB8hrWTB5V5a2SwBSsU5qXi6XAGUybdJ2bguTzBYERWKJdQpYQQKkQA9oHASOREFRqABVLpQO5sMCXByPZz%2BrTzvYMFs6LoJcMhyFM%2BDstY3D7iKZbVrOTD3AwNhgIIAByoGyAw7LAPgAC%2BgheOeIBkEwLCkIQdoSFAFA0PQ5GDGgWB4PgxhOJAlqXNE36vN4sYwEkFTbMQRJ8nyZGNpRXCWnyHh8isRhwHy2KcdxqDfnyuxcLYLLQDmsDsegak8fqyjEN%2BN5eGQtROIEagMC4TjUAAvAIIAAMyEAAjAATER6AgPhF6oLkEBqE20AwBQzE4AQt5BUAA

(Only applicable for extension issues) IDE Information

No response

Metadata

Metadata

Assignees

Labels

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

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions