Closed
Description
Bug Report
I'm getting a false positive from the following example
from typing import Protocol
from typing_extensions import Self
class P(Protocol):
# Removing the property makes the problem disappear
@property
def x(self) -> int: ...
def clone(self) -> Self: ...
class A:
def clone(self) -> Self:
return self
class B(A, P):
@property
def x(self) -> int:
return 100
main.py:18: error: Definition of "clone" in base class "A" is incompatible with definition in base class "P" [misc]
Obviously, A.clone
does not actually clone the instance, but that is left out for clarity.
The false positive is not reported when I remove the property x
from the protocol P
.
To Reproduce
https://mypy-play.net/?mypy=latest&python=3.12&gist=fe15d8bc18aa7b61feb3e56fce615f47