diff --git a/tests/test_py312.py b/tests/test_py312.py index 691d70e..57f7920 100644 --- a/tests/test_py312.py +++ b/tests/test_py312.py @@ -21,3 +21,15 @@ class Hinted: self.assertEqual(hints['a'], str) self.assertEqual(hints['b'], list[str]) self.assertEqual(typing.get_origin(hints['c']), list) + + def test_typevar_pep695(self): + type GenericList[T: str] = list[T] + def fn() -> GenericList: + pass + + tp = typing_utils.get_resolved_type_hints(fn)['return'] + + self.assertTrue(typing_utils.is_iterable_type(tp)) + element_type = typing_utils.get_iterable_element_type(tp) + self.assertTrue(typing_utils.is_type_variable(element_type)) + self.assertEqual(typing_utils.get_type_variable_substitution(element_type), str)