17db96d56Sopenharmony_ci"""Module for testing the behavior of generics across different modules.""" 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_cifrom typing import TypeVar, Generic, Optional 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_cidefault_a: Optional['A'] = None 67db96d56Sopenharmony_cidefault_b: Optional['B'] = None 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciT = TypeVar('T') 97db96d56Sopenharmony_ci 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciclass A(Generic[T]): 127db96d56Sopenharmony_ci some_b: 'B' 137db96d56Sopenharmony_ci 147db96d56Sopenharmony_ci 157db96d56Sopenharmony_ciclass B(Generic[T]): 167db96d56Sopenharmony_ci class A(Generic[T]): 177db96d56Sopenharmony_ci pass 187db96d56Sopenharmony_ci 197db96d56Sopenharmony_ci my_inner_a1: 'B.A' 207db96d56Sopenharmony_ci my_inner_a2: A 217db96d56Sopenharmony_ci my_outer_a: 'A' # unless somebody calls get_type_hints with localns=B.__dict__ 22