Skip to content

Commit 6b94e62

Browse files
authored
[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.
1 parent db80feb commit 6b94e62

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

crates/ty_python_semantic/resources/mdtest/protocols.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ static_assert(is_assignable_to(FooSub, HasX))
630630
static_assert(not is_subtype_of(FooSub, HasXY))
631631
static_assert(not is_assignable_to(FooSub, HasXY))
632632

633-
class FooBool(Foo):
633+
class FooBool:
634634
x: bool
635635

636636
static_assert(not is_subtype_of(FooBool, HasX))

0 commit comments

Comments
 (0)