mirror of
https://github.com/astral-sh/ruff.git
synced 2025-10-16 21:38:11 +00:00
[ty] Fix accidental Liskov violation in protocol tests (#20763)
## Summary We have the following test in `protocols.md`: ```py class HasX(Protocol): x: int # […] class Foo: x: int # […] class FooBool(Foo): x: bool static_assert(not is_subtype_of(FooBool, HasX)) static_assert(not is_assignable_to(FooBool, HasX)) ``` If `Foo` was indeed intended to be a base class of `FooBool`, then `x: bool` should be reported as a Liskov violation. And then it's a matter of definition whether or not these assertions should hold true or not (should the incorrect override take precedence or not?). So it looks to me like this is just an oversight, probably a copy-paste error from another test right before it, where `FooSub` is indeed intended to be a subclass of `Foo`. I am fixing this because this test started to fail on a branch of mine that changes how attribute lookup in inheritance chains works.
This commit is contained in:
parent
db80febb6b
commit
6b94e620fe
1 changed files with 1 additions and 1 deletions
|
@ -630,7 +630,7 @@ static_assert(is_assignable_to(FooSub, HasX))
|
|||
static_assert(not is_subtype_of(FooSub, HasXY))
|
||||
static_assert(not is_assignable_to(FooSub, HasXY))
|
||||
|
||||
class FooBool(Foo):
|
||||
class FooBool:
|
||||
x: bool
|
||||
|
||||
static_assert(not is_subtype_of(FooBool, HasX))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue