+
    Bi                         R t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIt^ RI	t	 ! R R]P                  4      tR t]R8X  d   ]P                  ! 4        R# R# )	a2  This module includes tests for syntax errors that occur when a name
declared as `global` is used in ways that violate the language
specification, such as after assignment, usage, or annotation. The tests
verify that syntax errors are correctly raised for improper `global`
statements following variable use or assignment within functions.
Additionally, it tests various name-binding scenarios for global
variables to ensure correct behavior.

See `test_scope.py` for additional related behavioral tests covering
variable scoping and usage in different contexts.
Ncheck_syntax_error)check_warnings)SimpleNamespacec                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )GlobalTestsc                h    V P                  \        4       4       \        P                  ! R RR7       R# errorz<test string>)moduleN)enterContextr   warningsfilterwarnings)selfs   &'/usr/lib/python3.14/test/test_global.pysetUpGlobalTests.setUp   s#    .*+@    c                &    R p\        W^^R7       R# )z*def fn(name_param):
    global name_param
linenooffsetNr   r   	prog_texts   & r   test_name_paramGlobalTests.test_name_param   s    	 	41Q?r   c                &    R p\        W^^R7       R# )z5def fn():
    name_assign = 1
    global name_assign
r   Nr   r   s   & r   test_name_after_assign"GlobalTests.test_name_after_assign&       	
 	41Q?r   c                &    R p\        W^^R7       R# )z2def fn():
    print(name_use)
    global name_use
r   Nr   r   s   & r   test_name_after_useGlobalTests.test_name_after_use.   r   r   c                &    R p\        W^^R7       R# )z4def fn():
    name_annot: int
    global name_annot
r   Nr   )r   prog_text_3s   & r   test_name_annotGlobalTests.test_name_annot6   s    
 	4QqAr   c                b    \        4       pVsV P                  \        4       R ,          V4       @R# )name_assignment_statementN)objectr(   assertIsglobalsr   values   & r   test_assignment_statement%GlobalTests.test_assignment_statementC   s(    $)!gi ;<eD%r   c                l    \        4       pR V.w  psV P                  \        4       R,          V4       @R # )Nname_unpacking_assignment)r)   r1   r*   r+   )r   r-   _s   &  r   test_unpacking_assignment%GlobalTests.test_unpacking_assignmentJ   s1    (,e}$$gi ;<eD%r   c                t    \        4       pV;s'       d    V P                  \        4       R ,          V4       @R# )name_assignment_expressionN)r)   r6   r*   r+   r,   s   & r   test_assignment_expression&GlobalTests.test_assignment_expressionQ   s1    )..%.gi <=uE&r   c                r    \        4       pV3 F  sK  	  V P                  \        4       R ,          V4       @R# )name_iteration_variableN)r)   r:   r*   r+   r,   s   & r   test_iteration_variable#GlobalTests.test_iteration_variableY   s2    (-w# (/gi 9:EB#r   c                \    R  s \         pV P                  \        4       R,          V4       @ R# )c                      R # )N r?   r   r   name_func_defr@   d   s    r   r@   N)r@   r*   r+   r,   s   & r   test_func_defGlobalTests.test_func_defa   s&    	 gi0%8r   c                j     ! R  R4      s \         pV P                  \        4       R,          V4       @ R# )c                       ] tR t^ntRtR# )name_class_defr?   N)__name__
__module____qualname____firstlineno____static_attributes__r?   r   r   rE   rE   n   s    r   rE   N)rE   r*   r+   r,   s   & r   test_class_defGlobalTests.test_class_defk   s,    	 	 gi 0159r   c                h    R RRR l35s \         pV P                  \        4       R ,          V4       @ R# )name_type_aliasN)   c                B    V ^8  d   Qh\         \        \        3,          # )   )tupleint).formats   "r   rN   4GlobalTests.test_type_alias.<locals>.name_type_aliasw   s    ..uS#X.r   )rN   r*   r+   r,   s   & r   test_type_aliasGlobalTests.test_type_aliasu   s&    ..gi 12E:r   c                     ^^ ,           R#   \          d3   s\        pT P                  \        4       R,          T4        Rs@R# Rs@ii ; i)rO   name_caught_excN)ZeroDivisionErrorrY   r*   r+   r,   s   & r   test_caught_exception!GlobalTests.test_caught_exception|   s>    	?EE  	?#EMM')$56>>	?s   	 A
'AA
c                      ^^ ,           R#   \          d   p\        RT.4      hRp?ii ; i  . ;\          ;e5   s\        pT P                  \	        4       R,          T4       Rs@NM	Rs@N NM N6;f     R# u i ; i)rO   egNname_caught_exc_group)rZ   ExceptionGroupr_   r*   r+   )r   excr-   s   &  r   test_caught_exception_group'GlobalTests.test_caught_exception_group   sk    	E2A$ 2$TC5112	E! 	E)EMM')$;<eDD	Es*   	 +&+. A='A(	#A=6A=c                    \        4       p\        P                  ! V4      ;_uu_ 4       s R R R 4       V P	                  \        4       R,          V4       @R #   + '       g   i     L4; i)Nname_enter_result)r)   
contextlibnullcontextre   r*   r+   r,   s   & r   test_enter_resultGlobalTests.test_enter_result   sG    ##E**.? +gi 34e< +*s   AA'	c                ^    \         p^ RI sV P                  \        4       R,          V4       @R# )    Nname_import_result)rf   rl   r*   r+   r,   s   & r   test_import_resultGlobalTests.test_import_result   s#    /gi 45u=r   c                d    \        4       pVs V P                  \        4       R ,          V4       @R# )
name_matchN)r)   rp   r*   r+   r,   s   & r   
test_matchGlobalTests.test_match   s*    gi-u5r   c                d    \        4       pVs V P                  \        4       R ,          V4       @R# )name_match_asN)r)   rt   r*   r+   r,   s   & r   test_match_asGlobalTests.test_match_as   s*    #gi0%8r   c                    \        4       pR V3 d    ^8H  d   w   sM V P                  \        4       R,          V4       @R # )Nname_match_seq)r)   rx   r*   r+   r,   s   & r   test_match_seqGlobalTests.test_match_seq   s<    Um$$!$ %gi 0159r   c                    \        4       pR V/ d    ^8  d   R ;e   w  u  sM   V P                  \        4       R,          V4       @R# )keyNname_match_mapr|   )r)   r}   r*   r+   r,   s   & r   test_match_mapGlobalTests.test_match_map   s?    en(((( )gi 0159r   c                    \        4       p\        VR 7      \        R c ;e   w  sM V P                  \	        4       R,          V4       @R# )r~   Nname_match_attr)r)   r   r   r*   r+   r,   s   & r   test_match_attrGlobalTests.test_match_attr   s;    %( 55 6gi 12E:r   r?   N)rF   rG   rH   rI   r   r   r   r!   r%   r.   r3   r7   r;   rA   rK   rV   r[   rb   rh   rm   rq   ru   ry   r   r   rJ   __classdictcell__)__classdict__s   @r   r   r      sy     A@@@B&&'$?
E r   r   c                      \         P                  ! \        P                  ! 4       4       \        P                  ! R RR7       R# r	   )unittestenterModuleContextr   catch_warningsr   r?   r   r   setUpModuler      s)     7 7 9:GO<r   __main__)__doc__rf   test.supportr   test.support.warnings_helperr   typesr   r   r   TestCaser   r   rF   mainr?   r   r   <module>r      sP   
  + 7 !  x(## xv=
 zMMO r   