File tree Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Expand file tree Collapse file tree 1 file changed +25
-0
lines changed Original file line number Diff line number Diff line change 55
66
77import asyncio
8+ from dataclasses import dataclass
89
910import pytest
1011
@@ -252,3 +253,27 @@ async def test_broadcast_receiver_drop() -> None:
252253
253254 assert len (chan ._receivers ) == 1
254255 # pylint: enable=protected-access
256+
257+
258+ async def test_type_variance () -> None :
259+ """Ensure that the type variance of Broadcast is working."""
260+
261+ @dataclass
262+ class Broader :
263+ """A broad class."""
264+
265+ value : int
266+
267+ class Actual (Broader ):
268+ """Actual class."""
269+
270+ class Narrower (Actual ):
271+ """A narrower class."""
272+
273+ chan = Broadcast [Actual ](name = "input-chan" )
274+
275+ sender : Sender [Narrower ] = chan .new_sender ()
276+ receiver : Receiver [Broader ] = chan .new_receiver ()
277+
278+ await sender .send (Narrower (10 ))
279+ assert (await receiver .receive ()).value == 10
You can’t perform that action at this time.
0 commit comments