From bc1eb911e609cb2da1ab21d7789aacf56f58b3e5 Mon Sep 17 00:00:00 2001 From: Oxan van Leeuwen Date: Thu, 19 Oct 2023 22:01:17 +0200 Subject: [PATCH] Test PEP 695 type parameters --- tests/test_py312.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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)