File tree Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Expand file tree Collapse file tree 1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -1617,6 +1617,32 @@ def test_evaluate_with_type_params_and_scope_conflict(self):
16171617 TypeParamsSample .TypeParamsAlias2 ,
16181618 )
16191619
1620+ def test_evaluate_local_generic (self ):
1621+ class Cls :
1622+ x : alias
1623+ y : alias2
1624+ z : alias3
1625+
1626+ fwdref = ForwardRef ("alias[int]" , owner = Cls )
1627+ with self .assertRaises (NameError ):
1628+ fwdref .evaluate ()
1629+
1630+ alias = list
1631+ self .assertEqual (fwdref .evaluate (), list [int ])
1632+
1633+ del alias
1634+ fwdref = ForwardRef ("alias[alias]" , owner = Cls )
1635+ alias = list
1636+ self .assertEqual (fwdref .evaluate (), list [list ])
1637+
1638+ del alias
1639+ fwdref = ForwardRef ("alias[alias2, alias3]" , owner = Cls )
1640+ alias = dict
1641+ alias2 = int
1642+ alias3 = str
1643+ self .assertEqual (fwdref .evaluate (), dict [int , str ])
1644+
1645+
16201646 def test_fwdref_with_module (self ):
16211647 self .assertIs (ForwardRef ("Format" , module = "annotationlib" ).evaluate (), Format )
16221648 self .assertIs (
You can’t perform that action at this time.
0 commit comments