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