+
    Bi                       ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIt^ RIt^ RIt ^ RIt^ RIHt ^ RIHtHtHtHt ^ RIHt ^ RIHt  ! R R]P8                  4      t ! R R	]P8                  4      t]! 4        ! R
 R]P8                  4      4       t ! R R]P8                  4      t  ! R R]P8                  4      t! ! R R]P8                  4      t"]PF                  ]PH                  ! ]RJ R4       ! R R]P8                  4      4       4       t%]&R8X  d   ]PN                  ! 4        R# R#   ] d    Rt EL
i ; i)    N)support)script_helperrequires_debug_rangesrun_coderequires_specialization)instructions_with_positions)FakePathc                   6  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]P                   ! ]P$                  R4      ]P&                  ! 4       R 4       4       tR tR tR tR tR tR tR t]P:                  R8X  d   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( t0R) t1R* t2R+ t3]Ph                  R, 4       t5R- t6R. t7R/ t8R0 t9]Ph                  ]P                   ! ]P$                  R4      ]P&                  ! 4       R1 4       4       4       t:R2 t;R3 t<]Ph                  R4 4       t=]Ph                  R5 4       t>]Ph                  R6 4       t?]Ph                  R7 4       t@]Ph                  R8 4       tA]Ph                  R9 4       tB]Ph                  R: 4       tC]Ph                  R; 4       tD]Ph                  R< 4       tE]Ph                  R= 4       tFR> tGR? tH]P                  ! R@4      RA 4       tJ]Ph                  RB 4       tKRC tLRD tMRE tNRF tORG tPRH tQRI tRRJ tSRK tTRL tURM tVRiRO ltWRP tXRQ tYRR tZRS t[RT t\RU t]RV t^]Ph                  RW 4       t_RX t`RY taRZ tbR[ tcR\ tdR] teR^ tfR_ tgR` thRa tiRb tjRc tkRd tlRe tmRf tnRg toRhtpV tqRN# )jTestSpecificsc                     \        VR R4       R# )<single>singleNcompileselfsources   &&(/usr/lib/python3.14/test/test_compile.pycompile_singleTestSpecifics.compile_single   s    
H-    c                H    V P                  \        V P                  V4       R # N)assertRaisesSyntaxErrorr   r   s   &&r   assertInvalidSingle!TestSpecifics.assertInvalidSingle    s    +t':':FCr   c                :    \        R RR4       \        RRR4       R# )hi<test>execzhiNr   r   s   &r   test_no_ending_newline$TestSpecifics.test_no_ending_newline#   s    h'&)r   c                     \        R RR4       R# ) r    r!   Nr   r"   s   &r   
test_emptyTestSpecifics.test_empty'   s    Hf%r   c                n    \        R RR4       \        RRR4       \        RRR4       \        RRR4       R# )z
r    r!   zhi
stuff
def f():
    passz(this_isreally_old_macdef f():
    passNr   r"   s   &r   test_other_newlines!TestSpecifics.test_other_newlines*   s4    &)h'5xH=xPr   c                    V P                  \        \        R RR4       ^ RIpVP                  p\        VRR4       V P                  RV4       \        VRV4       R# )z__debug__ = 1?r   N	__debug__sureF)r   r   r   builtinsr/   setattrassertEqual)r   r1   prevs   &  r   test_debug_assignment#TestSpecifics.test_debug_assignment0   sN    +whO!!+v.D)+t,r   c                J   V P                  \        \        R 4       V P                  \        \        R4       V P                  \        \        R4       V P                  \        \        R4       V P                  \        \        R4       V P                  \        \        R4       R# )zlambda a,a:0zlambda a,a=1:0zlambda a=1,a=1:0zdef f(a, a): passzdef f(a = 0, a = 1): passdef f(a): global a; a = 1N)r   r   evalr!   r"   s   &r   test_argument_handling$TestSpecifics.test_argument_handling9   ss    +t^<+t-=>+t-?@+t-@A+t-HI+t-HIr   c                @    V P                  \        \        R RR4       R# )z1+*3filenamer!   Nr   r   r   r"   s   &r   test_syntax_errorTestSpecifics.test_syntax_errorB   s    +w
FKr   c                @    V P                  \        \        R RR4       R# )z	f(None=1)<string>r!   Nr>   r"   s   &r   test_none_keyword_arg#TestSpecifics.test_none_keyword_argE   s    +wZPr   c                <    V P                  \        \        R 4       R# )r8   Nr   r   r!   r"   s   &r   test_duplicate_global_local)TestSpecifics.test_duplicate_global_localH   s    +t-HIr   c                    ! R  R4      pV! 4       p\        4       p\        RW24       V P                  VP                  R4        \        RW24       V P	                  R4       \        RW24       V P                  VP                  R\        R4      34       \        RW24       V P                  VP                  RV34       \        R	W24       V P                  VP                  RV34       V P                  \        \        RV4        ! R
 R4      pV! 4       pV P                  \        \        RW24        ! R R\        4      pV! 4       p\        RW64       V P                  VR,          ^4       R#   \
         d     ELi ; i)c                   2   a  ] tR t^Mt o R tR tR tRtV tR# )BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Mc                     VR 8X  d   ^# \         ha)KeyErrorr   keys   &&r   __getitem__NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__O   s    #:r   c                    W3V n         R # r   resultsr   rQ   values   &&&r   __setitem__NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__S   s     #|r   c                    \        R 4      # )xyz)listr"   s   &r   keysGTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysU   s    E{"r   rU   N)	__name__
__module____qualname____firstlineno__rR   rY   r^   __static_attributes____classdictcell____classdict__s   @r   MrK   M   s     ,# #r   rh   zz = azzz = bzDid not detect a KeyErrorz	z = dir()r\   zz = globals()zz = locals()c                       ] tR t^jtRtR# )BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.A Nr`   ra   rb   rc   rd   rl   r   r   Ark   j   s    r   rn   c                   &   a  ] tR t^qt o R tRtV tR# )BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Dc                >    VR 8X  d   ^# \         P                  W4      # rM   )dictrR   rP   s   &&r   rR   NTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__r   s    #:''22r   rl   N)r`   ra   rb   rc   rR   rd   re   rf   s   @r   Drp   q   s     3 3r   rt   N)ri      )
globalsr!   r3   rV   fail	NameErrorr]   r   	TypeErrorrr   )r   rh   mgrn   rt   ds   &      r   )test_exec_with_general_mapping_for_locals7TestSpecifics.test_exec_with_general_mapping_for_localsK   sE   		# 		# CIWaI.	3! II12[!S$u+$67_a#S!H-^Q"S!H-)T7A6	 	 C)T7A9	3 	3
 CWa3$5  		s   E/ /E>=E>zexhausts limited stack on WASIc                    ^dpRRV,          ,           p/ p\         P                  ! RV3^
,          ,          4      p\        WC4       V P                  VR,          ! ^4      ^ 4       R# )d   z	x = x or z-xa  
            def f(x):
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                %s
                # the expressions above have no effect, x == argument
                while x:
                    x -= 1
                    # EXTENDED_ARG/JUMP_ABSOLUTE here
                return x
            fN)textwrapdedentr!   r3   )r   repeatlongexprr{   codes   &    r   test_extended_argTestSpecifics.test_extended_argz   s`     .  " ;r># # $$ 	T3A&r   c                <    V P                  \        \        R 4       R# )zdef f(a=1, b): passNrF   r"   s   &r   test_argument_order!TestSpecifics.test_argument_order   s    +t-BCr   c                    V P                  \        \        R 4       V P                  \        \        R4       V P                  \        \        R4       V P                  \        \        R4       R# )2ez2.0e+z1e-z3-4e/21N)r   r   r9   r"   s   &r   test_float_literals!TestSpecifics.test_float_literals   sJ    +tT2+tW5+tU3+tY7r   c                L    \         P                  ! R 4      p\        VRR4       R# )zN
            if 1:
                if 2:
                    pass
            rB   r!   Nr   r   r   r   ss   & r   test_indentationTestSpecifics.test_indentation   s#    OO  
 	:v&r   c                   R P                  R.R,          R.,           4      p\        VRR4      pV P                  VP                  ^4       VP	                  4        UUu. uF  w   r4VNK
  	  pppV P                  V^ R.4       R# u uppi )r&   
   spamfnr!   i  N)joinr   r3   co_firstlinenoco_lines)r   s256co_lineliness   &     r   test_leading_newlines#TestSpecifics.test_leading_newlines   sx    wwv|vh./T4(**A.(*6*!Q6C) 7s   Bc                ^   R$ F  pV P                  \        \        V4       K   	  V P                  \        R4      ^4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      ^ 4       V P                  \        R	4      ^ 4       V P                  \        R
4      R4       V P                  \        R4      R4       V P                  \        R4      ^ 4       V P                  \        R4      R4       V P                  \        R4      ^ 4       V P                  \        R4      ^ 4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      R4       V P                  \        R4      ^*4       V P                  \        R4      R%4       V P                  \        R 4      R!4       V P                  \        R"4      R&4       R## )'0777870xffz0777.i	  z0777.08000000000000000000000000000000000000000000000000000777e00777e1iZ  0e0z	0000e-012z09.5g      #@0777jy             H@00000j                z00.00e3z090000000000000.g  聰vBz&090000000000000.0000000000000000000000090000000000000e0z090000000000000e-0090000000000000jy          聰vBz000000000000008.g       @z000000000000009.g      "@0b101010z-0b0000000000100o777i  z
-0o0000010N)r   0xjz0x.0e0900000000000000800000000000000000000000000090000000000000080b420BADCAFE0o123456789z0b1.1z0o4.20b101j0o153j0b100e10o777e10777000777000000000000007i)r   r   r9   r3   )r   args   & r   !test_literals_with_leading_zeroes/TestSpecifics.test_literals_with_leading_zeroes   s   1C
 k451 	fs+g,h-XY[^_h.ea(k*A.fs+g-ea(eb)fq)ea(01?CFGY12OD23_E01?C01260126j)2./0"5g,l+R0r   c           	     ~   R pRRV,           R2p\         P                  ! V4      ;_uu_ 4        \        VRR4       RRR4       \         P                  ! V^,
          4      ;_uu_ 4        V P                  \        4      ;_uu_ 4       p\        VRR4       RRR4       XP
                  pV P                  VP                  ^4       V P                  R\        V4      4       V P                  R	\        V4      4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
i  za = 1
b = 2
c = 3z
d = 4z<long_int_pass>r!   Nz<long_int_fail>zExceeds the limit z Consider hexadecimal )
r   adjust_int_max_str_digitsr   r   r   	exceptionr3   linenoassertInstr)r   nr   err_ctxexcs   &    r   test_int_literals_too_long(TestSpecifics.test_int_literals_too_long   s    %c!eWG4..q11F-v6 2..qs33"";//7 16: 0##CSZZ+MM.C9MM2CH= 43 21 0/ 433s0   D)D+D	A&D+D	D(#D++D<	c                l   \         P                  R 8X  dA   RpV P                  \        V4      R4       V P                  \        RV,           4      R
4       Mf\         P                  R8X  dA   RpV P                  \        V4      R4       V P                  \        RV,           4      R4       MV P	                  R4       V P                  \        R\         P                  ) ^,
          ,          4      \        4       V P                  \        R\         P                  ) ^,
          ,          4      \        4       R	# )i
0xffffffffl    -    0xffffffffffffffffl    z)How many bits *does* this machine have???z%sNl l )sysmaxsizer3   r9   rw   assertIsInstanceint)r   all_one_bitss   & r   test_unary_minusTestSpecifics.test_unary_minus   s    ;;*$'LT,/<T#"45{C[[///LT,/1EFT#"457LMIIAB 	d4CKK<!+;#<=sCd4CKK<!+;#<=sCr   r   c                    R pRpRpRpRpRpRpRpV P                   P                  P                   F  p	V	f   K	  V P                  V	\        4       K!  	  R# )	l        l          l            r   Nl     l       l         l )test_32_63_bit_values__code__	co_constsr   r   )
r   rN   bcr|   er   r{   hvariables
   &         r   r   #TestSpecifics.test_32_63_bit_values   s]    AA A A$A$A$A$A 66??II'))(C8 Jr   c                j    R;'       g    Rw  rV P                  V^4       V P                  VR4       R# )   N)r   r   )r   r   r3   )r   ijs   &  r   test_sequence_unpacking_error+TestSpecifics.test_sequence_unpacking_error  s1      ABr   c                    . ROpV FF  pVR,          pV P                  \        \        VRR4       V P                  \        \        VRR4       KH  	  R# )None = 0r   tmpr   r!   N)r   z	None += 0z__builtins__.None = 0zdef None(): passzclass None: passz(a, None) = 0, 0zfor None in range(10): passzdef f(None): passzimport Nonezimport x as Nonezfrom x import Nonezfrom x import y as Noner>   )r   stmtsstmts   &  r   test_none_assignment"TestSpecifics.test_none_assignment	  sJ    
 DDLDk7D%Jk7D%H r   c                    . ROp. ROpV F  p\        VRR4       K  	  V F   pV P                  \        \         VRR4       K"  	  R# )
import sysr   r!   N)r   zimport os, syszimport os as barzimport os.path as barz0from __future__ import nested_scopes, generatorsz2from __future__ import (nested_scopes,
generators)z3from __future__ import (nested_scopes,
generators,)z%from sys import stdin, stderr, stdoutz'from sys import (stdin, stderr,
stdout)z(from sys import (stdin, stderr,
stdout,)z(from sys import (stdin
, stderr, stdout)z)from sys import (stdin
, stderr, stdout,)z7from sys import stdin as si, stdout as so, stderr as sez9from sys import (stdin as si, stdout as so, stderr as se)z:from sys import (stdin as si, stdout as so, stderr as se,))zimport (os, sys)zimport (os), (sys)zimport ((os), (sys))zimport (syszimport sys)zimport (os,)zimport os As barzimport os.path a barzfrom sys import stdin As stdoutzfrom sys import stdin a stdoutzfrom (sys) import stdinz%from __future__ import (nested_scopesz%from __future__ import nested_scopes)z0from __future__ import nested_scopes,
generatorszfrom sys import (stdinzfrom sys import stdin)z%from sys import stdin, stdout,
stderrzfrom sys import stdin sizfrom sys import stdin,zfrom sys import (*)z(from sys import (stdin,, stdout, stderr)z from sys import (stdin, stdout),)r   r   r   )r   succeedrw   r   s   &   r   test_importTestSpecifics.test_import  sH    "0 DD%( Dk7D%H r   c                    R  pV! 4       w  r#V P                  \        VP                  4      \        VP                  4      4       R# )c                      RR lp RR lpW3# )r   c                     V # r   rl   xs   &r   <lambda>ITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>O      Qr   c                     V # r   rl   r  s   &r   r  r  P  r  r   r   )   rl   )f1f2s     r   r   7TestSpecifics.test_for_distinct_code_objects.<locals>.fN  s    BB6Mr   N)assertNotEqualidr   )r   r   r	  r
  s   &   r   test_for_distinct_code_objects,TestSpecifics.test_for_distinct_code_objectsL  s2    	 Br{{OR_=r   c                B    R  pV P                  VP                  4       R# )c                      R # )foorl   rl   r   r   r  /TestSpecifics.test_lambda_doc.<locals>.<lambda>V  s    Er   N)assertIsNone__doc__r   ls   & r   test_lambda_docTestSpecifics.test_lambda_docU  s    !))$r   c                X    R  pV P                  VP                  P                  R4       R# )c                      R # zthis is the only constrl   rl   r   r   r  2TestSpecifics.test_lambda_consts.<locals>.<lambda>Z  s    ,r   Nr  r3   r   r   r  s   & r   test_lambda_consts TestSpecifics.test_lambda_constsY  s"    ,--/JKr   c                .   R pV P                  \        \        VRR4       Rp\        VRR4       V P                  \	        V4      R4       RpV P                  \	        V4      R4       RpV P                  \	        V4      R4       RpV P                  \	        V4      R4       R	pV P                  \	        V4      R4       R
pV P                  \	        V4      R4       RpV P                  \	        V4      R4       RpV P                  \	        V4      R4       R# )s#   # -*- coding: badencoding -*-
pass
r   r!   u%   # -*- coding: badencoding -*-
"Â¤"
u   Â¤u   "Â¤"
s   "¤"
   ¤s   # -*- coding: latin1 -*-
"¤"
s   # -*- coding: utf-8 -*-
"¤"
s"   # -*- coding: iso8859-15 -*-
"¤"
u   Â€u*   """\
# -*- coding: iso8859-15 -*-
Â¤"""
u!   # -*- coding: iso8859-15 -*-
Â¤s(   """\
# -*- coding: iso8859-15 -*-
¤"""
u   # -*- coding: iso8859-15 -*-
¤N)r   r   r   r3   r9   r   r   s   & r   test_encodingTestSpecifics.test_encoding]  s    7+weVD<eV$dZ0dZ0dV,8dZ07dV,<d\2Cd%MNDd%IJr   c                    ! R  R\         4      pV! 4       p^V^&   V P                  V^,          ^4       V^;;,          ^,          uu&   V P                  V^,          ^4       V^ V P                  ^V4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  RV4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  \        ^^4      V4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  \        ^^4      \        ^^4      3V4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  \        ^^^4      V4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  \        ^^^4      \        ^^^4      3V4       ^VR&   V P                  VR,          ^4       VR;;,          ^,          uu&   V P                  VR,          ^4       VR V P                  \        V4       ^VR	&   V P                  VR	,          ^4       VR	;;,          ^,          uu&   V P                  VR	,          ^4       VR	 V P                  \        \        3V4       R# )
c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	.TestSpecifics.test_subscripts.<locals>.str_mapiu  c                    / V n         R # r   datar"   s   &r   __init__7TestSpecifics.test_subscripts.<locals>.str_map.__init__v  s	    	r   c                :    V P                   \        V4      ,          # r   r+  r   rP   s   &&r   rR   :TestSpecifics.test_subscripts.<locals>.str_map.__getitem__x  s    yyS**r   c                4    W P                   \        V4      &   R # r   r/  rW   s   &&&r   rY   :TestSpecifics.test_subscripts.<locals>.str_map.__setitem__z  s    &+		#c(#r   c                2    V P                   \        V4       R # r   r/  rP   s   &&r   __delitem__:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__|  s    IIc#h'r   c                2    \        V4      V P                  9   # r   )r   r+  rP   s   &&r   __contains__;TestSpecifics.test_subscripts.<locals>.str_map.__contains__~  s    3x499,,r   r*  N)r`   ra   rb   rc   r,  rR   rY   r4  r7  rd   re   rf   s   @r   str_mapr(  u  s#     +,(- -r   r9  r   r  Nr   r     .N)r   r   )r:  r:  )r;  r;  )..)objectr3   assertNotInsliceEllipsis)r   r9  r|   s   &  r   test_subscriptsTestSpecifics.test_subscriptsr  s   
	-f 
	- I!1q!	!	1q!aDA$4!$	$14!$dG##3#	#!3#cFq!a((8a(	(q8a(hK%1+uQ{3Q7%51%	%A51%eHq!Q+,<!,	,1<!,lO%1a.%1a.91=#3#	#!3#cF1%(8a(	(q8a(hK(H-q1r   c                t    R pVRP                  R \        R4       4       4      ,          p\        VRR4       R# )zdef f(%s): pass, c              3   6   "   T F  pR W3,          x  K  	  R# 5i)za%d:%dNrl   .0r   s   & r   	<genexpr>6TestSpecifics.test_annotation_limit.<locals>.<genexpr>  s     <Ax1%''s   i,  r.   r!   Nr   ranger   r   s   & r   test_annotation_limit#TestSpecifics.test_annotation_limit  s0    	TYY<s<<<3r   c                    ! R  R4      pV P                  RVP                  P                  P                  4       V P                  RVP                  P                  P                  4       V P                  RVP                  P                  P                  4       V P                  RVP                  P                  P                  4       R# )c                   &   a  ] tR tRt o R tRtV tR# )&TestSpecifics.test_mangling.<locals>.Ai  c                     ^p ^p^ RI p^ RIpR# r   N)_A__mangled_mod__package__.module)_A__mangled__not_mangled__rS  __package__s       r   r   (TestSpecifics.test_mangling.<locals>.A.f  s    	"#$)r   rl   Nr`   ra   rb   rc   r   rd   re   rf   s   @r   rn   rP    s     * *r   rn   rU  rV  rS  rW  N)r   r   r   co_varnames)r   rn   s   & r   test_manglingTestSpecifics.test_mangling  s    	* 	* 	mQSS\\%=%=>')A)AB')A)ABmQSS\\%=%=>r   c                     \        R RR4       R# )zif (5 if 5 else T): 0<eval>r!   Nr   r"   s   &r   3test_condition_expression_with_dead_blocks_compilesATestSpecifics.test_condition_expression_with_dead_blocks_compiles  s    '6:r   c           
        . ROpV FY  pV P                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        \        VRR4       RRR4       RRR4       K[  	  R#   + '       g   i     L; i  + '       g   i     K  ; i)if 9<9<9and 9or 9:9exprr^  r!   N)rb  zif 9<9<9and 9or 9or 9:9zif 9<9<9and 9or 9or 9or 9:9zif 9<9<9and 9or 9or 9or 9or 9:9)subTestassertWarnsSyntaxWarningr   r   exprsrd  s   &  r   =test_condition_expression_with_redundant_comparisons_compilesKTestSpecifics.test_condition_expression_with_redundant_comparisons_compiles  sc    
 D4((%%m44D(F3 5 )( 44 )((s#   A9A&A9&A61A99B
c                H    \        \        P                  ! R 4      RR4       R# )z
                if None:
                    with CM:
                        x = 1
                else:
                    x = 2
               r^  r!   Nr   r   r   r"   s   &r   +test_dead_code_with_except_handler_compiles9TestSpecifics.test_dead_code_with_except_handler_compiles  s!     !  v	'r   c                H    \        \        P                  ! R 4      RR4       R# )z
            name_1, name_2, name_3 = 1, 2, 3
            while name_3 <= name_2 > name_1:
                try:
                    raise
                except:
                    pass
                finally:
                    pass
            r^  r!   Nrm  r"   s   &r   8test_try_except_in_while_with_chained_condition_compilesFTestSpecifics.test_try_except_in_while_with_chained_condition_compiles  s!     	! 	 F		$r   c                   \         P                  ! \         P                  ! \         P                  ! \         P                  ! \         P
                  ! ^R7      \         P
                  ! ^R7      R7      \         P                  ! \         P                  ! R\         P                  ! 4       R7      \         P                  ! R\         P                  ! 4       R7      . ^ R7      .R7      R7      .. R7      pV P                  \        R	4      ;_uu_ 4        \        \         P                  ! V4      R
R4       RRR4       R#   + '       g   i     R# ; i)r   rX   )targetrX   r  r  ctxy)ru  iterifsis_async)elt
generatorsbodytype_ignoreszNamedExpr target must be a Name<file>r!   N)astModuleExprListComp	NamedExprConstantcomprehensionNameStoreLoadassertRaisesRegexry   r   fix_missing_locationsr   rz   s   & r   test_compile_invalid_namedexpr,TestSpecifics.test_compile_invalid_namedexpr  s    JJ,,MM#&<<a#8"%,,Q"7
  --'*xx3CIIK'H%(XX#((*%E$&)*	$$ '
, ##I/PQQC--a0(FC RQQQs   "D::E	c                   \         P                  ! R 4      p\        P                  ! V4      p\        P                  ! V4       F  p\        VR4      '       g   K  V=V=V=V=	K!  	  \        \        P                  ! V4      RR4       R# )z
            try:
                pass
            except:
                pass
            else:
                match name_2:
                    case b'':
                        pass
            finally:
                something
            r   r  r!   Nr   r   r  parsewalkhasattrr   
end_lineno
col_offsetend_col_offsetr   r  r   r   treenodes   &   r   >test_compile_redundant_jumps_and_nops_after_moving_cold_blocksLTestSpecifics.test_compile_redundant_jumps_and_nops_after_moving_cold_blocks  ss    __   yy HHTNDtH%%[__( # 	))$/6Br   c                   \         P                  ! R 4      p\        P                  ! V4      p\        P                  ! V4       F  p\        VR4      '       g   K  V=V=V=V=	K!  	  \        \        P                  ! V4      RR4       R# )z
            if name_2:
                pass
            else:
                try:
                    pass
                except:
                    pass
            ~name_5
            r   r  r!   Nr  r  s   &   r   4test_compile_redundant_jump_after_convert_pseudo_opsBTestSpecifics.test_compile_redundant_jump_after_convert_pseudo_ops*  ss    __ 	 	 yy HHTNDtH%%[__( # 	))$/6Br   c                b   \         pVP                  4       P                  R 4      '       d   VRR p\        VRR7      ;_uu_ 4       pVP	                  4       pRRR4       RR.RR.RR	.R
R.VX..pV F  w  r\        VRV,          R4      p\        VRV,          R\        P                  4      pV P                  \        V4      \        P                  8H  4       \        VRV,          R4      pV P                  Wh4       V P                  VP                  RV,          4       K  	  \        RRR\        P                  4      pV P                  \        \
        VRR4       V P                  \        \
        \        P                  ! \        P                   ! R\        P"                  ! 4       R7      R7      RR4       \        P                  ! 4       p\        P$                  ! \        P&                  ! 4       R7      .Vn        V P                  \        \
        VRR4       R#   + '       g   i     EL; i)pycNzutf-8)encodingz<assign>zx = 5z	<ifblock>zif True:
    pass
z
<forblock>z!for n in [1, 2, 3]:
    print(n)
z	<deffunc>zdef foo():
    pass
foo()
z%s1r!   z%s2z%s3zprint(1)rB   z<ast>r9   r  rv  )test)opr   )__file__lowerendswithopenreadr   _astPyCF_ONLY_AST
assertTruetyper  r3   co_filenamer   ry   Ifr  r  BoolOpOrr  )	r   fnamer   	fcontentssample_coder   co1r  co2s	   &        r   test_compile_astTestSpecifics.test_compile_astC  s   ;;=!!%((#2JE%'**aI + !45DE=>I
 'KE$v6C$vt7I7IJCOODI45#uu}f5CS&S__eem< ' j*fd6H6HI)Wc7FC 	)Wdgg499QUQZQZQ\;].^`giop kkmKK4779-.)Wc7FC; +**s   HH.	c                @   \         P                  ! \         P                  ! \         P                  ! \         P                  ! R \         P
                  ! 4       R7      \         P                  ! RR7      \         P                  ! 4       R7      . \         P                  ! R\         P
                  ! 4       R7      R7      .. R7      pV P                  \        R4      ;_uu_ 4        \        \         P                  ! V4      R	R
4       RRR4       R#   + '       g   i     R# ; i)r  rv  r  rt  )rX   r?  rw  Callable)nametype_paramsrX   r~  zTypeAlias with non-Name namer  r!   N)r  r  	TypeAlias	Subscriptr  r  r  r  r  ry   r   r  r  s   & r   test_compile_invalid_typealias,TestSpecifics.test_compile_invalid_typealiasf  s    JJ!hh%SXXZ@!ll5IIK
 !#((jchhjA
 
 ##I/MNNC--a0(FC ONNNs    "DD	c                x   a ^ oV3R lpV! 4       V! 4       V! 4       V! 4       /pV P                  V^^^^/4       R# )r   c                     < S ^,          o S # r  rl   r   s   r   r   3TestSpecifics.test_dict_evaluation_order.<locals>.f}  s    FAHr   Nr   )r   r   r|   r   s   &  @r   test_dict_evaluation_order(TestSpecifics.test_dict_evaluation_orderz  s=    	
 S!#qsAC Q1aL)r   c                ~   R F,  p\        RVR4      pV P                  VP                  R 4       K.  	  \        R4      \	        R4      3 F6  pV P                  \        4      ;_uu_ 4        \        RVR4       RRR4       K8  	  V P                  \        \         R\        R4      R4       R#   + '       g   i     Ks  ; i)file.py   file.pypassr!   N)r  r  )r   r3   r  	bytearray
memoryviewr   ry   r]   )r   r=   r   s   &  r   test_compile_filename#TestSpecifics.test_compile_filename  s    -H68V4DT--y9 . "*-z*/EEH""9--&1 .- F 	)Wfd:6FO .--s   )B++B<c                    R p\        VRR4      pVP                   FK  p\        V\        P                  4      '       g   K%  V P                  VP                  VP                  4       KM  	  R# )zdef f(): pass
def g(): passmyfiler!   N)r   r   
isinstancetypesCodeTypeassertIsr  )r   r   r   objs   &   r   test_same_filename_used%TestSpecifics.test_same_filename_used  sJ    .Ax(;;C#u~~..cooq}}= r   c                   V P                  R 4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R	4       V P                  R
4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       R# )z1 + 2z
1 + 2z1 + 2
z1 + 2

z1 + 2		
z1 + 2		
        z1 + 2 # one plus twoz1; 2zimport sys; syszdef f():
   passzwhile False:
   passzif x:
   f(x)zif x:
   f(x)
else:
   g(x)zclass T:
   passzc = '''
a=1
b=2
c=3
'''N)r   r"   s   &r   test_single_statement#TestSpecifics.test_single_statement  s    G$I&I&K(M*1223F#-./034,-<=/09:r   c                8   V P                  R 4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       V P                  R4       R	# )
z1
2zdef f(): passza = 13
b = 187zdel x
del yzf()
g()zf()
# blah
blah()zf()
xy # blah
blah()zx = 5 # comment
x = 6
zc = '''
d=1
'''
a = 1

b = 2
N)r   r"   s   &r   test_bad_single_statement'TestSpecifics.test_bad_single_statement  s      (  1  !23  0  ,  !67  !9:  !;<  !FGr   c           	        R p\         P                  ! 4       ;_uu_ 4       p\        P                  P	                  VR4      p\        VR4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V4      ^ ,          pRRR4       V P                  RXP                  4       R#   + '       g   i     LS; i  + '       g   i     LA; i)s   0000 
00000000000
 

bad.pywbN%   source code cannot contain null bytestempfileTemporaryDirectoryospathr   r  writer   run_python_until_endr   errr   srctmpdr   fpress   &     r   "test_particularly_evil_undecodable0TestSpecifics.test_particularly_evil_undecodable  s    4((**ddH-Bb$2  44R8;C	 +
 	>H   +*#   5CB2	'%C2C=CC	c           	        R p\         P                  ! 4       ;_uu_ 4       p\        P                  P	                  VR4      p\        VR4      ;_uu_ 4       pVP                  V4       RRR4       \        P                  ! V4      ^ ,          pRRR4       V P                  RXP                  4       R#   + '       g   i     LS; i  + '       g   i     LA; i)s   # 
#
r  r  Nr  r  r  s   &     r   $test_yet_more_evil_still_undecodable2TestSpecifics.test_yet_more_evil_still_undecodable  s    ((**ddH-Bb$2  44R8;C	 +
 	>H   +*r  c                   a aa ^dpVR,          oVoR	VV V3R llpV! RR4       V! RR4       V! RR4       V! RR4       R# )
r   i  c                   < WS,          ,           p\        VR V4       WS,          ,           pRV : RV: RS R2pSP                  \        VR7      ;_uu_ 4        \        VR V4       RRR4       R#   + '       g   i     R# ; i)r    zCompiling (z + z * ))msgN)r   r   RecursionError)	prefixrepeatedmode	expect_okbrokendetailscrash_depthr   success_depths	   &&&   r   check_limit@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limit  su    M!99IIx.44F#F:SC}ANG"">w"??$/ @???s   A22B	rN   z()z.bz[0]z*aN)r   rl   )r   limitr  r  r  s   f  @@r   test_compiler_recursion_limit+TestSpecifics.test_compiler_recursion_limit  sL    
 dl	0 	0 	CCCCr   c                4   V P                  \        R 4      ;_uu_ 4        \        RRR4       RRR4       V P                  \        R 4      ;_uu_ 4        \        \        R4      RR4       RRR4       \        \        R4      ^R
 RR4      pV P	                  \        V4      ^4       \        \        R4      ^R
 RR4      pV P	                  \        V4      ^4       \        \        R4      ^R
 RR4      pV P	                  \        V4      ^4       V P	                  \        \        R4      ^R
 4      ^4       \        4       p\        \        R4      ^R
 V4       V P	                  VR	,          ^4       R#   + '       g   i     ELN; i  + '       g   i     EL%; i)zcannot contain nullz123 <dummy>r9   Ns   123 s   1234s   $23$s   ax = 123r  r   )r  r   r   r  r3   r9   rr   r!   )r   r   	namespaces   &  r   test_null_terminated"TestSpecifics.test_null_terminated  sJ    ##K1FGGIy&1 H##K1FGGJz*Iv> Hz*-a3YGdR(z'*1R0)VDdR(z'*1R0)VDdR( 	j1!B78"=F	Z$Qr*I63, HGGGGGs   E2F2F	F	c                    VP                   P                   F  p\        V4      \        V4      8X  g   K   R# 	  V P                  R V: RVP                   P                  : 24       R# )zunable to find constant z in N)r   r   reprrw   )r   funcexpectedconsts   &&& r   check_constantTestSpecifics.check_constant  sK    ]],,EE{d8n, - II!4==#:#:< =r   c                  a  V 3R  lpV! R4       V! R4       V! R4       V! R4       R R r2S P                  VP                  P                  VP                  P                  4       S P                  V\        4       S P                  \        V! 4       4      \        \        4      4       R R r2R	 pS P                  VP                  P                  ^ ,          VP                  P                  ^,          ^ ,          4       S P                  \        \        VP                  P                  ^,          4      4      VP                  P                  ^,          4       R
 R r2S P                  VP                  P                  VP                  P                  4       S P                  V\        ^ 04      4       S P                  V! ^ 4      4       R# )c                 B  < / pR V : RV : 2p\        W!4       VR,          pVR,          pSP                  VP                  P                  VP                  P                  4       SP	                  W04       SP                  \        V! 4       4      \        V 4      4       R# zf1, f2 = lambda: z
, lambda: r	  r
  N)r!   r  r   r   r  r3   r  )r  nsr   r	  r
  r   s   &    r   check_same_constant?TestSpecifics.test_merge_constants.<locals>.check_same_constant  su    B8=uEDNDBDBMM"++//1F1FG*T"$Ze5r   N        s   abcabcc                      R # .rl   rl   r   r   r  4TestSpecifics.test_merge_constants.<locals>.<lambda>  s    r   c                      R # r  rl   rl   r   r   r  r    s    cr   c                      R # 
not a namerl   rl   r   r   r  r    s    r   c                      R# )r"  r!  rl   rl   r   r   r  r    s    r   c                     V R9   # )r"  >   r!  rl   r  s   &r   r  r    s
    q--r   c                     V R9   # r   >   r   rl   r  s   &r   r  r  "      18r   c                     V R9   # r&  rl   r  s   &r   r  r  "  s    qCxr   )r  r   r   r  r@  r3   r  nextry  	frozensetr  )r   r  r	  r
  f3s   f    r   test_merge_constants"TestSpecifics.test_merge_constants  sM   
	6 	D!C F#E" kBbkk++R[[-B-BCB)bdT(^4 &'>B-bkk++A.kk++A.q1	3d4 5 5a 89:kk++A.	0
 $%7Bbkk++R[[-B-BCB	1#/1r   c                    R  pR pV P                  VP                  P                  VP                  P                  4       R# )c                 .    V P                   P                  # r   rx  ri   r  s   &r   r  5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>,      qssuur   c                 .    V P                   P                  # r   )r   r   rM   s   &r   r  r1  -  r2  r   N)r  r   co_linetable)r   r	  r
  s   &  r   test_merge_code_attrs#TestSpecifics.test_merge_code_attrs)  s0     bkk..0H0HIr   c                p    R  pV P                  VP                  P                  VP                  R34       R# )c                       R# Tusedrl   rl   r   r   r   2TestSpecifics.test_remove_unused_consts.<locals>.f3  s    r   r:  Nr3   r   r   r  r   r   s   & r   test_remove_unused_consts'TestSpecifics.test_remove_unused_consts1  s/    	  	--))V,	.r   c                X    R  pV P                  VP                  P                  R4       R# )c                       R# r9  rl   rl   r   r   r   ?TestSpecifics.test_remove_unused_consts_no_docstring.<locals>.fA  s    r   Nr9  r  r=  s   & r   &test_remove_unused_consts_no_docstring4TestSpecifics.test_remove_unused_consts_no_docstring=  s&    	  	--'	)r   c                z   R pR.pVP                  R4       VP                  R4       \        V4       F-  pVP                  RV R24       VP                  RV R24       K/  	  VP                  R4       RP                  V4      p/ p\        \	        VR	R
4      V4       \        W$4       VR,          p\        R.\        V4       Uu. uF  pRV 2NK
  	  up,           4      pV P                  VP                  P                  V4       RP                  VR,          4      pV P                  We! 4       4       R# u upi )i  z	def f():
z	s = ''
z	for i in range(1):
z		if True: s += 'tz'
z		if False: s += 'fz
	return s
r&   r  r!   r   tr   NNN)
appendrK  r   r9   r   r!   tupler3   r   r   )r   Nr   r   r{   r   r  s   &      r   'test_remove_unused_consts_extended_args5TestSpecifics.test_remove_unused_consts_extended_argsJ  s   ~L!,-qAKK.qc56KK/s#67  	N#wwt}WT9f-q1TcF"%( ;(Q1QC( ;;<--x8778B<(13' !<s   D8
c                n    R  pV P                  VP                  P                  VP                  34       R# )c                      ^*# *   rl   rl   r   r   r	  0TestSpecifics.test_strip_unused_None.<locals>.f1e  s    r   Nr<  )r   r	  s   & r   test_strip_unused_None$TestSpecifics.test_strip_unused_Nonea  s)    	 	..>r   c                    R  pV P                  R\        \        P                  ! V4      4      R,          P                  4       R# )c                      ^# r<  )RuntimeErrorrl   r   r   unused_code_at_endcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_endq  s    r   RETURN_VALUENr   )r3   r]   disget_instructionsopname)r   rX  s   & r   9test_peephole_opt_unreachable_code_array_access_in_boundsGTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundsn  s:    	. 	%%&89:2>EE	Gr   c           
        \         P                  ! R 4      pR EF;  pV P                  VR7      ;_uu_ 4        \        VRRVR7      p/ p\	        W44       V^8  dH   V P                  VR,          P                  R4       V P                  VR,          P                  R4       MDV P                  VR,          P                  4       V P                  VR,          P                  4       V P                  VR,          P                  4       V P                  VR	,          P                  4       V P                  VR
,          P                  4       RRR4       EK>  	  R#   + '       g   i     EKT  ; i)a  
            def with_docstring():
                "docstring"

            def two_strings():
                "docstring"
                "not docstring"

            def with_fstring():
                f"not docstring"

            def with_const_expression():
                "also" + " not docstring"

            def multiple_const_strings():
                "not docstring " * 3
            )optr    r!   optimizewith_docstring	docstringtwo_stringswith_fstringwith_const_expressionmultiple_const_stringsNr   r   r  )r   r   re  r   r!   r3   r  r  )r   r  ra  r   r  s   &    r   test_docstringTestSpecifics.test_docstring|  s   oo  $ C#&&sHfsCT7$$R(8%9%A%A;O$$R%6%>%>L%%b)9&:&B&BC%%b&7&?&?@!!"^"4"<"<=!!"%<"="E"EF!!"%=">"F"FG '& &&&s   DEE-c                   R R.pR	 F  pV F  pV P                  W#R7      ;_uu_ 4        \        \        P                  ! V4      RRVR7      p/ p\	        WE4       V^8  d%   V P                  VR,          P                  R4       M"V P                  VR,          P                  4       RRR4       K  	  K  	  R#   + '       g   i     K  ; i)
z>def with_docstring():
                "docstring"
            z>class with_docstring:
                "docstring"
            )ra  r  r    r   rb  rd  re  Nrj  )re  r   r   r   r!   r3   r  r  )r   srcsra  r  r   r  s   &     r   test_docstring_interactive_mode-TestSpecifics.test_docstring_interactive_mode  s    	
 C\\c\33"8??3#78VYZDBNQw((,<)=)E)E{S))"-=*>*F*FG 43  333s   A>B9	9C
c                   \         P                  ! R 4      pR F  pR F  pV P                  W#R7      ;_uu_ 4        \        VRW2R7      p\        P
                  ! 4       p\        P                  ! V4      ;_uu_ 4        \        P                  ! V4       RRR4       V P                  RVP                  4       4       RRR4       K  	  K  	  R#   + '       g   i     LB; i  + '       g   i     K  ; i)a  
            def f():
                "docstring1"
                def h():
                    "docstring2"
                    return 42

                class C:
                    "docstring3"
                    pass

                return h
        )ra  r  r    rb  NNOP)r   r   r   r  )r!   r   )r   r   re  r   ioStringIO
contextlibredirect_stdoutr[  r>  getvalue)r   r  ra  r  r   outputs   &     r   test_docstring_omitted$TestSpecifics.test_docstring_omitted  s     oo   !C*\\c\55"3$ED[[]F#33F;; <$$UFOO,=> 65 + !
 <; 655s$   AC!	=C(C!	CC!	!C2c                  a  V 3R  lpV! RR
4       V! RR4       V! RR4       V! RR4       R R r2S P                  VP                  VP                  4       S P                  VR4       S P                  VR4       S P                  \	        V! 4       4      \	        R4      4       S P                  \	        V! 4       4      \	        R4      4       R R r2S P                  VP                  VP                  4       S P                  V\        ^ 04      4       S P                  V\        R04      4       S P                  V! ^ 4      4       S P                  V! R4      4       R	# )c                   < / p\        R V : RV: 2V4       VR,          pVR,          pSP                  VP                  VP                  4       SP                  VP                  VP                  4       SP	                  W04       SP	                  WA4       SP                  \        V! 4       4      \        V 4      4       SP                  \        V! 4       4      \        V4      4       R# r  )r!   assertIsNotr   r  r  r3   r  )const1const2r  r	  r
  r   s   &&   r   check_different_constantsJTestSpecifics.test_dont_merge_constants.<locals>.check_different_constants  s    BffErJDBDBR[["++6R[[9++T"$Zf6T"$Zf6r   r  rN      ac                      R # )r   rl   rl   r   r   r  9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>  s    r   c                      R# )r                 rl   rl   r   r   r  r    s    r   r   c                     V R9   # r&  rl   r  s   &r   r  r    r'  r   c                     V R9   # )r  >   r  rl   r  s   &r   r  r    s    qEzr   Ng       r   )r  rM   )r  r  )r}  r   r  r3   r  r*  r  )r   r  r	  r
  s   f   r   test_dont_merge_constants'TestSpecifics.test_dont_merge_constants  s   
	7 	"$-!$/!#t,!&'2 Bbkk2B&B&bdT%[1bdT%[1 $%9Bbkk2B	1#/B	3% 0113 r   c                2    \        R \        R4      R4       R# )42test_compile_pathliker   N)r   r	   r"   s   &r   test_path_like_objects$TestSpecifics.test_path_like_objects  s    h67Br   cpuc                .    \        R R,          RR4       R# )zif a: b
i@ r	  r!   Nr   r"   s   &r   test_stack_overflow!TestSpecifics.test_stack_overflow  s     	f$i8r   c                8   R  pR pR pR pWW4.pV F  p\        \        P                  ! V4      4      pV P                  \	        V4      ^4       V P                  RVR,          P                  4       V P                  RVR,          P                  4       K  	  R# )c                      R# r   Nrl   rl   r   r   unused_block_ifPTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if  s    r   c                      R# r  rl   rl   r   r   unused_block_whileSTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while  s    r   c                       R# rR  rl   rl   r   r   unused_block_if_elseUTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_else  s    r   c                       R# rR  rl   rl   r   r   unused_block_while_elseXTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_else  s    r   rZ  Nr   )r]   r[  r\  assertLessEquallenr3   r]  argval)r   r  r  r  r  funcsr  opcodess   &       r   )test_dead_blocks_do_not_generate_bytecode7TestSpecifics.test_dead_blocks_do_not_generate_bytecode  s    				 !%@ D3//56G  Wq1^WR[-?-?@T72;#5#56	 r   c                *   R  pR pW.pV F  p\        \        P                  ! V4      4      pV P                  ^\	        V4      4       V P                  RVR,          P
                  4       V P                  RV^,          P                  4       K  	  R# )c                      R# FNrl   rl   r   r   break_in_while;TestSpecifics.test_false_while_loop.<locals>.break_in_while"      r   c                      R# r  rl   rl   r   r   continue_in_while>TestSpecifics.test_false_while_loop.<locals>.continue_in_while&  r  r   rZ  Nr   )r]   r[  r\  r3   r  r]  r  )r   r  r  r  r  r  s   &     r   test_false_while_loop#TestSpecifics.test_false_while_loop!  s    		  3 D3//56GQG-^WR[-?-?@T71:#4#45	 r   c                   R  pR pR pR pWW4.pV F  pV P                  VR7      ;_uu_ 4        \        \        P                  ! V4      4      pV P	                  \        V4      ^4       V P                  RVR,          P                  4       V P                  RVR	,          P                  4       RRR4       K  	  R#   + '       g   i     K  ; i)
c                     T # Trl   r  s   &r   and_true;TestSpecifics.test_consts_in_conditionals.<locals>.and_true4      r   c                     R # Frl   r  s   &r   	and_false<TestSpecifics.test_consts_in_conditionals.<locals>.and_false7  s    r   c                     R # r  rl   r  s   &r   or_true:TestSpecifics.test_consts_in_conditionals.<locals>.or_true:  s    r   c                     T # r  rl   r  s   &r   or_false;TestSpecifics.test_consts_in_conditionals.<locals>.or_false=  r  r   r  LOAD_rZ  Nr   r   )	re  r]   r[  r\  r  r  r   r]  r3   )r   r  r  r  r  r  r  r  s   &       r   test_consts_in_conditionals)TestSpecifics.test_consts_in_conditionals3  s    				 g8 D4((s33D9:$$S\15gwr{'9'9:  1C1CD	 )( (((s   BB??Cc                   . ROpV F  p/ p\        \        P                  ! V4      V4       VR,          pV P                  VP                  R7      ;_uu_ 4        \        \        P                  ! V4      4      pV Uu. uF  qfP                  NK  	  ppV P                  RV4       V P                  RV4       V P                  RV4       RRR4       K  	  R# u upi   + '       g   i     K  ; i)[            import os
            def foo():
                return os.uname()
            r  r  LOAD_METHOD	LOAD_ATTRCALLN)r  z}            import os as operating_system
            def foo():
                return operating_system.uname()
            zh            from os import path
            def foo(x):
                return path.join(x)
            zv            from os import path as os_path
            def foo(x):
                return os_path.join(x)
            )r!   r   r   re  r`   r]   r[  r\  r]  r>  r   )r   sourcesr   r
  r  r  opcodeinstructionss   &       r   test_imported_load_method'TestSpecifics.test_imported_load_methodJ  s    
, FI()4U#D4==11s33D9:<CDG&GD  =k<8fl3 21	   E 211s   $C=C
8CCC-c           
        R  pR pRV3RV3RV3RV3RV3RV3RV3R	V3R
V3.	pV F  w  rE\        VRR4      pV! V4      p\        \        P                  ! V4      4      pV U	u. uF  qP                  NK  	  p
p	V U	u. uF  qP
                  NK  	  pp	V P                  ^(V4       V P                  ^V4       V P                  RV
4       V P                  ^-V4       K  	  R# u up	i u up	i )c                 J    V P                   ^ ,          P                   ^,          # r  r   r  s   &r   r  7TestSpecifics.test_folding_type_param.<locals>.<lambda>m  s    AKKN$<$<Q$?r   c                 J    V P                   ^ ,          P                   ^,          # r  r  r  s   &r   r  r  n  s    A(@(@(Cr   zdef foo[T = 40 + 5](): passzdef foo[**P = 40 + 5](): passzdef foo[*Ts = 40 + 5](): passzclass foo[T = 40 + 5]: passzclass foo[**P = 40 + 5]: passzclass foo[*Ts = 40 + 5]: passztype foo[T = 40 + 5] = 1ztype foo[**P = 40 + 5] = 1ztype foo[*Ts = 40 + 5] = 1r	  r!   LOAD_SMALL_INTN)r   r]   r[  r\  r]  opargr>  r   )r   get_code_fn_clsget_code_type_aliassnippetssnippetget_coder   r   r  r  r  argss   &           r   test_folding_type_param%TestSpecifics.test_folding_type_paraml  s   ?C*O<,o>,o>*O<,o>,o>')<=)+>?)+>?

 "*GF3AA;D3//56G8?@fMML@/67wVLLwD7R&Q%MM*L9MM"d# "* A7s   #C!=C&c                F    R  pVP                   P                  ^,           pR# )c                      \        4        R # r   )printrl   r   r   call6TestSpecifics.test_lineno_procedure_call.<locals>.call  s    r   N)r   r   )r   r  line1s   &  r   test_lineno_procedure_call(TestSpecifics.test_lineno_procedure_call  s    	 ,,q0r   c                v  a
a R o
V
3R lpV
3R lpV
3R lpV
3R lpWW4.p. R	OpRoV3R lp\        WVR R7       Fg  w  rV P                  VR7      ;_uu_ 4        V! V4       V P                  SP                  SP                  P
                  ,
          V	4       RRR4       Ki  	  R#   + '       g   i     K~  ; i)
Tc                 *   < V ! 4        S'       d   R # R # r   rl   r  TRUEs   &r   if1<TestSpecifics.test_lineno_after_implicit_return.<locals>.if1  s    C r   c                 *   < V ! 4        S'       d   R # R # r   rl   r  s   &r   if2<TestSpecifics.test_lineno_after_implicit_return.<locals>.if2  s    Cr   c                 *   < V ! 4        S'       d   R # R # r   rl   r  s   &r   if3<TestSpecifics.test_lineno_after_implicit_return.<locals>.if3  s    Cr   c                 *   < V ! 4        S'       g   R # R # r   rl   r  s   &r   if4<TestSpecifics.test_lineno_after_implicit_return.<locals>.if4  s    C r   Nc                  4   < \         P                  ! ^4      o R# rR  )r   	_getframe)frames   r   save_caller_frameJTestSpecifics.test_lineno_after_implicit_return.<locals>.save_caller_frame  s    MM!$Er   strictr  )r<  r<  r<  r  )zipre  r3   f_linenof_coder   )r   r  r  r  r  r  	lastlinesr  r  lastliner  r  s   &         @@r   !test_lineno_after_implicit_return/TestSpecifics.test_lineno_after_implicit_return  s    				 C%!		% "%4@ND4((&'  0K0K!KXV )( A(((s   A B''B8c           	        R  pR pW3 F  pV P                  VR7      ;_uu_ 4        W1J d   VP                  f    RRR4       K<  VP                  pVP                  4       w  w  rVpV P	                  V^ 4       V P	                  V\        VP                  4      4       V P	                  WtP                  4       RRR4       K  	  R#   + '       g   i     K  ; i)c                      R # r   rl   rl   r   r   no_code19TestSpecifics.test_lineno_after_no_code.<locals>.no_code1  s    r   c                      R # r   rl   rl   r   r   no_code29TestSpecifics.test_lineno_after_no_code.<locals>.no_code2  s    r   r  N)re  r  r   r   r3   r  co_coder   )r   r	  r  r  r   startendr   s   &       r   test_lineno_after_no_code'TestSpecifics.test_lineno_after_no_code  s    		 (D4((#(8(8(@ )( }}'+}}$#%d  *  c$,,&78  ':':; )( )(((s   CA3CCc                    Rp. pVP                  4        F7  w   rEVf   K  WR8w  g   K  VP                  WQP                  ,
          4       TpK9  	  V# )r  r   )r   rH  r   )r   r   	last_liner  r   r   s   &&    r   get_code_linesTestSpecifics.get_code_lines  sL    	--/JAqD$5

4"5"556 	 * 
r   c                @   R  p. ROpR p. R	OpR p. R
OpR p. ROpWWW.p	W$Wh.p
\        WRR7       FT  w  rV P                  VR7      ;_uu_ 4        V P                  VP                  4      pV P	                  W4       RRR4       KV  	  R#   + '       g   i     Kk  ; i)c                  "    \         P                  # r   )orN   rl   r   r   	load_attr6TestSpecifics.test_lineno_attribute.<locals>.load_attr  s    r   c                  ,    \         P                  ^ 4      # r  )r  rz   rl   r   r   load_method8TestSpecifics.test_lineno_attribute.<locals>.load_method  s    r   c                  $    \         \        n        R # r   )vr  rN   rl   r   r   
store_attr7TestSpecifics.test_lineno_attribute.<locals>.store_attr  s    
  r   c                  H    \         ;P                  \        ,          un        R # r   )r  rN   r   rl   r   r   aug_store_attr;TestSpecifics.test_lineno_attribute.<locals>.aug_store_attr  s     	r   Tr  r  N)r   r  r<  r   )r   r  r<     r<  r   )r      r  r<  )r   r  r<  r'  r   r<  )r   re  r  r   r3   )r   r  load_attr_linesr  load_method_linesr!  store_attr_linesr$  aug_store_attr_linesr  
func_linesr  r   
code_liness   &             r   test_lineno_attribute#TestSpecifics.test_lineno_attribute  s    	
 )	 1	 *	  4*E&!9
 u>KD4((!00?
  3 )( ?(((s   -BBc                    R  p. ROpVP                   P                  ^ ,          pV P                  V4      pV P                  W$4       R# )c                      R  \          4       # )c              3   &   "   T F  p^x  K	  	  R# 5irR  rl   rG  r  s   & r   rH  OTestSpecifics.test_line_number_genexp.<locals>.return_genexp.<locals>.<genexpr>  s          s   )rx  rl   r   r   return_genexp<TestSpecifics.test_line_number_genexp.<locals>.return_genexp  s     	 r   N)r   r&  r  r   r&  )r   r   r  r3   )r   r5  genexp_linesgenexp_coder-  s   &    r   test_line_number_genexp%TestSpecifics.test_line_number_genexp  sB    	 '#,,66q9((5
2r   c                l    R  p. ROpV P                  VP                  4      pV P                  W#4       R# )c                 <   "   V   R j  xL
  p\          K   LDR # 5ir   )r  )aseqr   s   & r   r  LTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.test  s       a4s   
N)r   r   r  r   )r  r   r3   )r   r  expected_linesr-  s   &   r   0test_line_number_implicit_return_after_async_for>TestSpecifics.test_line_number_implicit_return_after_async_for  s0    	 &((7
4r   Nc                    \        V\        4      '       d   V3p\        P                  ! V4       FE  pV'       g   K  VP                  V9   g   K   V P                  VP                  P                  4       KG  	  R # r   )r  r   r[  Bytecoder]  assertIsNotNone	positionsr   )r   r   opnamesinsts   &&& r   check_line_numbers TestSpecifics.check_line_numbers  sS    
 gs##kGLL&Dw4;;'1$$T^^%:%:; 'r   c                D    R  pV P                  VP                  R4       R# )c               3   r   "   \          F  p  \        '       d   ^x  K  K  	  R#   \         d     K*  i ; i5i)r  N)itC1OSErrorr  s    r   r   NTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors.<locals>.f  s6     r    s   
7%74747JUMP_BACKWARDNrH  r   r=  s   & r   5test_line_number_synthetic_jump_multiple_predecessorsCTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors  s    	 	

O<r   c                D    R  pV P                  VP                  R4       R# )c                      \          F  p  ^pK  	  ^*#   \         d*     \        '       d   ^p K)   K,    \         d      K;  i ; ii ; irV  )rL  rN  C3r  Xs     r   r   UTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_nested.<locals>.f$  sR    A    2 !A " 	s'   A33AAAArP  NrQ  r=  s   & r   <test_line_number_synthetic_jump_multiple_predecessors_nestedJTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_nested#  s    
	 	

O<r   c                D    R  pV P                  VP                  R4       R# )c                      \          F  p  ^pK  	  ^*#   \         dp     \        '       d   \        '       d   ^p K5   K8   K;    \         d=     \        '       d   \        '       d   ^p  Ke    Ki    Km    \         d       K}  i ; ii ; ii ; irV  )rL  rN  rV  C4rW  s     r   r   ZTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_more_nested.<locals>.f3  s    !A    !
!2!r$%  "  # !!!r#%2()A $&  "  ' ! !!!sf   BAAAB	A4A4&A4(B,B0B4B	?B	 BB	B		BrP  NrQ  r=  s   & r   Atest_line_number_synthetic_jump_multiple_predecessors_more_nestedOTestSpecifics.test_line_number_synthetic_jump_multiple_predecessors_more_nested2  s    	$ 	

O<r   c                D    R  pV P                  VP                  R4       R# )c                  <    \          F  p \        '       g   K  K  	  R # r   r  rx  r  s    r   r   ITestSpecifics.test_lineno_of_backward_jump_conditional_in_loop.<locals>.fI  s    1 r   rP  NrQ  r=  s   & r   0test_lineno_of_backward_jump_conditional_in_loop>TestSpecifics.test_lineno_of_backward_jump_conditional_in_loopG  s    	
 	

O<r   c                    RpRRP                  R \        V4       4       4      ,           R,           pV P                  \        \	        V4      4      V4       R# )i  {,c              3   .   "   T F  q R V 2x  K  	  R# 5i):Nrl   r3  s   & r   rH  6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>W  s     !G6FCq*6F   }Ni   )r   rK  r3   r  r9   )r   	dict_sizethe_dicts   &  r   test_big_dict_literal#TestSpecifics.test_big_dict_literalP  sE     	!GeI6F!GGG#MT(^,i8r   c                @   R  p^pRp\        \        P                  ! VRR7      4       Fq  w  rEVP                  R8X  d   V P	                  VP
                  ^ 4       K4  VP                  V9   g   KG  V P	                  VP
                  V^,           V,          4       Ks  	  R# )c                  6    ^p  V ^ 8  d   V ^,          p MR# Rp K  )r   Nr   rl   )vals    r   if_else_breakITestSpecifics.test_redundant_jump_in_if_else_break.<locals>.if_else_break^  s"    C71HCr   JUMP_FORWARDT)show_cachesN)POP_JUMP_IF_FALSEPOP_JUMP_IF_TRUEJUMP_ABSOLUTEry  )	enumerater[  rC  r]  r  r   )r   rw  
INSTR_SIZEHANDLED_JUMPSr   instrs   &     r   $test_redundant_jump_in_if_else_break2TestSpecifics.test_redundant_jump_in_if_else_breakZ  s    	 

 %LLD9
KD ||~-##EIIq1.##EIIq*/DE
r   c                ~    R  p\         P                  ! V4       F  pV P                  VP                  R4       K!  	  R# )c                 *    Yu;8  d   V8  g   M K  R # r   rl   rN   r   r   s   &&&r   while_not_chained@TestSpecifics.test_no_wraparound_jump.<locals>.while_not_chainedz  s    yqy !r   EXTENDED_ARGN)r[  rC  r  r]  )r   r  r  s   &  r   test_no_wraparound_jump%TestSpecifics.test_no_wraparound_jumpw  s1    	 \\"34En= 5r   c                  a  V 3R  lpV 3R lpR pV! VR^4       V! VR^ 4       V! V\         \        RRR4      .4       V! VR^4       R pV! VR^4       V! VR^ 4       V! VR	^4       V! V\         \        RRR4      .4       R
 pV! VR^4       V! VR^ 4       V! V\         . 4       V! VR^4       R pV! VR^4       V! VR^4       V! VR^ 4       V! VR^4       V! VR	^ 4       V! V\         . 4       R pV! VR^ 4       V! VR^ 4       V! VR^4       V! VR	^4       V! V\         \        ^^4      .4       R pV! VR^ 4       V! VR^ 4       V! VR^ 4       V! VR	^4       V! V\         . 4       V! V\        \        ^^^4      \        ^^^4      3.4       R p	V! V	\         / 4       R p
V! V
\         \        R^ R4      \        RRR4      \        RRR4      \        RRR4      .4       R# )c                    < ^ p\         P                  ! V 4       F  pVP                  V8X  g   K  V^,          pK!  	  SP                  W24       R# r  )r[  rC  r]  r3   )r  r  r  actualr  r   s   &&&  r   check_op_countBTestSpecifics.test_uses_slice_instructions.<locals>.check_op_count  s@    Fd+<<2%aKF , V.r   c                   < \        V Uu. uF  p\        V4      NK  	  up4      p\        4       pV P                  P                  p\        P
                  ! V 4       Fd  pVP                  R 8X  g   K  \        WVP                  ,          V4      '       g   K:  VP                  \        WVP                  ,          4      4       Kf  	  SP                  WB4       R# u upi )
LOAD_CONSTN)setr  r   r   r[  rC  r]  r  r  addr3   )r  typr  r  
all_constsconstsr  r   s   &&&    r   check_consts@TestSpecifics.test_uses_slice_instructions.<locals>.check_consts  s    X6XDGX67HJ]],,Fd+<<</Jvkk?RTW4X4XNN4{{(;#<= , Z2 7s   Cc                      \         \        \         \         \        R  ,           \         R \         ,           \         R,          ,           # NNNN)r  rN   r   rl   r   r   load8TestSpecifics.test_uses_slice_instructions.<locals>.load  s,    Qq6AqrF?QrU*QqT11r   BINARY_SLICEBUILD_SLICEN	BINARY_OPc                      \         \        \        \        % \         \        \        R % \         \        R \        % \         \        R&   R # r  )rx  r  rN   r   rl   r   r   store9TestSpecifics.test_uses_slice_instructions.<locals>.store  s,    AaFAqrFAbqEAaDr   STORE_SLICESTORE_SUBSCRc                  :    \         \        \        \        1,          # r   )r  rN   r   r   rl   r   r   
long_slice>TestSpecifics.test_uses_slice_instructions.<locals>.long_slice  s    QqU8Or   c                  J    \         \        \        ;;; \        ,          uuu% R # r   )r  rN   r   rx  rl   r   r   aug7TestSpecifics.test_uses_slice_instructions.<locals>.aug  s    aFaKFr   c                  @    \         R ;;,          \        ,          uu&   R# )r:  Nrd  rl   r   r   	aug_const=TestSpecifics.test_uses_slice_instructions.<locals>.aug_const  s    cFaKFr   c                       \         \        R&   R# )r;  N)r;  :r&  r'     rx  r  rl   r   r   compound_const_sliceHTestSpecifics.test_uses_slice_instructions.<locals>.compound_const_slice  s    AlOr   c                       \         \        . R % R # r   r  rl   r   r   mutable_sliceATestSpecifics.test_uses_slice_instructions.<locals>.mutable_slice  s    AbcFr   c                  n    \         \        R &   \         \        R&   \         \        R&   \         \        R&   R# ):Nr   N:Ng        N:NFNr  Nr  rl   r   r   different_but_equalGTestSpecifics.test_uses_slice_instructions.<locals>.different_but_equal  s&    AbEAdGAfIAeHr   r  F)r?  rI  )r   r  r  r  r  r  r  r  r  r  r  s   f          r   test_uses_slice_instructions*TestSpecifics.test_uses_slice_instructions  s/   	/	3	2 	t^Q/t]A.T55tT#:";<t[!,	 	umQ/umQ/una0UEE$d$;#<=	 	z=!4z>15Z+z;2	 	sNA.sM1-sM1-sK+sNA.S%$	 	y.!4y-3y+q1y.!4Ya}5	  	+^Q?+]A>+]A>+^Q?)5"5)5E!QNE!QPQN3S2TU	 	]E2.	 	dAt$dC&dE4(dD$'			
r   c           	        R F  w  rRV RV R2p^^^^ \        V4      3.,          pRV 2RV R2RV R23 F  p\        VR	R
4      p\        P                  ! V4       Uu. uF2  pVP                  P                  V4      '       g   K&  VP                  NK4  	  ppV P                  V4      ;_uu_ 4        V P                  W4       RRR4       K  	  K  	  R# u upi   + '       g   i     K  ; i)COMPARE_za z b z cz\
zif \
z: xzx if \
z else yr    r!   N))r  <)r  z<=)r  >)r  z>=)CONTAINS_OPin)r  znot in)IS_OPis)r  zis not)	r  r   r[  r\  r]  
startswithrE  re  r3   )	r   opname_prefixr  rd  expected_positionsr   r   instructionactual_positionss	   &        r   test_compare_positions$TestSpecifics.test_compare_positions  s    	"
M t3rd"%D!"q!QD	&:%;!;tfc2ivW4M vx8 (+';';D'A$'A"))44]C *K))'A ! $
 \\&))$$%5J *)	"
 $
 *))s    #CC3C	C-c                    . ROpV F3  pV P                  VR7      ;_uu_ 4        \        VRR4       RRR4       K5  	  R#   + '       g   i     KJ  ; i)assert (False if 1 else True)rc  r   r!   N)r  z=def f():
	if not (False if 1 else True): raise AssertionErrorz2def f():
	if not (False if 1 else True): return 12)re  r   rh  s   &  r   )test_if_expression_expression_empty_block7TestSpecifics.test_if_expression_expression_empty_block  sD    

 D4((j&1 )( (((s   A  Ac                L    \         P                  ! R 4      p\        VRR4       R# )z
            def foo(param, lambda_exp):
                pass

            foo(param=0,
                lambda_exp=lambda:
                1)
        r    r!   Nr   r#  s   & r   "test_multi_line_lambda_as_argument0TestSpecifics.test_multi_line_lambda_as_argument  s#        	h'r   c                >    R  pV P                  V! RR4      R4       R# )c                     Yp V# r   rl   )r  rx  rN   s   && r   r   0TestSpecifics.test_apply_static_swaps.<locals>.f  s    qAHr   r  rx  Nr   r=  s   & r   test_apply_static_swaps%TestSpecifics.test_apply_static_swaps  s    	 	3c*r   c                @    R  pV P                  V! RRR4      R4       R# )c                     YTur4pV# r   rl   r  rx  ri   rN   r   s   &&&  r   r   2TestSpecifics.test_apply_static_swaps_2.<locals>.f  s    AGA!Hr   r  rx  ri   Nr   r=  s   & r   test_apply_static_swaps_2'TestSpecifics.test_apply_static_swaps_2  "    	 	3S)3/r   c                @    R  pV P                  V! RRR4      R4       R# )c                     YTrC V# r   rl   r  s   &&&  r   r   2TestSpecifics.test_apply_static_swaps_3.<locals>.f  s    A!AHr   r  rx  ri   Nr   r=  s   & r   test_apply_static_swaps_3'TestSpecifics.test_apply_static_swaps_3  r  r   c                :    R  pV P                  V! 4       R4       R# )c                       ^*q ^6,           p^6p W3# rO  rl   rN   r   s     r   r   0TestSpecifics.test_variable_dependent.<locals>.f(  s    ABAB4Kr   N)6   `   r   r=  s   & r   test_variable_dependent%TestSpecifics.test_variable_dependent$  s    	 	h'r   c                    R  pR# )c                  X    \         '       d   \        '       d    \        # R # R #     K(  ; ir   )element	somethingrl   r   r   r   9TestSpecifics.test_duplicated_small_exit_block.<locals>.f/  s'    'ii$$ ('s   $ )Nrl   r=  s   & r    test_duplicated_small_exit_block.TestSpecifics.test_duplicated_small_exit_block-  s    	r   c                    R  pR# )c                  8    \         '       d    R# ^ R#     K  ; irR  )r  rl   r   r   r   5TestSpecifics.test_cold_block_moved_to_end.<locals>.f8  s    $ s   Nrl   r=  s   & r   test_cold_block_moved_to_end*TestSpecifics.test_cold_block_moved_to_end6  s    	r   c                    R  pR# )c                     V '       d   K
  R# rR  rl   r  s   &r   r   MTestSpecifics.test_remove_empty_basic_block_with_jump_target_label.<locals>.fC  s     r   Nrl   r=  s   & r   4test_remove_empty_basic_block_with_jump_target_labelBTestSpecifics.test_remove_empty_basic_block_with_jump_target_labelA  s    	r   c                    R  pR# )c                  T    \         '       d   M\        '       d	   \         R# \         R# rR  )r   r   rN   r|   rl   r   r   r   <TestSpecifics.test_remove_redundant_nop_edge_case.<locals>.fI  s    q!aaAar   Nrl   r=  s   & r   #test_remove_redundant_nop_edge_case1TestSpecifics.test_remove_redundant_nop_edge_caseG  s    	(r   c                r    \         P                  ! R 4      pR^// r2R F  p\        W,          W#4       K  	  R# )z            def f():
                try:
                    pass
                %s Exception:
                    global a
                else:
                    print(a)
        rN   N)exceptzexcept*)r   r   r!   )r   r   r{   r  kws   &    r   .test_global_declaration_in_except_used_in_else<TestSpecifics.test_global_declaration_in_except_used_in_elseL  s8        Qx1'BA! (r   c                   a V3R  loR# )c                  v   <"   R ;RJ d    M;p  V  Uu/ u Rj  xL
 p\         SbK  . . R#  LDMu upi  pL5i)r   TN)name_3)name_5name_2name_4s     r   r  7TestSpecifics.test_regression_gh_120225.<locals>.name_4]  s4     8>??fVV^ D @?s(   91/-
/
19/19Nrl   )r   r  s   &@r   test_regression_gh_120225'TestSpecifics.test_regression_gh_120225\  s    	r   c                     ! R  R\         4      p/ p\        RV! 4       V4       V P                  \        VR,          4       R# )c                       ] tR tRtRtR# );TestSpecifics.test_globals_dict_subclass.<locals>.WeirdDictii  rl   Nrm   rl   r   r   	WeirdDictr  i  s    r   r  zdef foo(): return ar  N)rr   r!   r   rx   )r   r  r  s   &  r   test_globals_dict_subclass(TestSpecifics.test_globals_dict_subclassg  s8    	 	 "IK4)RY/r   c                   \         P                  ! R R7      ;_uu_ 4       p\         P                  ! R4       \        RRR4       \        RRR4       RRR4       V P	                  \        X4      ^4       \         P                  ! R R7      ;_uu_ 4       p\         P                  ! R4       \        RRR4       \        RRR4       RRR4       V P	                  \        V4      ^4       R#   + '       g   i     L; i  + '       g   i     L@; i)Trecorddefaultz1 is 1<stdin>r9   Nalways)warningscatch_warningssimplefilterr   r3   r  )r   caughts   & r   test_compile_warnings#TestSpecifics.test_compile_warningsq  s     $$D11V!!),Hi0Hi0 2
 	Va($$D11V!!(+Hi0Hi0 2
 	Va( 21 21s   1C)1C<)C9	<D	c                   \         P                  ! R 4      p\        P                  ! RR7      ;_uu_ 4       p\        P                  ! R4       \        VRR4       RRR4       V P                  \        X4      ^4       V P                  V^ ,          P                  \        4       V P                  R\        V^ ,          P                  4      4       R#   + '       g   i     L; i)z[
            try:
                pass
            finally:
                1 is 1
        Tr  r  r  r!   Nz"is" with 'int' literal)r   r   r  r  r  r   r3   r  categoryrg  r   r   message)r   r   r  s   &  r   test_compile_warning_in_finally-TestSpecifics.test_compile_warning_in_finally  s    
  "  $$D11V!!),FIv. 2 	Va(++];13vay7H7H3IJ 21s   $CC"	rl   r   )rr`   ra   rb   rc   r   r   r#   r'   r+   r5   r:   r?   rC   rG   r}   unittestskipIfr   is_wasiskip_emscripten_stack_overflowr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r$  rA  rL  r[  r_  rj  rn  rq  r  r  r  r  r  r  r  cpython_onlyr  r  r  r  r  r  r  r  r,  r5  r>  rC  rK  rR  r^  rk  ro  ry  r  r  requires_resourcer  r  r  r  r  r  r  r  r  r  r.  r9  r@  rH  rR  rZ  r`  rf  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   r%  rd   re   rf   s   @r   r   r      s    .D*&Q-JLQJ-%^ __W__&FG++-' . H'2D8'*1B>D& {{))	9 I(-I^>%LK*F2P ?;4'$D6C6C2!DFD(	*P > >;"	HII __W__&FG++- . H ,-(= ' 'V J J 	. 	. 
) 
) ( (, ? ? G G !H !HF H H* ? ?0%!NC u%9 &9 7 7<6$E. 4D$2P WD<"*4X35	<	===*=9F:> ^
 ^
@K2	2
(+00(	(
# 	0)$K Kr   r   c                   x   a  ] tR tRt o  ! R R4      t ! R R]4      t ! R R]4      tR tR	 tR
 t	R t
RtV tR# )TestBooleanExpressioni  c                   ,   a  ] tR tRt o R tR tRtV tR# )TestBooleanExpression.Valuei  c                    ^ V n         R# r  calledr"   s   &r   r,  $TestBooleanExpression.Value.__init__  s	    DKr   c                L    V ;P                   ^,          un         V P                  # r  )r3  rX   r"   s   &r   __bool__$TestBooleanExpression.Value.__bool__  s    KK1K::r   r2  N)r`   ra   rb   rc   r,  r6  rd   re   rf   s   @r   Valuer0    s     		 	r   r8  c                       ] tR tRtRtRtR# )TestBooleanExpression.Yesi  Trl   Nr`   ra   rb   rc   rX   rd   rl   r   r   Yesr:    s    r   r<  c                       ] tR tRtRtRtR# )TestBooleanExpression.Noi  Frl   Nr;  rl   r   r   Nor>    s    r   r?  c                N   V P                  4       V P                  4       V P                  4       .pV^ ,          ;'       d    V^,          ;'       d
    V^ ,          pV P                  W!^,          4       T P                  V Uu. uF  q3P                  NK  	  up. RO4       R# u upi r   N)r   r   r   )r<  r?  r  r3   r3  r   r   r  r   s   &   r   test_short_circuit_and,TestBooleanExpression.test_short_circuit_and  su    XXZDHHJ/d$$qt$$!cQ4 A.Aq((A.	:.   B"c                N   V P                  4       V P                  4       V P                  4       .pV^ ,          ;'       g    V^,          ;'       g
    V^ ,          pV P                  W!^,          4       T P                  V Uu. uF  q3P                  NK  	  up. RO4       R# u upi rA  r?  r<  r  r3   r3  rB  s   &   r   test_short_circuit_or+TestBooleanExpression.test_short_circuit_or  su    WWY
DGGI.d""ad""adcQ4 A.Aq((A.	:.rE  c                V   V P                  4       V P                  4       V P                  4       V P                  4       .pV^ ,          ;'       d    V^,          ;'       g    V^,          ;'       g
    V^,          pV P                  W!^,          4       T P                  V Uu. uF  q3P                  NK  	  up. RO4       V P                  4       V P                  4       V P                  4       V P                  4       V P                  4       .pV^ ,          ;'       g=    V^,          ;'       d    V^,          ;'       g    V^,          ;'       g
    V^,          pV P                  W!^,          4       T P                  V Uu. uF  q3P                  NK  	  up. RO4       R# u upi u upi )r   N)r   r   r   r   )r   r   r   r   r   rG  rB  s   &   r   test_compound#TestBooleanExpression.test_compound  s$   WWY
DHHJ
;dmmqt++qt++qtcQ4 A.Aq((A.=WWY	488:txxz4779Ed33admmqt33qt33qtcQ4 A.Aq((A.@ /
 /s   "F!F&c                J    ! R  R4      pV! 4       pV! 4       pV P                  \        4      ;_uu_ 4        \        V4       RRR4       V P                  \        4      ;_uu_ 4        T;'       g    TpRRR4       R#   + '       g   i     LD; i  + '       g   i     R# ; i)c                   &   a  ] tR tRt o R tRtV tR# )1TestBooleanExpression.test_exception.<locals>.Fooi  c                    \        4       hr   )NotImplementedErrorr"   s   &r   r6  :TestBooleanExpression.test_exception.<locals>.Foo.__bool__  s    )++r   rl   N)r`   ra   rb   rc   r6  rd   re   rf   s   @r   FoorO    s     , ,r   rS  N)r   rQ  bool)r   rS  rN   r   r   s   &    r   test_exception$TestBooleanExpression.test_exception  sv    	, 	, EE233G 4 233QA 43 43 433s   A>'B>B	B"	rl   N)r`   ra   rb   rc   r8  r<  r?  rC  rH  rK  rU  rd   re   rf   s   @r   r.  r.    sA      e U ;;
A r   r.  c                   r  a  ] tR tRt o R tR(R ltR tR tR t]	R 4       t
]P                  ! ]P                  P                  R4      R	 4       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%R t&R  t'R! t(])PT                  R" 4       t+R# t,R$ t-R% t.R&t/V t0R'# ))TestSourcePositionsi  c                r  a	a
aa \        VR R4      p\        VR R\        P                  4      pV P                  \	        V4      \        P
                  8H  4       \        4       \        4       \        4       \        4       3w  ooo	o
 ! V	V
VV3R lR\        P                  4      pV! 4       P                  V4       VP                  4        Fi  w  rVrxV^ 8X  d   K  Ve   V P                  VS4       Ve   V P                  VS4       Ve   V P                  VS	4       Vf   KW  V P                  VS
4       Kk  	  W#3# )ztest_compile.pyr!   c                   <   <a a ] tR tRt oV VVVV3R ltRtVtV ;t# )LTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitori  c                  < \         SV `  V4       \        V\        P                  \        P
                  \        P                  34      '       g   R # SP                  VP                  4       SP                  VP                  4       SP                  VP                  4       SP                  VP                  4       R # r   )supergeneric_visitr  r  rd  r   patternr  r   r  r  r  )r   r  	__class__columnsend_columns	end_linesr   s   &&r   r^  ZTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitor.generic_visit  su    %d+!$388S[[(IJJ		$++&doo.DOO, 3 34r   rl   )r`   ra   rb   rc   r^  rd   re   __classcell__)r`  rg   ra  rb  rc  r   s   @@r   SourceOffsetVisitorr[    s     5 5 5r   rf  )r   r  r  r  r  r  r  r  NodeVisitorvisitco_positionsr   )r   r  r   ast_treerf  r   end_linecolend_colra  rb  rc  r   s   &&       @@@@r   check_positions_against_ast/TestSourcePositions.check_positions_against_ast  s    w 16:7$5vt?Q?QRX$++56 25suce1K.y';	5 	5#// 	5 	##H- /3.?.?.A*TSqy dE*#h	2c7+"g{3 /B ~r   c                   \        \        P                  ! V4      VP                  4       4       F  w  rVP                  V8X  g   K  V^,          pV'       d   K+  V P                  V	^ ,          V4       V P                  V	^,          V4       V P                  V	^,          V4       V P                  V	^,          V4        R# 	  V P                  RV R24       R# )r   NzOpcode z not found in code)r   r[  rC  ri  r]  r3   rw   )
r   r   r  r   rk  column
end_column
occurrencer  positions
   &&&&&&&&  r   assertOpcodeSourcePositionIs0TestSourcePositions.assertOpcodeSourcePositionIs  s      ;LL 1 1 3 
OE ||v%a
!z$$Xa[$7$$Xa[(;$$Xa[&9$$Xa[*= 
 			GF8#567r   c                ,    R pV P                  V4       R# )zx = 1N)rn  r   r  s   & r   test_simple_assignment*TestSourcePositions.test_simple_assignment	  s    ((1r   c           
         R R,          pVR,          pV P                  V4      w  r#V P                  VRRR^^^R7       V P                  VRRR^^	^R7       R# )zx = x
i'  z/while x != 0:
  x -= 1
while x != 0:
  x +=  1
r  r   rk  rq  rr  rs  Ni'  i'  rn  ru  r   r  compiled_coder   s   &   r    test_compiles_to_extended_op_arg4TestSourcePositions.test_compiles_to_extended_op_arg  sz     f$ " 	  ;;GD))-jq 	* 	2 	))-jq 	* 	2r   c           	         \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^ ^R7       R# )zD            f(
                1, 2, 3, 4
            )
            r  r   rk  rq  rr  Nr   r   rn  ru  r~  s   &   r   test_multiline_expression-TestSourcePositions.test_multiline_expression!  sJ    // # 
  ;;GD))-QqQ 	* 	8r   c           
     H   \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^^R7       R# )z            if (a or
                (b and not c) or
                not (
                    d > 0)):
                x = 42
            r|  r|  r{  
COMPARE_OPNr  r~  s   &   r   !test_multiline_boolean_expression5TestSourcePositions.test_multiline_boolean_expression+  s    // #   ;;GD))-9KQqQ1 	* 	F 	))-9LQqQ1 	* 	F 	))-9LQrbQ 	* 	H 	))-QqRA 	* 	G 	))-9KQqRA 	* 	Gr   z)Assertions are disabled in optimized modec           
        \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^ ^$^R7       V P                  VR^^^^$^R7       V P                  VR^^^ ^$^R7       V P                  VR^^^^^R7       R# )zz            assert (a > 0 and
                    bb > 0 and
                    ccc == 1000000), "error msg"
            LOAD_COMMON_CONSTANTr|  r  r  RAISE_VARARGSNr  r~  s   &   r   test_multiline_assert)TestSourcePositions.test_multiline_assertE  s    // # 
  ;;GD))-9OQqRA 	* 	G 	))-QrbQ 	* 	H))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
     N   \         P                  ! R 4      pV P                  V4      w  r#VP                  ^ ,          pV P	                  V\
        P                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^^R7       R# )z            ((x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            YIELD_VALUEr|  rP  rZ  Nr   r   rn  r   r   r  r  ru  r~  s   &   r   #test_multiline_generator_expression7TestSourcePositions.test_multiline_generator_expressionW  s    // #   ;;GD%//2mU^^<))-QqQ1 	* 	F))-QqQ1 	* 	F))-QqRA 	* 	Gr   c           
        \         P                  ! R 4      pV P                  V4      w  r#VP                  ^ ,          pV P	                  V\
        P                  4       V P                  VR^^^^^R7       V P                  VR^^^ ^ ^R7       R# )z            ((x,
                2*x)
                async for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            r  r|  rZ  Nr  r~  s   &   r   )test_multiline_async_generator_expression=TestSourcePositions.test_multiline_async_generator_expressionj  s    // #   ;;GD%//2mU^^<))-QqQ1 	* 	F))-QqRA 	* 	Gr   c           
         \         P                  ! R 4      pV P                  V4      w  r#V P                  V\        P
                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       R# )z            [(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)]
            LIST_APPENDr|  rP  Nr   r   rn  r   r  r  ru  r~  s   &   r   !test_multiline_list_comprehension5TestSourcePositions.test_multiline_list_comprehension{  s    // #   ;;GDmU^^<))-QqQ1 	* 	F))-QqQ1 	* 	Fr   c           
     h   \         P                  ! R 4      pV P                  V4      w  r#/ p\        W$4       VR,          P                  pV P                  V\        P                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^$^R7       R# )z            async def f():
                [(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)]
            r   r  r|  rP  rZ  N	r   r   rn  r9   r   r   r  r  ru  r   r  r  r   r{   s   &    r   'test_multiline_async_list_comprehension;TestSourcePositions.test_multiline_async_list_comprehension  s    // #   ;;GD]#mU^^<))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
         \         P                  ! R 4      pV P                  V4      w  r#V P                  V\        P
                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       R# )z            {(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            SET_ADDr|  rP  Nr  r~  s   &   r    test_multiline_set_comprehension4TestSourcePositions.test_multiline_set_comprehension      // #   ;;GDmU^^<))-QqQ1 	* 	F))-QqQ1 	* 	Fr   c           
     h   \         P                  ! R 4      pV P                  V4      w  r#/ p\        W$4       VR,          P                  pV P                  V\        P                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^$^R7       R# )z            async def f():
                {(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            r   r  r|  rP  rZ  Nr  r  s   &    r   &test_multiline_async_set_comprehension:TestSourcePositions.test_multiline_async_set_comprehension      // #   ;;GD]#mU^^<))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
         \         P                  ! R 4      pV P                  V4      w  r#V P                  V\        P
                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       R# )z            {x:
                2*x
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            MAP_ADDr|  rP  Nr  r~  s   &   r   !test_multiline_dict_comprehension5TestSourcePositions.test_multiline_dict_comprehension  r  r   c           
     h   \         P                  ! R 4      pV P                  V4      w  r#/ p\        W$4       VR,          P                  pV P                  V\        P                  4       V P                  VR^^^^^R7       V P                  VR^^^^^R7       V P                  VR^^^^$^R7       R# )z            async def f():
                {x:
                    2*x
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            r   r  r|  rP  rZ  Nr  r  s   &    r   'test_multiline_async_dict_comprehension;TestSourcePositions.test_multiline_async_dict_comprehension  r  r   c           
        \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       R# )zU            match x:
                case a, b:
                    pass
            MATCH_SEQUENCEr|  UNPACK_SEQUENCE
STORE_NAMENr  r~  s   &   r   test_matchcase_sequence+TestSourcePositions.test_matchcase_sequence  s    // # 
  ;;GD))-9IQqRA 	* 	G))-9JQqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
     H   \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       R# )zY            match x:
                case a, *b, c:
                    pass
            r  r|  	UNPACK_EXr  Nr  r~  s   &   r    test_matchcase_sequence_wildcard4TestSourcePositions.test_matchcase_sequence_wildcard  s    // # 
  ;;GD))-9IQqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
        \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       R# )zb            match x:
                case {"a" : a, "b": b}:
                    pass
            MATCH_MAPPINGr|  
MATCH_KEYSr  Nr  r~  s   &   r   test_matchcase_mapping*TestSourcePositions.test_matchcase_mapping      // # 
  ;;GD))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
        \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       R# )zg            match x:
                case {"a" : a, "b": b, **c}:
                    pass
            r  r|  r  r  Nr  r~  s   &   r   test_matchcase_mapping_wildcard3TestSourcePositions.test_matchcase_mapping_wildcard  r  r   c           
        \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       R# )zX            match x:
                case C(a, b):
                    pass
            MATCH_CLASSr|  r  r  Nr  r~  s   &   r   test_matchcase_class(TestSourcePositions.test_matchcase_class/  s    // # 
  ;;GD))-QqRA 	* 	G))-9JQqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c           
         \         P                  ! R 4      pV P                  V4      w  r#V P                  VR^^^	^^R7       V P                  VR^^^^^R7       R# )z\            match x:
                case C(1) | C(2):
                    pass
            r  r|  Nr  r~  s   &   r   test_matchcase_or%TestSourcePositions.test_matchcase_or?  sp    // # 
  ;;GD))-QqRA 	* 	G))-QrbQ 	* 	Hr   c           	     j    RpRV R2pV P                  V4      w  r4V P                  VR^^^ RR7       R# )rN   zg('z')r  i  r  N  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar}  )r   long_stringr  r  r   s   &    r   test_very_long_line_end_offset2TestSourcePositions.test_very_long_line_end_offsetK  sJ     !}B';;GD))-QqT 	* 	;r   c           
        R pV P                  V4      w  r#V P                  VR^^^^R7       V P                  VR^^^	^^R7       V P                  VR^^^	^^R7       V P                  VR^^^^^R7       V P                  VR^^^ ^^R7       R# )za - b @ (c * x['key'] + 23)r  r  r|  Nr}  r~  s   &   r   #test_complex_single_line_expression7TestSourcePositions.test_complex_single_line_expressionU  s    /;;GD))-Qrb 	* 	:))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	G))-QqRA 	* 	Gr   c                   \         P                  ! R 4      pVP                  ^ ,          p\         P                  ! \         P                  ! \         P
                  ! \         P                  ! R\         P                  ! 4       4      R\         P                  ! 4       4      . . 4      4      p\         P                  ! W24       \         P                  ! V4       W1P                  ^ &   \        VRR4       R# )zassert (
42
)r   eggsr    r!   N)r  r  r  r  Call	Attributer  r  copy_locationr  r   )r   r  old_nodenew_nodes   &   r   .test_multiline_assert_rewritten_as_method_callBTestSourcePositions.test_multiline_assert_rewritten_as_method_calld  s     yy*+99Q<88HHHHVSXXZ0HHJ
 

 	(-!!(+		!h'r   c                   R pR F  pV P                  V4      ;_uu_ 4        / p\        P                  ! VP                  V4      4      p\        P
                  ! 4       ;_uu_ 4        \        P                  ! R\        4       \        WC4       RRR4       VR,          P                  pV P                  VR^
^
^^R7       RRR4       K  	  R#   + '       g   i     LH; i  + '       g   i     K  ; i)z
        import abc, dis
        import ast as art

        abc = None
        dix = dis
        ast = art

        def f():
        {}
        ignoreNr   LOAD_GLOBALr  )
z    abc.a()z    art.a()z    ast.a()z    dis.a()z    dix.a()z    abc[...]()z    art()()z   (ast or ...)()z
   [dis]()z   (dix + ...)())re  r   r   formatr  r  r  rg  r!   r   ru  )r   source_templater  r
  r   r   s   &     r   $test_push_null_load_global_positions8TestSourcePositions.test_push_null_load_global_positionsy  s    

D d##	!)?)?)EF,,..))(MB+ / !~..11!  2  $#
 /. $##s$   AC &'C2C CC  C1c           	         R p\        VRR4      pV P                  VR^^^^R7       V P                  VR^^^^R7       R# )z/(
 lhs  
   .    
     rhs      
       ) += 42r    r!   r  r  
STORE_ATTRNr   ru  r   r   r   s   &  r   test_attribute_augassign,TestSourcePositions.test_attribute_augassign  sW    Fvx0))+A! 	* 	
 	)),Q1 	* 	
r   c           	     R    R p\        VRR4      pV P                  VR^^^^R7       R# )z-del (
 lhs  
   .    
     rhs      
       )r    r!   DELETE_ATTRr  Nr  r  s   &  r   test_attribute_del&TestSourcePositions.test_attribute_del  s5    Dvx0))-a!A! 	* 	
r   c           	     R    R p\        VRR4      pV P                  VR^^^^R7       R# )z)(
 lhs  
   .    
     rhs      
       )r    r!   r  r  Nr  r  s   &  r   test_attribute_load'TestSourcePositions.test_attribute_load  s5    @vx0))+A! 	* 	
r   c           	     R    R p\        VRR4      pV P                  VR^^^^R7       R# )z.(
 lhs  
   .    
     rhs      
       ) = 42r    r!   r  r  Nr  r  s   &  r   test_attribute_store(TestSourcePositions.test_attribute_store  s5    Evx0)),Q1 	* 	
r   c           	         R p\        VRR4      pV P                  VR^^^^R7       V P                  VR^^^^
R7       R# )z+(
 lhs  
   .    
     rhs      
       )()r    r!   r  r  r  Nr  r  s   &  r   test_method_call$TestSourcePositions.test_method_call  sW    Bvx0))+A! 	* 	
 	))&q1Q2 	* 	
r   c                   R  pVP                   P                  4        F^  w  r#rEV P                  V4       V P                  V4       V P                  V4       V P                  V4       V P                  W$3W534       K`  	  R# )c                      \         P                   \         P                  4        \        4       P                  ^ 4      P                  ^ 4       R# r  )barbazfiles
setdefaultrl   r   r   r   HTestSourcePositions.test_weird_attribute_position_regressions.<locals>.f  s7     	
Gjr   N)r   ri  rD  r  )r   r   r   rk  rq  rr  s   &     r   )test_weird_attribute_position_regressions=TestSourcePositions.test_weird_attribute_position_regressions  ss    
	 34**2I2I2K.DF  &  *  (  ,  $(1GH 3Lr   c           
        R EFU  pV P                  V4      ;_uu_ 4        \        V RV 2RR4      pV P                  \        VP                  4      ^4       V P                  VP                  ^ ,          \        P                  4       V P                  VP                  ^,          \        P                  4       V P                  VP                  ^ ,          VP                  ^,          4       V P                  \        VP                  ^ ,          P                  4       4      \        VP                  ^,          P                  4       4      4       RRR4       EKX  	  R#   + '       g   i     EKn  ; i)	lambda: arD  r    r9   N)r  z(a for b in c))re  r   r3   r  r   r   r  r  r  r]   ri  r  s   &  r    test_column_offset_deduplication4TestSourcePositions.test_column_offset_deduplication  s   
F f%%&F84hG  T^^!4a8%%dnnQ&7H%%dnnQ&7H##DNN1$5t~~a7HI##*779:*779: &%	
 &%%s   D0EE1c           	         R p\        VRR4      P                  ^ ,          P                   F'  p\        V\        P                  4      '       g   K%  Tp M	  V P                  XR^^^^	R7       R# )z5class C:
  def __init__(self):
    super().__init__()r    r!   r  r  N)r   r   r  r  r  ru  )r   r   r  r   s   &   r   test_load_super_attr(TestSourcePositions.test_load_super_attr  sg    JVXv6@@CMME%00 N 	))-a!A! 	* 	
r   c                   . ROpV EF=  pV P                  VR7      ;_uu_ 4        \        V4      R,          pVP                  P                  4       p\	        V4       F  w  rVV P                  WVR7      ;_uu_ 4        Vw  rxrV^ 8X  d   Yu;8X  d   ^ 8X  d   M M RRR4       KH  V P                  V^4       V P                  V^4       VP                  R4      ^,           p\        V4      pV P                  W4       V P                  W4       V P                  W4       V P                  W4       RRR4       K  	  RRR4       EK@  	  R#   + '       g   i     K  ; i  + '       g   i     EKj  ; i)f = lambda: x)r  r   )r   posNrl  )r  zf = lambda: 42zf = lambda: 1 + 2zf = lambda: a + b)
re  r   r   ri  r~  r3   findr  assertGreaterEqualr  )r   r  r  lambrE  r   r	  
start_linerk  	start_colrm  
code_startcode_ends   &            r   test_lambda_return_position/TestSourcePositions.test_lambda_return_position  s-   
  Gg..(- MM668	'	2FA33CF@
i6i&?a&?$	 43
 ((Q7((15%,\\#%6%:
#&w<//	F,,W?//C,,W? 43 3	 /.   433 /..s1   AE<E
E%BE0EE	EE1c                <   R  p\         P                  ! V4       F$  pVP                  w  r4 pV P                  W44       K&  	  \         P                  ! V4       Uu. uF(  pVP                  R8X  g   K  VP
                  e   K&  VNK*  	  pp\         P                  ! V4       Uu. uF  pVP                  R8X  g   K  VNK  	  ppV P                  \        V4      ^4       V P                  \        V4      ^4       Wg,            F  pVP                  w  r4rV P                  W1P                  P                  ^,           4       V P                  WAP                  P                  ^,           4       V P                  V^4       V P                  V	^4       K  	  R# u upi u upi )c                  p    \         ;_uu_ 4            \        uuR R R 4       #   + '       g   i     R # ; ir   )r\   Rrl   r   r   r   <TestSourcePositions.test_return_in_with_positions.<locals>.f	  s"     s   
$5	r  NrZ  )	r[  r\  rE  r3   r]  r  r  r   r   )
r   r   r  r  rk  r   	load_nonereturn_valuer  rm  s
   &         r   test_return_in_with_positions1TestSourcePositions.test_return_in_with_positions	  sf   	 ))!,E).&J!QZ2 - ),(<(<Q(? L(?u\\\1 6;ll U(?	 L+.+?+?+B 8+B%6 +B 8 	Y+\*A.--E7<4J)Z)B)BQ)FGXzz'@'@1'DEY+Wb) .L8s   F2FF"F:Frl   Nr  )1r`   ra   rb   rc   rn  ru  ry  r  r  r   r  r'  r(  r   flagsrc  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r+  r  r  r  r  rd   re   rf   s   @r   rX  rX    s    
$L8"22(8 G G2 __SYY'')TUG VG"G&G"F G,F G,F G,G G$G G G 
H;G(*&P




I&  "
@6* *r   rX  c                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestStaticAttributesi6	  c                     ! R  R4      pV P                  VP                  \        4       V P                  \	        VP                  4      RR.4       R# )c                   &   a  ] tR tRt o R tRtV tR# )*TestStaticAttributes.test_basic.<locals>.Ci9	  c                h    ^*;V n         V n        V P                  4        V P                  ^,           R# rP  N)rN   r   r   arrr"   s   &r   r   ,TestStaticAttributes.test_basic.<locals>.C.f:	  s&    "$$r   r  NrY  rf   s   @r   Cr   9	  s      r   r%  rN   r   N)r   rd   rI  r3   sortedr   r%  s   & r   
test_basicTestStaticAttributes.test_basic8	  sC    	 	 	a55u= 7 783*Er   c                h     ! R  R4      pV P                  \        VP                  4      . RO4       R# )c                   ,   a  ] tR tRt o R tR tRtV tR# )4TestStaticAttributes.test_nested_function.<locals>.CiD	  c                0    ^V n         ^V n        ^V n         R# rR  rd  r"   s   &r   r   6TestStaticAttributes.test_nested_function.<locals>.C.fE	  s    r   c                6    ^V n         ^V n        R p^Vn        R# )r&  c                 "    ^V n         ^V n        R# )r  N)ur   )r   rN   s   &&r   r   ATestStaticAttributes.test_nested_function.<locals>.C.g.<locals>.hN	  s    DFDFr   N)rx  ri   r   )r   r  r   s   && r   r{   6TestStaticAttributes.test_nested_function.<locals>.C.gJ	  s     r   r1  r   r  rx  ri   N)r`   ra   rb   rc   r   r{   rd   re   rf   s   @r   r%  r,  D	  s     
 r   r%  Nr4  r3   r&  rd   r'  s   & r   test_nested_function)TestStaticAttributes.test_nested_functionC	  s*    	 	  	 7 78:STr   c                     ! R  R4      pV P                  \        VP                  4      RR.4       V P                  \        VP                  P                  4      RR.4       R# )c                   :   a  ] tR tRt o R t ! R R4      tRtV tR# )1TestStaticAttributes.test_nested_class.<locals>.CiW	  c                "    ^*V n         ^*V n        R# r"  rd  r"   s   &r   r   3TestStaticAttributes.test_nested_class.<locals>.C.fX	      r   c                   &   a  ] tR tRt o R tRtV tR# )3TestStaticAttributes.test_nested_class.<locals>.C.Di\	  c                "    ^*V n         ^*V n        R# r"  r0  r"   s   &r   r{   5TestStaticAttributes.test_nested_class.<locals>.C.D.g]	  s    DFDFr   r0  Nr`   ra   rb   rc   r{   rd   re   rf   s   @r   rt   r?  \	  s        r   rt   rd  N)r`   ra   rb   rc   r   rt   rd   re   rf   s   @r   r%  r:  W	  s        r   r%  r  rx  ri   N)r3   r&  rd   rt   r'  s   & r   test_nested_class&TestStaticAttributes.test_nested_classV	  sP    	  	  	 7 783*E 9 9:S#JGr   c                     ! R  R4      p ! R RV4      pV P                  \        VP                  4      RR.4       V P                  \        VP                  4      RR.4       R# )c                   &   a  ] tR tRt o R tRtV tR# )-TestStaticAttributes.test_subclass.<locals>.Cie	  c                "    ^*V n         ^*V n        R# r"  rd  r"   s   &r   r   /TestStaticAttributes.test_subclass.<locals>.C.ff	  r=  r   rd  NrY  rf   s   @r   r%  rG  e	        r   r%  c                   &   a  ] tR tRt o R tRtV tR# )-TestStaticAttributes.test_subclass.<locals>.Dij	  c                "    ^*V n         ^*V n        R# r"  r0  r"   s   &r   r{   /TestStaticAttributes.test_subclass.<locals>.D.gk	  r=  r   r0  NrB  rf   s   @r   rt   rL  j	  rJ  r   rt   r  rx  ri   Nr5  )r   r%  rt   s   &  r   test_subclass"TestStaticAttributes.test_subclassd	  sX    	 	
	 	
 	 7 783*E 7 783*Er   rl   N)
r`   ra   rb   rc   r(  r6  rC  rO  rd   re   rf   s   @r   r  r  6	  s#     	FU&HF Fr   r  c                      a  ] tR tRt o ^dt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# )TestExpressionStackSizeis	  c                    \        V\        4      '       d   \        VR R4      p\        P                  ! \        P
                  ! \        VP                  4      4      4      pV P                  VP                  V4       R# )<foo>r   N)
r  r   r   mathceillogr  r  r  co_stacksize)r   r   max_sizes   && r   check_stack_size(TestExpressionStackSize.check_stack_sizey	  sU     dC  4(3D99TXXc$,,&789T..9r   c                X    V P                  R V P                  ,          R,           4       R# )zx and r  NrZ  rJ  r"   s   &r   test_and TestExpressionStackSize.test_and	  s    h/#56r   c                X    V P                  R V P                  ,          R,           4       R# )zx or r  Nr]  r"   s   &r   test_orTestExpressionStackSize.test_or	  s    g.45r   c                X    V P                  R V P                  ,          R,           4       R# )zx and x or r  Nr]  r"   s   &r   test_and_or#TestExpressionStackSize.test_and_or	  s    mdff4s:;r   c                X    V P                  R V P                  ,          R,           4       R# )zx < r  Nr]  r"   s   &r   test_chained_comparison/TestExpressionStackSize.test_chained_comparison	      ftvvo34r   c                X    V P                  R V P                  ,          R,           4       R# )zx if x else r  Nr]  r"   s   &r   test_if_else$TestExpressionStackSize.test_if_else	  s    ntvv5;<r   c                X    V P                  R V P                  ,          R,           4       R# )zx + r  Nr]  r"   s   &r   
test_binop"TestExpressionStackSize.test_binop	  ri  r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )[x, zx]Nr]  r"   s   &r   	test_list!TestExpressionStackSize.test_list	  "    cEDFFN2T9:r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )(rr  zx)Nr]  r"   s   &r   
test_tuple"TestExpressionStackSize.test_tuple	  ru  r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )ri  rr  zx}Nr]  r"   s   &r   test_set TestExpressionStackSize.test_set	  ru  r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )ri  zx:x, zx:x}Nr]  r"   s   &r   	test_dict!TestExpressionStackSize.test_dict	  s#    cGdff$44v=>r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )f(rr  r  Nr]  r"   s   &r   test_func_args&TestExpressionStackSize.test_func_args	  s"    dUTVV^3c9:r   c                    R  \        V P                  4       4       pV P                  RRP                  V4      ,           R,           4       R# )c              3   .   "   T F  pR V R2x  K  	  R# 5irN   z=xNrl   rF  s   & r   rH  ;TestExpressionStackSize.test_func_kwargs.<locals>.<genexpr>	       3]AaS)]rn  r  rD  r  NrK  rJ  rZ  r   r   kwargss   & r   test_func_kwargs(TestExpressionStackSize.test_func_kwargs	  s5    3U466]3ddii&77#=>r   c                f    V P                  R RV P                  ,          ,           R,           4       R# )o.m(rr  r  Nr]  r"   s   &r   test_meth_args&TestExpressionStackSize.test_meth_args	  s"    futvv~5;<r   c                    R  \        V P                  4       4       pV P                  RRP                  V4      ,           R,           4       R# )c              3   .   "   T F  pR V R2x  K  	  R# 5ir  rl   rF  s   & r   rH  ;TestExpressionStackSize.test_meth_kwargs.<locals>.<genexpr>	  r  rn  r  rD  r  Nr  r  s   & r   test_meth_kwargs(TestExpressionStackSize.test_meth_kwargs	  s5    3U466]3f		&(99C?@r   c                `    R pVRV P                   ,          ,          pV P                  V4       R# )z
def f(x):
z   x and x
N)rJ  rZ  r#  s   & r   test_func_and%TestExpressionStackSize.test_func_and	  s(    ''d#r   c                D    R pRV,          R,           p\        VRR4       R# )  zx,z=trT  r   Nr   )r   rh   r   s   &  r   test_stack_3050'TestExpressionStackSize.test_stack_3050	  s     ax$gx(r   c                r    R pRP                  R \        V4       4       4      pRV R2p\        VRR4       R# )r  rD  c              3   2   "   T F  pR V RV 2x  K  	  R# 5i)r   z:typeNrl   rF  s   & r   rH  <TestExpressionStackSize.test_stack_3050_2.<locals>.<genexpr>	  s     =Hq3qcqc*Hs   zdef f(z	):
  passrT  r   NrJ  )r   rh   r  r   s   &   r   test_stack_3050_2)TestExpressionStackSize.test_stack_3050_2	  s9    yy=E!H==vZ(gx(r   rl   N)r`   ra   rb   rc   rJ  rZ  r^  ra  rd  rg  rk  rn  rs  rx  r{  r~  r  r  r  r  r  r  r  rd   re   rf   s   @r   rR  rR  s	  sl      	A:76<5=5;;;?;?=A$
)) )r   rR  c                      a  ] tR tRt o R R l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R tR tR tR tR tR tRt V t!R# )!TestStackSizeStabilityi	  c           	     h  aa VV3R  lp\        ^^4       Uu. uF  qC! V4      P                  NK  	  pp\        \        V4      4      ^8w  da   ^ RIp^ RIpVP                  ! 4       pVP                  ! V! ^4      VR7       V P                  RV: RS: RVP                  4       : 24       R# R# u upi )c                 J  < / pR V S,          ,           pS'       d
   RV,           p\         P                  ! 4       ;_uu_ 4        \         P                  ! R\        4       \	        VRR4      pRRR4       \        XW4       VR,          P                  #   + '       g   i     L/; i)zdef func():
zasync r  z<script>r!   Nr  )r  r  r  rg  r   r!   r   )r   r  scriptr   async_r  s   &   r   compile_snippet@TestStackSizeStability.check_stack_size.<locals>.compile_snippet	  sz    B(1w;6F!F*((**%%h>vz6: + rf:&&&	 +*s   )BB"	N)filez4stack sizes diverge with # of consecutive snippets: r   )	rK  rX  r  r  r[  rs  rt  rw   rw  )	r   r  r  r  r   sizesr[  rs  outs	   &ff      r   rZ  'TestStackSizeStability.check_stack_size	  s    		' ;@1+F+Q#00+Fs5z?a++-CGGOA&S1II&+WcllnF G	   Gs   B/c                ,    R pV P                  V4       R# )z1
            if x:
                a
            NrZ  rx  s   & r   test_ifTestStackSizeStability.test_if	       	g&r   c                ,    R pV P                  V4       R# )z{
            if x:
                a
            elif y:
                b
            else:
                c
            Nr  rx  s   & r   rk  #TestStackSizeStability.test_if_else	       	g&r   c                ,    R pV P                  V4       R# )zV
            try:
                a
            except:
                b
            Nr  rx  s   & r   test_try_except_bare+TestStackSizeStability.test_try_except_bare	       	g&r   c                ,    R pV P                  V4       R# )z
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            Nr  rx  s   & r   test_try_except_qualified0TestStackSizeStability.test_try_except_qualified	      	 	g&r   c                ,    R pV P                  V4       R# )z
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            Nr  rx  s   & r   test_try_except_as)TestStackSizeStability.test_try_except_as 
  r  r   c                ,    R pV P                  V4       R# )z
            try:
                a
            except* ImportError:
                b
            else:
                c
            Nr  rx  s   & r   test_try_except_star_qualified5TestStackSizeStability.test_try_except_star_qualified
  r  r   c                ,    R pV P                  V4       R# )z
            try:
                a
            except* ImportError as e:
                b
            else:
                c
            Nr  rx  s   & r   test_try_except_star_as.TestStackSizeStability.test_try_except_star_as
  r  r   c                ,    R pV P                  V4       R# )z
                try:
                    a
                except* A:
                    b
                finally:
                    c
            Nr  rx  s   & r   test_try_except_star_finally3TestStackSizeStability.test_try_except_star_finally#
  r  r   c                ,    R pV P                  V4       R# )zg
                try:
                    a
                finally:
                    b
            Nr  rx  s   & r   test_try_finally'TestStackSizeStability.test_try_finally.
  r  r   c                ,    R pV P                  V4       R# )z8
            with x as y:
                a
            Nr  rx  s   & r   	test_with TestStackSizeStability.test_with7
  r  r   c                ,    R pV P                  V4       R# )zX
            while x:
                a
            else:
                b
            Nr  rx  s   & r   test_while_else&TestStackSizeStability.test_while_else>
  r  r   c                ,    R pV P                  V4       R# )z7
            for x in y:
                a
            Nr  rx  s   & r   test_forTestStackSizeStability.test_forG
  r  r   c                ,    R pV P                  V4       R# )z[
            for x in y:
                a
            else:
                b
            Nr  rx  s   & r   test_for_else$TestStackSizeStability.test_for_elseN
  r  r   c                ,    R pV P                  V4       R# )z
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            Nr  rx  s   & r   test_for_break_continue.TestStackSizeStability.test_for_break_continueW
  s    
 	g&r   c                ,    R pV P                  V4       R# )a6  
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            Nr  rx  s   & r   0test_for_break_continue_inside_try_finally_blockGTestStackSizeStability.test_for_break_continue_inside_try_finally_blocke
       	g&r   c                ,    R pV P                  V4       R# )a6  
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Nr  rx  s   & r   ,test_for_break_continue_inside_finally_blockCTestStackSizeStability.test_for_break_continue_inside_finally_blockv
  r  r   c                ,    R pV P                  V4       R# )a5  
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Nr  rx  s   & r   +test_for_break_continue_inside_except_blockBTestStackSizeStability.test_for_break_continue_inside_except_block
  r  r   c                ,    R pV P                  V4       R# )a
  
            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Nr  rx  s   & r   )test_for_break_continue_inside_with_block@TestStackSizeStability.test_for_break_continue_inside_with_block
  s     	g&r   c                ,    R pV P                  V4       R# )z
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            Nr  rx  s   & r   $test_return_inside_try_finally_block;TestStackSizeStability.test_return_inside_try_finally_block
       	g&r   c                ,    R pV P                  V4       R# )z
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            Nr  rx  s   & r    test_return_inside_finally_block7TestStackSizeStability.test_return_inside_finally_block
  r  r   c                ,    R pV P                  V4       R# )z
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            Nr  rx  s   & r   test_return_inside_except_block6TestStackSizeStability.test_return_inside_except_block
  r  r   c                ,    R pV P                  V4       R# )z~
            with c:
                if z:
                    return
                else:
                    a
            Nr  rx  s   & r   test_return_inside_with_block4TestStackSizeStability.test_return_inside_with_block
  s     	g&r   c                0    R pV P                  VRR7       R# )z>
            async with x as y:
                a
            Tr  Nr  rx  s   & r   test_async_with&TestStackSizeStability.test_async_with
       	gd3r   c                0    R pV P                  VRR7       R# )z=
            async for x in y:
                a
            Tr  Nr  rx  s   & r   test_async_for%TestStackSizeStability.test_async_for
  r  r   c                0    R pV P                  VRR7       R# )za
            async for x in y:
                a
            else:
                b
            Tr  Nr  rx  s   & r   test_async_for_else*TestStackSizeStability.test_async_for_else
  s     	gd3r   c                0    R pV P                  VRR7       R# )a  
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Tr  Nr  rx  s   & r   /test_for_break_continue_inside_async_with_blockFTestStackSizeStability.test_for_break_continue_inside_async_with_block
  s     	gd3r   c                0    R pV P                  VRR7       R# )z
            async with c:
                if z:
                    return
                else:
                    a
            Tr  Nr  rx  s   & r   #test_return_inside_async_with_block:TestStackSizeStability.test_return_inside_async_with_block
  s     	gd3r   rl   Nr  )"r`   ra   rb   rc   rZ  r  rk  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  rd   re   rf   s   @r   r  r  	  s     G('	''''	'	'	''''''''"'"'"'
'
'
''44444 4r   r  zneed _testinternalcapi modulec                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )TestInstructionSequencei  c                    T P                  VP                  4        Uu. uF0  p\        P                  V^ ,          ,          3VR,          ,           NK2  	  upV4       R# u upi )r   rG  N)r3   r\  r  r]  )r   seqr  r   s   &&& r   compare_instructions,TestInstructionSequence.compare_instructions  sN    #BVBVBXYBXQ6==1.01R588BXY!	#Ys   6Ac                   \         P                  ! 4       pRR lpV! VR^^4       V! VRVP                  4       ;p^4       V! VR^^4       V! VRVP                  4       ;p^4       VP                  V4       V! VR^^4       VP                  V4       V! VR^ ^4       . ROpT P	                  Y Uu. uF  qfR,           NK  	  up4       R# u upi )r   c                 X    V P                  \        P                  V,          W#WEV4       R # r   )addopr  opmap)r  r]  r  blbcelecs   &&&&&&&r   add_op3TestInstructionSequence.test_basics.<locals>.add_op  s    IIfll6*ErrBr   r  JUMPrZ  N)r   r   r   ))r  r   r   )r  r&  r  )r  r   r<  )r  r'  r&  )r  r  r&  )rZ  Nr<  )_testinternalcapinew_instruction_sequence	new_label	use_labelr  )r   r  r  lbl1lbl2r  exs   &      r   test_basics#TestInstructionSequence.test_basics  s    88:	C 	sL!Q'sFCMMO3DQ7sL!Q'sFCMMO3DQ7dsL!Q'dsNAq) 	!!#x'HxWx'HI'Hs   2C
c                   \         P                  ! 4       pVP                  \        P                  R ,          ^^^ ^ ^ 4       \         P                  ! 4       pVP                  \        P                  R ,          ^^^ ^ ^ 4       V P                  VR.4       V P                  VR.4       VP                  V4       V P                  VR.4       V P                  VP                  4       ^ ,          R.4       R# )r  N)r  r   r   r   r   r   )r  r  r  r   r   r   )r  r  r  r  r  r  
add_nested
get_nested)r   r  nesteds   &  r   test_nested#TestInstructionSequence.test_nested%  s    88:		&,,|,aAq!<";;=V\\,/Aq!Q?!!#(E'FG!!&+H*IJv!!#(E'FG!!#.."21"58U7VWr   c                &   R pRp\         P                  ! V4       Fl  p\        V4       UUu/ uF  w  rERV^,            2VbK  	  ppp\        VP                  ! R/ VB 4      pVR,          pV P                  VP                  V4       Kn  	  R# u uppi )zyclass T:
    def __init__(self):
        self.{V1} = 10
        self.{V2} = 10
    def foo(self):
        self.{V3} = 10
VTNr  rl   )	itertoolspermutationsr~  r   r  r3   rd   )	r   r   
attributespermr   r  	var_namesr  rF  s	   &        r   !test_static_attributes_are_sorted9TestInstructionSequence.test_static_attributes_are_sorted2  s    ' 	 %
**:6D:CD/J/wq1QUGd*/IJ$++2	23B3AQ44jA	 7Js   Brl   N)
r`   ra   rb   rc   r  r   r&  r0  rd   re   rf   s   @r   r	  r	    s"     #J2XB Br   r	  __main__)(ru  r[  rs  r+  rU  r  r  r'  r   r  r  r  r  r   r  r  ImportErrorr  r   test.supportr   r   r   r   test.support.bytecode_helperr   test.support.os_helperr	   TestCaser   r.  rX  r  rR  r  r+  r(  r	  r`   mainrl   r   r   <module>r9     sW    
 	    	  
 
      3 3 D +zKH%% zKx34H-- 4l e	*(++ e	* e	*P:F8,, :FzJ)h// J)ZC4X.. C4J
 		"d*,KL9Bh// 9B M 9Bx zMMO cY  s   E   	EE