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

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions