17db96d56Sopenharmony_ci
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci"""
47db96d56Sopenharmony_ciThe module for testing variable annotations.
57db96d56Sopenharmony_ciEmpty lines above are for good reason (testing for correct line numbers)
67db96d56Sopenharmony_ci"""
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_cifrom typing import Optional
97db96d56Sopenharmony_cifrom functools import wraps
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ci__annotations__[1] = 2
127db96d56Sopenharmony_ci
137db96d56Sopenharmony_ciclass C:
147db96d56Sopenharmony_ci
157db96d56Sopenharmony_ci    x = 5; y: Optional['C'] = None
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_cifrom typing import Tuple
187db96d56Sopenharmony_cix: int = 5; y: str = x; f: Tuple[int, int]
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ciclass M(type):
217db96d56Sopenharmony_ci
227db96d56Sopenharmony_ci    __annotations__['123'] = 123
237db96d56Sopenharmony_ci    o: type = object
247db96d56Sopenharmony_ci
257db96d56Sopenharmony_ci(pars): bool = True
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ciclass D(C):
287db96d56Sopenharmony_ci    j: str = 'hi'; k: str= 'bye'
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_cifrom types import new_class
317db96d56Sopenharmony_cih_class = new_class('H', (C,))
327db96d56Sopenharmony_cij_class = new_class('J')
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ciclass F():
357db96d56Sopenharmony_ci    z: int = 5
367db96d56Sopenharmony_ci    def __init__(self, x):
377db96d56Sopenharmony_ci        pass
387db96d56Sopenharmony_ci
397db96d56Sopenharmony_ciclass Y(F):
407db96d56Sopenharmony_ci    def __init__(self):
417db96d56Sopenharmony_ci        super(F, self).__init__(123)
427db96d56Sopenharmony_ci
437db96d56Sopenharmony_ciclass Meta(type):
447db96d56Sopenharmony_ci    def __new__(meta, name, bases, namespace):
457db96d56Sopenharmony_ci        return super().__new__(meta, name, bases, namespace)
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ciclass S(metaclass = Meta):
487db96d56Sopenharmony_ci    x: str = 'something'
497db96d56Sopenharmony_ci    y: str = 'something else'
507db96d56Sopenharmony_ci
517db96d56Sopenharmony_cidef foo(x: int = 10):
527db96d56Sopenharmony_ci    def bar(y: List[str]):
537db96d56Sopenharmony_ci        x: str = 'yes'
547db96d56Sopenharmony_ci    bar()
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_cidef dec(func):
577db96d56Sopenharmony_ci    @wraps(func)
587db96d56Sopenharmony_ci    def wrapper(*args, **kwargs):
597db96d56Sopenharmony_ci        return func(*args, **kwargs)
607db96d56Sopenharmony_ci    return wrapper
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ciu: int | float
63