add base to rx field cases

This commit is contained in:
Khaleel Al-Adhami 2024-11-04 11:12:21 -08:00
parent c2065068b9
commit 656ddb6d53
2 changed files with 8 additions and 7 deletions

View File

@ -2895,6 +2895,8 @@ def dispatch(
V = TypeVar("V")
BASE_TYPE = TypeVar("BASE_TYPE", bound=Base)
class Field(Generic[T]):
"""Shadow class for Var to allow for type hinting in the IDE."""
@ -2931,6 +2933,11 @@ class Field(Generic[T]):
self: Field[Dict[str, V]], instance: None, owner
) -> ObjectVar[Dict[str, V]]: ...
@overload
def __get__(
self: Field[BASE_TYPE], instance: None, owner
) -> ObjectVar[BASE_TYPE]: ...
@overload
def __get__(self, instance: None, owner) -> Var[T]: ...

View File

@ -101,12 +101,6 @@ def test_typing() -> None:
var = ObjectState.bare.to(ObjectVar)
_ = assert_type(var, ObjectVar[Bare])
var = ObjectState.base.to(ObjectVar, Base)
_ = assert_type(var, ObjectVar[Base])
# Base
var = ObjectState.base.to(ObjectVar)
_ = assert_type(var, ObjectVar[Base])
var = ObjectState.base.to(LiteralObjectVar, Base)
var = ObjectState.base
_ = assert_type(var, ObjectVar[Base])