def test_named_tuple_type_refinement(self):
from typing import List, Dict, Optional, Tuple
class MyCoolNamedTuple(NamedTuple):
a : int
b : float
c : Optional[int]
@torch.jit.script
def foo(x: MyCoolNamedTuple) -> int:
if x.c is not None:
return x.c
else:
return -1
mnt = MyCoolNamedTuple(42, 420.0, 42)
self.assertEqual(foo(mnt), mnt.c)
This does not work currently.