these are legit

This commit is contained in:
Douglas Creager 2025-12-11 16:55:15 -05:00
parent fef0ba39d3
commit 0966bca3f1
2 changed files with 8 additions and 16 deletions

View File

@ -89,13 +89,11 @@ def takes_in_protocol(x: CanIndex[T]) -> T:
def deep_list(x: list[str]) -> None: def deep_list(x: list[str]) -> None:
reveal_type(takes_in_list(x)) # revealed: list[str] reveal_type(takes_in_list(x)) # revealed: list[str]
# TODO: revealed: str reveal_type(takes_in_protocol(x)) # revealed: str
reveal_type(takes_in_protocol(x)) # revealed: Unknown
def deeper_list(x: list[set[str]]) -> None: def deeper_list(x: list[set[str]]) -> None:
reveal_type(takes_in_list(x)) # revealed: list[set[str]] reveal_type(takes_in_list(x)) # revealed: list[set[str]]
# TODO: revealed: set[str] reveal_type(takes_in_protocol(x)) # revealed: set[str]
reveal_type(takes_in_protocol(x)) # revealed: Unknown
def deep_explicit(x: ExplicitlyImplements[str]) -> None: def deep_explicit(x: ExplicitlyImplements[str]) -> None:
reveal_type(takes_in_protocol(x)) # revealed: str reveal_type(takes_in_protocol(x)) # revealed: str
@ -116,12 +114,10 @@ class Sub(list[int]): ...
class GenericSub(list[T]): ... class GenericSub(list[T]): ...
reveal_type(takes_in_list(Sub())) # revealed: list[int] reveal_type(takes_in_list(Sub())) # revealed: list[int]
# TODO: revealed: int reveal_type(takes_in_protocol(Sub())) # revealed: int
reveal_type(takes_in_protocol(Sub())) # revealed: Unknown
reveal_type(takes_in_list(GenericSub[str]())) # revealed: list[str] reveal_type(takes_in_list(GenericSub[str]())) # revealed: list[str]
# TODO: revealed: str reveal_type(takes_in_protocol(GenericSub[str]())) # revealed: str
reveal_type(takes_in_protocol(GenericSub[str]())) # revealed: Unknown
class ExplicitSub(ExplicitlyImplements[int]): ... class ExplicitSub(ExplicitlyImplements[int]): ...
class ExplicitGenericSub(ExplicitlyImplements[T]): ... class ExplicitGenericSub(ExplicitlyImplements[T]): ...

View File

@ -84,13 +84,11 @@ def takes_in_protocol[T](x: CanIndex[T]) -> T:
def deep_list(x: list[str]) -> None: def deep_list(x: list[str]) -> None:
reveal_type(takes_in_list(x)) # revealed: list[str] reveal_type(takes_in_list(x)) # revealed: list[str]
# TODO: revealed: str reveal_type(takes_in_protocol(x)) # revealed: str
reveal_type(takes_in_protocol(x)) # revealed: Unknown
def deeper_list(x: list[set[str]]) -> None: def deeper_list(x: list[set[str]]) -> None:
reveal_type(takes_in_list(x)) # revealed: list[set[str]] reveal_type(takes_in_list(x)) # revealed: list[set[str]]
# TODO: revealed: set[str] reveal_type(takes_in_protocol(x)) # revealed: set[str]
reveal_type(takes_in_protocol(x)) # revealed: Unknown
def deep_explicit(x: ExplicitlyImplements[str]) -> None: def deep_explicit(x: ExplicitlyImplements[str]) -> None:
reveal_type(takes_in_protocol(x)) # revealed: str reveal_type(takes_in_protocol(x)) # revealed: str
@ -111,12 +109,10 @@ class Sub(list[int]): ...
class GenericSub[T](list[T]): ... class GenericSub[T](list[T]): ...
reveal_type(takes_in_list(Sub())) # revealed: list[int] reveal_type(takes_in_list(Sub())) # revealed: list[int]
# TODO: revealed: int reveal_type(takes_in_protocol(Sub())) # revealed: int
reveal_type(takes_in_protocol(Sub())) # revealed: Unknown
reveal_type(takes_in_list(GenericSub[str]())) # revealed: list[str] reveal_type(takes_in_list(GenericSub[str]())) # revealed: list[str]
# TODO: revealed: str reveal_type(takes_in_protocol(GenericSub[str]())) # revealed: str
reveal_type(takes_in_protocol(GenericSub[str]())) # revealed: Unknown
class ExplicitSub(ExplicitlyImplements[int]): ... class ExplicitSub(ExplicitlyImplements[int]): ...
class ExplicitGenericSub[T](ExplicitlyImplements[T]): ... class ExplicitGenericSub[T](ExplicitlyImplements[T]): ...