Skip to content

Commit 15ad52f

Browse files
authored
bpo-45489: Update ForwardRef to support | operator. (GH-28991)
1 parent 4ecd119 commit 15ad52f

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

Lib/test/test_typing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2903,6 +2903,12 @@ def test_final_forward_ref(self):
29032903
self.assertNotEqual(gth(Loop, globals())['attr'], Final[int])
29042904
self.assertNotEqual(gth(Loop, globals())['attr'], Final)
29052905

2906+
def test_or(self):
2907+
X = ForwardRef('X')
2908+
# __or__/__ror__ itself
2909+
self.assertEqual(X | "x", Union[X, "x"])
2910+
self.assertEqual("x" | X, Union["x", X])
2911+
29062912

29072913
class OverloadTests(BaseTestCase):
29082914

Lib/typing.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,12 @@ def __eq__(self, other):
719719
def __hash__(self):
720720
return hash(self.__forward_arg__)
721721

722+
def __or__(self, other):
723+
return Union[self, other]
724+
725+
def __ror__(self, other):
726+
return Union[other, self]
727+
722728
def __repr__(self):
723729
return f'ForwardRef({self.__forward_arg__!r})'
724730

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Update :class:`~typing.ForwardRef` to support ``|`` operator. Patch by
2+
Dong-hee Na.

0 commit comments

Comments
 (0)