classes icon indicating copy to clipboard operation
classes copied to clipboard

Support `Literal` types

Open sobolevn opened this issue 4 years ago • 0 comments

After we have delegate in-place we can use Literal types.

But, now they are not supported. Ideally, something like this should work:

from classes import typeclass, AssociatedType, Supports
from typing_extensions import Literal

class SomeDelegate(object):
    ...  # TODO: write proper `__instancecheck__`

class A(AssociatedType):
    ...

@typeclass(A)
def some(instance) -> int:
    ...

@some.instance(Literal[1], delegate=SomeDelegate)
def _some_tuple(instance: Literal[1]) -> int:
    return instance

def test(i: Supports[A]):
    return some(i)

some(1)

sobolevn avatar Jul 13 '21 11:07 sobolevn