[ty] Enforce that an attribute on a class X must be callable in order to satisfy a member on a protocol P (#20142)

## Summary

Small, incremental progress towards checking the types of method
members.

## Test Plan

Added an mdtest
This commit is contained in:
Alex Waygood 2025-08-29 08:31:26 +01:00 committed by GitHub
parent 4ca38b2974
commit 0d7ed32494
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 6 additions and 1 deletions

View file

@ -1704,7 +1704,11 @@ class NotSubtype:
def m(self, x: int) -> int:
return 42
class DefinitelyNotSubtype:
m = None
static_assert(is_subtype_of(NominalSubtype, P))
static_assert(not is_subtype_of(DefinitelyNotSubtype, P))
# TODO: should pass
static_assert(not is_subtype_of(NotSubtype, P)) # error: [static-assert-error]