@@ -2353,6 +2353,62 @@ def test_forward_equality(self):
2353
2353
self .assertEqual (fr , typing .ForwardRef ('int' ))
2354
2354
self .assertNotEqual (List ['int' ], List [int ])
2355
2355
2356
+ def test_forward_equality_gth (self ):
2357
+ c1 = typing .ForwardRef ('C' )
2358
+ c1_gth = typing .ForwardRef ('C' )
2359
+ c2 = typing .ForwardRef ('C' )
2360
+ c2_gth = typing .ForwardRef ('C' )
2361
+
2362
+ class C :
2363
+ pass
2364
+ def foo (a : c1_gth , b : c2_gth ):
2365
+ pass
2366
+
2367
+ self .assertEqual (get_type_hints (foo , globals (), locals ()), {'a' : C , 'b' : C })
2368
+ self .assertEqual (c1 , c2 )
2369
+ self .assertEqual (c1 , c1_gth )
2370
+ self .assertEqual (c1_gth , c2_gth )
2371
+ self .assertEqual (Union [c1 ], Union [c1_gth ])
2372
+ self .assertEqual (Union [c1 , c1_gth , c2 , c2_gth ], Union [c1 ])
2373
+
2374
+ def test_forward_equality_hash (self ):
2375
+ c1 = typing .ForwardRef ('int' )
2376
+ c1_gth = typing .ForwardRef ('int' )
2377
+ c2 = typing .ForwardRef ('int' )
2378
+ c2_gth = typing .ForwardRef ('int' )
2379
+
2380
+ def foo (a : c1_gth , b : c2_gth ):
2381
+ pass
2382
+ get_type_hints (foo , globals (), locals ())
2383
+
2384
+ self .assertEqual (hash (c1 ), hash (c2 ))
2385
+ self .assertEqual (hash (c1_gth ), hash (c2_gth ))
2386
+ self .assertNotEqual (hash (c1 ), hash (c1_gth ))
2387
+
2388
+ def test_forward_equality_namespace (self ):
2389
+ class A :
2390
+ pass
2391
+ def namespace1 ():
2392
+ a = typing .ForwardRef ('A' )
2393
+ def fun (x : a ):
2394
+ pass
2395
+ get_type_hints (fun , globals (), locals ())
2396
+ return a
2397
+
2398
+ def namespace2 ():
2399
+ a = typing .ForwardRef ('A' )
2400
+
2401
+ class A :
2402
+ pass
2403
+ def fun (x : a ):
2404
+ pass
2405
+
2406
+ get_type_hints (fun , globals (), locals ())
2407
+ return a
2408
+
2409
+ self .assertEqual (namespace1 (), namespace1 ())
2410
+ self .assertNotEqual (namespace1 (), namespace2 ())
2411
+
2356
2412
def test_forward_repr (self ):
2357
2413
self .assertEqual (repr (List ['int' ]), "typing.List[ForwardRef('int')]" )
2358
2414
0 commit comments