make these tests consistent

This commit is contained in:
Douglas Creager 2025-12-15 14:04:15 -05:00
parent 56b6f26f7b
commit 9b5709f34b
2 changed files with 9 additions and 5 deletions

View File

@ -564,7 +564,7 @@ from typing_extensions import overload, Generic, TypeVar
from ty_extensions import generic_context, into_callable from ty_extensions import generic_context, into_callable
T = TypeVar("T") T = TypeVar("T")
U = TypeVar("U") U = TypeVar("U", covariant=True)
class C(Generic[T]): class C(Generic[T]):
@overload @overload
@ -614,9 +614,9 @@ reveal_type(generic_context(D))
# revealed: ty_extensions.GenericContext[T@D, U@D] # revealed: ty_extensions.GenericContext[T@D, U@D]
reveal_type(generic_context(into_callable(D))) reveal_type(generic_context(into_callable(D)))
reveal_type(D("string")) # revealed: D[str, str] reveal_type(D("string")) # revealed: D[str, Literal["string"]]
reveal_type(D(1)) # revealed: D[str, int] reveal_type(D(1)) # revealed: D[str, Literal[1]]
reveal_type(D(1, "string")) # revealed: D[int, str] reveal_type(D(1, "string")) # revealed: D[int, Literal["string"]]
``` ```
### Synthesized methods with dataclasses ### Synthesized methods with dataclasses

View File

@ -541,6 +541,10 @@ C[None](b"bytes") # error: [no-matching-overload]
C[None](12) C[None](12)
class D[T, U]: class D[T, U]:
# we need to use the type variable or else the class is bivariant in T, and
# specializations become meaningless
x: T
@overload @overload
def __init__(self: "D[str, U]", u: U) -> None: ... def __init__(self: "D[str, U]", u: U) -> None: ...
@overload @overload
@ -554,7 +558,7 @@ reveal_type(generic_context(into_callable(D)))
reveal_type(D("string")) # revealed: D[str, Literal["string"]] reveal_type(D("string")) # revealed: D[str, Literal["string"]]
reveal_type(D(1)) # revealed: D[str, Literal[1]] reveal_type(D(1)) # revealed: D[str, Literal[1]]
reveal_type(D(1, "string")) # revealed: D[Literal[1], Literal["string"]] reveal_type(D(1, "string")) # revealed: D[int, Literal["string"]]
``` ```
### Synthesized methods with dataclasses ### Synthesized methods with dataclasses