Skip to content

Protocols don't support descriptors #5481

Closed
@ilevkivskyi

Description

@ilevkivskyi

Consider this code:

class Descr:
    def __get__(self, inst: Any, owner: Any) -> int: ...

class Proto(Protocol):
    x: int

class C:
    x = Descr()

a: Proto = C()

I think it should be allowed. This can be done by simply re-using the logic in analyze_member_access in checkmember.py, see also #5136.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions