python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_compile.cpython-312.opt-1.pyc

͑e5vddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZddl
mZmZmZmZddlmZGddej(ZeGddej(ZGd	d
ej(ZGddej(Zed
k(rej4yy)N)support)
script_helperrequires_debug_rangesrequires_specializationC_RECURSION_LIMIT)FakePathceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ejej"dd
ZdZdZdZdZdZdZdZej6dk(rdZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%d Z&d!Z'd"Z(d#Z)ejTd$Z+d%Z,d&Z-d'Z.d(Z/ejTejej"dd)Z0d*Z1d+Z2ejTd,Z3ejTd-Z4ejTd.Z5ejTd/Z6ejTd0Z7ejTd1Z8ejTd2Z9d3Z:d4Z;ejxd5d6Z=ejTd7Z>d8Z?d9Z@d:ZAd;ZBd<ZCd=ZDd>ZEd?ZFd@ZGdAZHdBZIdCZJdDZKdEZLejTdFZMdGZNdHZOdIZPdJZQdKZRdLZSdMZTdNZUdOZVyP)Q
TestSpecificsct|ddy)N<single>singlecompileselfsources  E/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_compile.pycompile_singlezTestSpecifics.compile_singles
H-cF|jt|j|yN)assertRaisesSyntaxErrorrrs  rassertInvalidSinglez!TestSpecifics.assertInvalidSingles+t':':FCrc8tdddtdddy)Nhi<test>execzhi
rrs rtest_no_ending_newlinez$TestSpecifics.test_no_ending_newlinesh'&)rctdddy)Nrrrrs r
test_emptyzTestSpecifics.test_emptysHf%rcltdddtdddtdddtdddy)Nz
rr
zhi
stuff
def f():
    pass
z(this_is
really_old_mac
def f():
    passrrs rtest_other_newlinesz!TestSpecifics.test_other_newlines s4&)h'5xH=xPrc|jttdddddl}|j}t|dd|j
d|t|d|y)Nz
__debug__ = 1?r
r	__debug__sureF)rrrbuiltinsr)setattrassertEqual)rr+prevs   rtest_debug_assignmentz#TestSpecifics.test_debug_assignment&sN+whO!!+v.D)+t,rcH|jttd|jttd|jttd|jttd|jttd|jttdy)Nzlambda a,a:0zlambda a,a=1:0zlambda a=1,a=1:0zdef f(a, a): passzdef f(a = 0, a = 1): passdef f(a): global a; a = 1)rrevalrrs rtest_argument_handlingz$TestSpecifics.test_argument_handling/ss+t^<+t-=>+t-?@+t-@A+t-HI+t-HIrc>|jttdddy)Nz1+*3filenamerrrrrs rtest_syntax_errorzTestSpecifics.test_syntax_error8s+w
FKrc>|jttdddy)Nz	f(None=1)<string>rr6rs rtest_none_keyword_argz#TestSpecifics.test_none_keyword_arg;s+wZPrc:|jttdy)Nr1rrrrs rtest_duplicate_global_localz)TestSpecifics.test_duplicate_global_local>s+t-HIrcGdd}|}t}td|||j|jd	td|||j	dtd|||j|jdt
d	ftd
|||j|jd|ftd|||j|jd|f|jttd|Gdd
}|}|jttd||Gddt}|}td|||j|ddy#t
$rYwxYw)Nc"eZdZdZdZdZdZy)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Mz9Test mapping interface versus possible calls from eval().c|dk(rytNa)KeyErrorrkeys  r__getitem__zNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__Es#:rc||f|_yr)resultsrrGvalues   r__setitem__zNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__Is
 #U|rctdS)Nxyz)listrs rkeyszGTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysKsE{"rN)__name__
__module____qualname____doc__rHrMrQrrMr@CsG

,
#rrWzz = a)zrDzz = bzDid not detect a KeyErrorz	z = dir()rXrOz
z = globals()zz = locals()ceZdZdZy)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.AzNon-mappingN)rRrSrTrUrVrrArZ`srr[ceZdZdZy)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Dc:|dk(rytj||SrB)dictrHrFs  rrHzNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__hs#:''c22rN)rRrSrTrHrVrrDr]gs
3rr`rD)
globalsrr-rJfail	NameErrorrPr	TypeErrorr_)rrWmgr[r`ds       r)test_exec_with_general_mapping_for_localsz7TestSpecifics.test_exec_with_general_mapping_for_localsAsS		#		#
CIWaI.	3!Q
II12[!QS$u+$67_a#S!H-^Q"S!H-)T7A6		
C)T7Aq9	3	3

CWa3$5		s
E11	E>=E>zexhausts limited stack on WASIcttdz}dd|zz}i}tjd|fdzz}t	|||j|dddy)	Ng?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
            
fr)intrtextwrapdedentrr-)rrepeatlongexprrfcodes     rtest_extended_argzTestSpecifics.test_extended_argpsm&,-. ";r># #$$	
T1
3A&rc:|jttdy)Nzdef f(a=1, b): passr<rs rtest_argument_orderz!TestSpecifics.test_argument_orders+t-BCrc|jttd|jttd|jttd|jttdy)N2ez2.0e+z1e-z3-4e/21)rrr2rs rtest_float_literalsz!TestSpecifics.test_float_literalssJ+tT2+tW5+tU3+tY7rcHtjd}t|ddy)NzN
            if 1:
                if 2:
                    pass
            r9rrnrorrss  rtest_indentationzTestSpecifics.test_indentations#OO

	:v&rcdjdgdzdgz}t|dd}|j|jd|j	Dcgc]\}}}|
}}}|j|dd	gycc}}w)
Nr"
spamfnrri)joinrr-co_firstlinenoco_lines)rs256co_lineliness      rtest_leading_newlinesz#TestSpecifics.test_leading_newlinessywwv|vh./
T4
(**A.(*
6*!Q66C)7s
A;cXdD]}|jtt||jtdd|jtdd|jtdd|jtdd|jtdd	|jtd
d|jtdd|jtd
d|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd|jtdd |jtd!d"|jtd#d$|jtd%d&|jtd'd(y))N)0777870xjz0x.0e0900000000000000800000000000000000000000000090000000000000080b420BADCAFE0o123456789z0b1.1z0o4.20b101j0o153j0b100e10o777e107770007770000000000000070xffz0777.i	z0777.08000000000000000000000000000000000000000000000000000777e00777e1iZ0e0rz	0000e-012z09.5g#@0777jyH@00000jz00.00e3z090000000000000.g聰vBz&090000000000000.0000000000000000000000090000000000000e0z090000000000000e-0090000000000000jy聰vBz000000000000008.g @z000000000000009.g"@0b101010*z-0b0000000000100o777iz
-0o0000010i)rrr2r-)rargs  r!test_literals_with_leading_zeroesz/TestSpecifics.test_literals_with_leading_zeroess1	6C

k45	6	
fs+g,h-XY[^_h.ea(k*A.fs+g-ea(eb)fq)ea(01?CFGY12OD23_E01?C01260126j)2./0"5g,l+R0rcd}dd|zd}tj|5t|dddddtj|dz
5|jt5}t|dddddj
}|j
|jd	|jd
t||jdt|dddy#1swYxYw#1swY|xYw#1swYyxYw)Niza = 1
b = 2
c = 3z
d = 4z<long_int_pass>rrz<long_int_fail>zExceeds the limit z Consider hexadecimal )
radjust_int_max_str_digitsrrr	exceptionr-linenoassertInstr)rnrerr_ctxexcs     rtest_int_literals_too_longz(TestSpecifics.test_int_literals_too_longs%c!eWG4

.
.q
1	7F-v6	7

.
.qs
3	>"";/
;7 16:
;##CSZZ+MM.C9MM2CH=
	>	>	7	7
;
;	>	>s0C"C:%C.3A&C:"C+.C7	3C::Dc2tjdk(r<d}|jt|d|jtd|zdn`tjdk(r<d}|jt|d|jtd|zd	n|j	d
|jtdtjdz
zt|jtdtjd
z
zty)Ni
0xffffffffl-l0xffffffffffffffffllz)How many bits *does* this machine have???z%sr)sysmaxsizer-r2rbassertIsInstancerm)rall_one_bitss  rtest_unary_minuszTestSpecifics.test_unary_minuss;;*$'LT,/<T#"45{C
[[/
//LT,/1EFT#"457LMIIAB	
d4CKK<!+;#<=sCd4CKK<!+;#<=sCrrcd}d}d}d}d}d}d}d}|jjjD]}	|	|j|	ty)	Nllllllrl)test_32_63_bit_values__code__	co_constsrrm)
rrCbcrgerkrfhvariables
          rrz#TestSpecifics.test_32_63_bit_valuessaAA A A$A$A$A$A 66??II
9'))(C8
9rcVd\}}|j|d|j|dy)N)rrrr-)rijs   rtest_sequence_unpacking_errorz+TestSpecifics.test_sequence_unpacking_errors+!ABrcgd}|D]A}|dz
}|jtt|dd|jtt|ddCy)N)zNone = 0z	None += 0z__builtins__.None = 0zdef None(): passzclass None: passz(a, None) = 0, 0zfor None in range(10): passzdef f(None): passzimport Nonezimport x as Nonezfrom x import Nonezfrom x import y as Nonertmpr
rr6)rstmtsstmts   rtest_none_assignmentz"TestSpecifics.test_none_assignmentsQ

	IDDLDk7D%Jk7D%H	Ircgd}gd}|D]}t|dd|D]}|jtt|dd!y)N)z
import syszimport os, syszimport os as barzimport 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,))zimport (os, sys)zimport (os), (sys)zimport ((os), (sys))zimport (syszimport sys)zimport (os,)zimport os As barzimport os.path a barzfrom sys import stdin As stdoutzfrom sys import stdin a stdoutzfrom (sys) import stdinz%from __future__ import (nested_scopesz%from __future__ import nested_scopes)z0from __future__ import nested_scopes,
generatorszfrom sys import (stdinzfrom sys import stdin)z%from sys import stdin, stdout,
stderrzfrom sys import stdin sizfrom sys import stdin,zfrom sys import (*)z(from sys import (stdin,, stdout, stderr)z from sys import (stdin, stdout),rr)rrr)rsucceedrbrs    rtest_importzTestSpecifics.test_importsT"0	)DD%(	)	IDk7D%H	Ircd}|\}}|jt|jt|jy)Ncdd}dd}||fS)Nc|SrrVxs r<lambda>zITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>DQrc|SrrVrs rrzITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>Errr)rrV)f1f2s  rrkz7TestSpecifics.test_for_distinct_code_objects.<locals>.fCsBBr6Mr)assertNotEqualidr)rrkrrs    rtest_for_distinct_code_objectsz,TestSpecifics.test_for_distinct_code_objectsAs4	BBr{{OR_=rc@d}|j|jy)Ncy)NfoorVrVrrrz/TestSpecifics.test_lambda_doc.<locals>.<lambda>Kr)assertIsNonerU)rls  rtest_lambda_doczTestSpecifics.test_lambda_docJs!))$rc,d}|jtt|ddd}t|dd|jt	|dd}|jt	|dd}|jt	|dd	}|jt	|dd
}|jt	|dd}|jt	|dd
}|jt	|dd}|jt	|dy)Ns## -*- coding: badencoding -*-
pass
rru%# -*- 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 -*-
¤)rrrr-r2rrrs  r
test_encodingzTestSpecifics.test_encodingNs7+weVD<eV$dZ0dZ0dV,8dZ07dV,<d\2Cd%MNDd%IJrcGddt}|}d|d<|j|dd|dxxdz
cc<|j|dd|d=|jd|d|d<|j|dd|dxxdz
cc<|j|dd|d=|jd|d|dd|j|ddd|ddxxxdz
ccc|j|ddd|dd=|jtdd|d|ddddf<|j|ddddfd|ddddfxxdz
cc<|j|ddddfd|ddddf=|jtddtddf|d|ddd<|j|dddd|dddxxdz
cc<|j|dddd|ddd=|jtddd|d|ddddddf<|j|ddddddfd|ddddddfxxdz
cc<|j|ddddddfd|ddddddf=|jtdddtdddf|d|d<|j|dd|dxxdz
cc<|j|dd|d=|jt|d|d<|j|dd|dxxdz
cc<|j|dd|d=|jttf|y)	Nc*eZdZdZdZdZdZdZy).TestSpecifics.test_subscripts.<locals>.str_mapci|_yr)datars r__init__z7TestSpecifics.test_subscripts.<locals>.str_map.__init__gs		rc2|jt|SrrrrFs  rrHz:TestSpecifics.test_subscripts.<locals>.str_map.__getitem__isyyS**rc4||jt|<yrrrKs   rrMz:TestSpecifics.test_subscripts.<locals>.str_map.__setitem__ks&+		#c(#rc0|jt|=yrrrFs  r__delitem__z:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__msIIc#h'rc0t||jvSr)rrrFs  r__contains__z;TestSpecifics.test_subscripts.<locals>.str_map.__contains__os3x499,,rN)rRrSrTrrHrMrrrVrrstr_maprfs

+
,
(
-rrrr)rrr.)..)objectr-assertNotInsliceEllipsis)rrrgs   rtest_subscriptszTestSpecifics.test_subscriptscs
	-f
	-
I!1q!	!	1q!
aDA$4!$	$14!$
dG#!A1Q#	!A!1Q#
acFq!a(!A#qs(1Q3!8a(	!A#qs(q1Q3!8a(
ac1Q3hK%1+uQ{3Q7!Aa%1Qq51%	!Aa%A
1Qq51%
a!eHq!Q+!Aa%1Q,1Qq5!Aa%<!,	!Aa%1Q,11Qq5!Aa%<!,
a!eQqUlO%1a.%1a.91=#3#	#!3#
cF1%(8a(	(q8a(
hK(H-q1rcjd}|djdtdDz}t|ddy)Nzdef f(%s): pass, c3*K|]}d||fz
yw)za%d:%dNrV.0rs  r	<genexpr>z6TestSpecifics.test_annotation_limit.<locals>.<genexpr>s<Ax1Q%'<i,r(rrrangerr{s  rtest_annotation_limitz#TestSpecifics.test_annotation_limits0	TYY<s<
<<3rcGdd}|jd|jjj|jd|jjj|jd|jjj|jd|jjjy)NceZdZdZy)&TestSpecifics.test_mangling.<locals>.Acd}d}ddl}ddl}y)Nrrr)_A__mangled_mod__package__.module)_A__mangled__not_mangled__r__package__s    rrkz(TestSpecifics.test_mangling.<locals>.A.fs	"#$)rN)rRrSrTrkrVrrr[rs
*rr[rrrr)rrkrco_varnames)rr[s  r
test_manglingzTestSpecifics.test_manglings	*	*	


mQSS\\%=%=>

')A)AB

')A)AB

mQSS\\%=%=>rct}|jjdr|dd}t|d5}|j	}dddddgddgd	d
gddg|gg}|D]\}}t|d
|zd}t|d|zdtj}|jt|tjk(t|d|zd}|j|||j|jd|ztdddtj}|jtt
|dd|jtt
t
jddt
j}t
j g|_|jtt
|ddy#1swYtxYw)Npycrzutf-8)encodingz<assign>zx = 5z	<ifblock>zif True:
    pass
z
<forblock>z!for n in [1, 2, 3]:
    print(n)
z	<deffunc>zdef foo():
    pass
foo()
z%s1rz%s2z%s3zprint(1)r9z<ast>r2)__file__lowerendswithopenreadr_ast
PyCF_ONLY_AST
assertTruetypeModuler-co_filenamerrdIfBoolOpbody)	rfnamerk	fcontentssample_coderrco1astco2s	         rtest_compile_astzTestSpecifics.test_compile_asts;;=!!%(#2JE
%'
*	!aI	!!
45
DE
=>
I
'	=KE4$
v6C$
vt7I7IJCOODI45#uu}f5CS#&S__eem<	=j*fd6H6HI)Wc7FC	
)Wdggi&IkkmKKM?)Wc7FC;	!	!sF;;Gc
tjtjtjtjdtj
tjdtjgtjdtj
gg}|jtd	5ttj|d
ddddy#1swYyxYw)Nr)rctxr)rL)rLrr9Callable)nametype_paramsrL)r0type_ignoreszTypeAlias with non-Name namez<file>r)r5r,	TypeAlias	SubscriptNameLoadConstantStoreassertRaisesRegexrdrfix_missing_locations)rres  rtest_compile_invalid_typealiasz,TestSpecifics.test_compile_invalid_typealiassJJ

!hh%SXXZ@!ll5IIK
!#((jchhjA



#
#I/M
N	DC--a0(FC	D	D	Ds!C99Dcrdfd}||||i}|j|dddy)Nrcdz
SNrrVrsrrkz3TestSpecifics.test_dict_evaluation_order.<locals>.fs
FAHrr)rrr)rrkrgrs   @rtest_dict_evaluation_orderz(TestSpecifics.test_dict_evaluation_orders9
	
S!#qsAC aL)rcTdD]+}td|d}|j|jd-tdt	dfD]-}|jt5td|dddd/|jttdtddy#1swY`xYw)N)file.pyfile.pypassrrNrO)rr-r-	bytearray
memoryviewrrdrP)rr5rrs   rtest_compile_filenamez#TestSpecifics.test_compile_filenames-	:H68V4DT--y9	:"*-z*/EE	2H""9-
2&1
2
2	2	
)Wfd:6FO
2
2sBB'	cd}t|dd}|jD]C}t|tjs|j|j|jEy)Nzdef f(): pass
def g(): passmyfiler)rr
isinstancetypesCodeTypeassertIsr-)rr|robjs    rtest_same_filename_usedz%TestSpecifics.test_same_filename_used	sL.Ax(;;	>C#u~~.

cooq}}=	>rc|jd|jd|jd|jd|jd|jd|jd|jd|jd	|jd
|jd|jd|jd
|jd|jdy)Nz1 + 2z
1 + 2z1 + 2
z1 + 2

z1 + 2		
z1 + 2		
        z1 + 2 # one plus twoz1; 2zimport sys; syszdef f():
   passzwhile False:
   passz
if x:
   f(x)zif x:
   f(x)
else:
   g(x)zclass T:
   passzc = '''
a=1
b=2
c=3
''')rrs rtest_single_statementz#TestSpecifics.test_single_statementsG$I&I&K(M*1223F#-./034,-<=/09:rc6|jd|jd|jd|jd|jd|jd|jd|jd|jd	y)
Nz1
2z
def f(): passza = 13
b = 187zdel x
del yzf()
g()zf()
# blah
blah()zf()
xy # blah
blah()zx = 5 # comment
x = 6
zc = '''
d=1
'''
a = 1

b = 2
)rrs rtest_bad_single_statementz'TestSpecifics.test_bad_single_statement"s  (  1  !23  0  ,  !67  !9:  !;<  !FGrcfd}tj5}tjj	|d}t|d5}|j
|dddtj|d}ddd|jdjy#1swYFxYw#1swY2xYw)Ns0000
00000000000


bad.pywbr%source code cannot contain null bytestempfileTemporaryDirectoryospathrr&writerrun_python_until_endrerrrsrctmpdrfpress      r"test_particularly_evil_undecodablez0TestSpecifics.test_particularly_evil_undecodable-s4

(
(
*	<ddH-Bb$
2

44R8;C		<
	


>H

	<	<#-B'B B'B$	 B''B0cfd}tj5}tjj	|d}t|d5}|j
|dddtj|d}ddd|jdjy#1swYFxYw#1swY2xYw)Ns#
#
rarbrrcrdrls      r$test_yet_more_evil_still_undecodablez2TestSpecifics.test_yet_more_evil_still_undecodable7s

(
(
*	<ddH-Bb$
2

44R8;C		<
	


>H

	<	<rrctdzdztdzttdzdfd	}|dd|dd|dd	|dd
y)Nrrdg?c||
zz}t|d|fD]J}|||zz}dj|||}	jt|5t|d|dddLy#1swYWxYw)NrzCompiling ({!r} + {!r} * {}))msg)rformatrRecursionError)prefixrepeatedmode	expect_okdepthbrokendetailscrash_depth
fail_depthr
success_depths       rcheck_limitz@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limitKsM!99IIx.$k2
4(U"228??"He5&&~7&C4FHd344	
444sA))A2	rCz()z.bz[0]z*a)r
)rrm)rrrrrs` @@@rtest_compiler_recursion_limitz+TestSpecifics.test_compiler_recursion_limitAsb'*Q.
'#--34
	4	4	CCCCrc|jtd5tdddddd|jtd5ttddddddttddddd}|j	t|dttd	dddd}|j	t|dttd
dddd}|j	t|d|j	ttd	dddt
}ttddd||j	|dd
y#1swY:xYw#1swYxYw)Nzcannot contain nullz123<dummy>r2s123rrs1234s$23$sax = 123rrD)rDrrrRr-r2r_r)rrr	namespaces   rtest_null_terminatedz"TestSpecifics.test_null_terminated]sK
#
#K1F
G	2Iy&1	2

#
#K1F
G	?Jz*Iv>	?z*-a3YGdR(z'*1R0)VDdR(z'*1R0)VDdR(	
j1!B78"=F	Z
$Qr
*I63,	2	2	?	?sEE*E'*E4c|jjD]}t|t|k(sy|jd|d|jjy)Nzunable to find constant z in )rrreprrb)rfuncexpectedconsts    rcheck_constantzTestSpecifics.check_constantqsP]],,	=EE{d8n,	=
II!4==#:#:<
=rcfd}|d|d|d|d|ddd}}j|jj|jjj|tjt
|t
tdd}}d	}j|jjd
|jjd
djtt|jjd
|jjd
dd}}j|jj|jjj|tdhj|dy)
Nc0i}d|d|}t|||d}|d}j|jj|jjj	||jt
|t
|yNzf1, f2 = lambda: z
, lambda: rr)rrYrrrr-r)rnsrrrrrs     rcheck_same_constantz?TestSpecifics.test_merge_constants.<locals>.check_same_constantsyB8=uEDrNDBDBMM"++//1F1FGE*T"$Ze5rrsabcabccy)N.rVrVrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>rrcy)N
not a namerVrVrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>rrcy)NrrVrVrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>rrc
|dvS)N>rrVrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>sq--rrc
|dvSN>rrVrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>
18rc
|dvSrrVrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>s
qCxr)rYrrrr	r-rnextiter	frozensetr*)rrrrf3s`    rtest_merge_constantsz"TestSpecifics.test_merge_constants{s[
	6	D!AC F#E"kB

bkk++R[[-B-BCB)bdT(^4&'>B
-

bkk++A.kk++A.q1	3

d4 5 5a 89:kk++A.	0
$%7B

bkk++R[[-B-BCB	1#/1rcd}d}|j|jj|jjy)Nc.|jjSr)yrXrs rrz5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>qssuurc.|jjSr)rrrCs rrz5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>rr)rYrco_linetable)rrrs   rtest_merge_code_attrsz#TestSpecifics.test_merge_code_attrss0


bkk..0H0HIrcVd}|j|jjdy)Nc	y	docstringusedrVrVrrrkz2TestSpecifics.test_remove_unused_consts.<locals>.fsrrr-rrrrks  rtest_remove_unused_constsz'TestSpecifics.test_remove_unused_constss&	 	
--.	0rcVd}|j|jjdy)Nc	yNrrVrVrrrkz?TestSpecifics.test_remove_unused_consts_no_docstring.<locals>.fsrrrrs  r&test_remove_unused_consts_no_docstringz4TestSpecifics.test_remove_unused_consts_no_docstrings&	 	
--'	)rc^d}dg}|jd|jdt|D],}|jd|d|jd|d.|jdd	j|}i}tt	|d
d|t|||d}t
gd
t|Dcgc]}d|	c}z}|j|jj|d	j|dd}|j||ycc}w)Niz	def f():
z	s = ''
z	for i in range(1):
z		if True: s += 'tz'
z		if False: s += 'fz
	return s
r"rNrrk)Nr"rtr)
appendrrr2rrtupler-rr)rNrrrrfrkrs       r'test_remove_unused_consts_extended_argsz5TestSpecifics.test_remove_unused_consts_extended_argss~L!,-q	8AKK.qc56KK/s#67	8	
N#wwt}WT9f
-q1T1

cF58)DaAaS')DDE--x8778AB<(13'*EsD*
cVd}|j|jjdy)NcyrrrVrVrrrz0TestSpecifics.test_strip_unused_None.<locals>.f1srrr)rrs  rtest_strip_unused_Nonez$TestSpecifics.test_strip_unused_Nones$		
..0ABrcd}|jdttj|djy)z9Regression test for issue35193 when run under clang msan.cy)Nr)RuntimeErrorrVrrunused_code_at_endzcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_endsrRETURN_CONSTrN)r-rPdisget_instructionsopname)rrs  r9test_peephole_opt_unreachable_code_array_access_in_boundszGTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundss:	.	
%%&89:2>EE	Grcfd}|dd|dd|dd|dd|d	d
dd}}j|j|jj|d
j|djt	|t	d
jt	|t	ddd}}j|j|jj|tdhj|tdhj
|dj
|dy)Nci}td|d|||d}|d}j|j|jj|j|jj	||j	||jt
|t
|jt
|t
|yr)rassertIsNotrrrr-r)const1const2rrrrs     rcheck_different_constantszJTestSpecifics.test_dont_merge_constants.<locals>.check_different_constantssBffErJDBDBR[["++6R[[9F+F+T"$Zf6T"$Zf6rrrg)r)rrCar)rcy)NrrVrVrrrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>rrcy)NrVrVrrrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>rrrrc
|dvSrrVrs rrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>rrc
|dvS)N>rrVrs rrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>s
qEzr)rrrr-rrr*)rrrrs`   rtest_dont_merge_constantsz'TestSpecifics.test_dont_merge_constantss$
	7	"!S)!$-!$/!#t,!&'2
Bbkk2B&B&bdT%[1bdT%[1$%9Bbkk2B	1#/B	3% 0113 rc0tdtddy)N42test_compile_pathliker
)rrrs rtest_path_like_objectsz$TestSpecifics.test_path_like_objects#sh67Brcpuc$tddzddy)Nzif a: b
i@
rrrrs rtest_stack_overflowz!TestSpecifics.test_stack_overflow's	f$i8rc$d}d}d}d}||||g}|D]y}ttj|}|jt	|d|jd|dj|jd|dj{y)NcyrrVrVrrunused_block_ifzPTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if1srcyrrVrVrrunused_block_whilezSTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while5src	yrrVrVrrunused_block_if_elsezUTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_else9src	yrrVrVrrunused_block_while_elsezXTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_else?srrrr)rPrrassertLessEquallenr-rargval)rrrrrfuncsropcodess        r)test_dead_blocks_do_not_generate_bytecodez7TestSpecifics.test_dead_blocks_do_not_generate_bytecode/s				!"4%'>@	7D3//56G  Wq1^WR[-?-?@T72;#5#56		7rcd}d}||g}|D]y}ttj|}|jdt	||jd|dj
|jd|dj{y)NcyrrVrVrrbreak_in_whilez;TestSpecifics.test_false_while_loop.<locals>.break_in_whileOrcyrrVrVrrcontinue_in_whilez>TestSpecifics.test_false_while_loop.<locals>.continue_in_whileSrrrrr)rPrrr-rrr)rrrrrrs      rtest_false_while_loopz#TestSpecifics.test_false_while_loopNs		 !23	6D3//56GQG-^WQZ->->?T71:#4#45		6rcrd}d}d}d}||||g}|D]}|j|5ttj|}|j	t|d|j
d|dj|jd	|d
jdddy#1swYxYw)Nc|SrrVrs rand_truez;TestSpecifics.test_consts_in_conditionals.<locals>.and_truearcdS)NFrVrs r	and_falsez<TestSpecifics.test_consts_in_conditionals.<locals>.and_falsedsrcdS)NTrVrs ror_truez:TestSpecifics.test_consts_in_conditionals.<locals>.or_truegsrc|SrrVrs ror_falsez;TestSpecifics.test_consts_in_conditionals.<locals>.or_falsejrrrrLOAD_rRETURN_VALUEr)	subTestrPrrrrrrr-)rrrrrrrrs        rtest_consts_in_conditionalsz)TestSpecifics.test_consts_in_conditionals`s				9gx8	ED4(
Es33D9:$$S\15

gwr{'9'9:  1C1CD	
E
E	E
E
EsA8B--B6	cgd}|D]}i}ttj|||d}|j|j5tt
j|}|Dcgc]}|j}}|jd||jd||jd|dddycc}w#1swYxYw)N)z[            import os
            def foo():
                return os.uname()
            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)
            rrLOAD_METHOD	LOAD_ATTRCALL)rrnrorrRrPrrrrr)rsourcesrrrropcodeinstructionss        rtest_imported_load_methodz'TestSpecifics.test_imported_load_methodws
,		4FI()4U#D4==1
4s33D9:<CD&

DD  =

k<8

fl3
4
4			4 E
4
4s#C
/C8C
C

C	c<d}|jjdz}y)Nctyr)printrVrrcallz6TestSpecifics.test_lineno_procedure_call.<locals>.callsrr)rr)rrline1s   rtest_lineno_procedure_callz(TestSpecifics.test_lineno_procedure_calls	

,,q0rcF
d

fd}
fd}
fd}
fd}||||g}gd}dfd}t||dD][\}}	|j|	5|||jjjj
z
|	ddd]y#1swYhxYw)
NTc|ryyrrVrTRUEs rif1z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if1s
Crc|ryyrrVrs rif2z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if2s
Crc|ryyrrVrs rif3z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if3s
Crc|syyrrVrs rif4z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if4s
Cr)rrrrc0tjdyrI)r	_getframe)framesrsave_caller_framezJTestSpecifics.test_lineno_after_implicit_return.<locals>.save_caller_framesMM!$Erstrictr)ziprr-f_linenof_coder)rrrrr r	lastlinesr$rlastlinerr#s          @@r!test_lineno_after_implicit_returnz/TestSpecifics.test_lineno_after_implicit_returns				sC%!		%"%4@	WND(4(
W&'  0K0K!KXV
W
W	W
W
Ws<BB 	cZd}d}||fD]}|j|5|j}|j\\}}}|j|d|j|t	|j
|j||jdddy#1swYxYw)Ncy)z
doc stringNrVrVrrno_code1z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code1rrcyrrVrVrrno_code2z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code2rrrr)rrrr-rco_coder)rr/r1rrrstartendrs        rtest_lineno_after_no_codez'TestSpecifics.test_lineno_after_no_codes		x(	<D4(
<}}'+}}$#%d  *  c$,,&78  t':':;
<
<	<
<
<sA6B!!B*	cd}g}|jD]/\}}}|
||k7s|j||jz
|}1|S)Nr)rrr)rrr	last_linerprrs      rget_code_lineszTestSpecifics.get_code_linessW	--/	!JAq$DI$5

4$"5"556 		!
rc(d}gd}d}gd}d}gd}d}gd}||||g}	||||g}
t|	|
d	
D]M\}}|j|5|j|j}
|j	||
dddOy#1swYZxYw)Nc"tjSr)orCrVrr	load_attrz6TestSpecifics.test_lineno_attribute.<locals>.load_attrs
r)rrrrc,tjdSNr)r;rerVrrload_methodz8TestSpecifics.test_lineno_attribute.<locals>.load_methods
r)rrrrKrrc"tt_yr)vr;rCrVrr
store_attrz7TestSpecifics.test_lineno_attribute.<locals>.store_attrs
r)rrlrrc>txjtz
c_yr)r;rCrArVrraug_store_attrz;TestSpecifics.test_lineno_attribute.<locals>.aug_store_attrs	
r)rrrrlrrTr%r)r'rr8rr-)rr<load_attr_linesr?load_method_linesrBstore_attr_linesrDaug_store_attr_linesr
func_linesrr
code_liness              rtest_lineno_attributez#TestSpecifics.test_lineno_attributes	
)	1	*	 4[*nE&(9!#79
uj>	4KD%4(
4!00?
  
3
4
4	4
4
4s.BB	cd}gd}|jjd}|j|}|j||y)NcdtDS)Nc3 K|]}dyw)rNrVrrs  rrzOTestSpecifics.test_line_number_genexp.<locals>.return_genexp.<locals>.<genexpr>
ss)rrVrr
return_genexpz<TestSpecifics.test_line_number_genexp.<locals>.return_genexp	s	
r)rrrr)rrr8r-)rrPgenexp_linesgenexp_coderJs     rtest_line_number_genexpz%TestSpecifics.test_line_number_genexpsD	!#,,66q9((5
z2rcld}gd}|j|j}|j||y)Nc6K|23d{}t76ywr)r0)aseqrs  rtestzLTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.tests 

a
4s)rrrr)r8rr-)rrWexpected_linesrJs    r0test_line_number_implicit_return_after_async_forz>TestSpecifics.test_line_number_implicit_return_after_async_fors2	&((7
4rcd}tdtj|jD}|j	t|dkD|j	t
d|Dy)Nc(tD]	}ts
yr)rrrJs rrkz5TestSpecifics.test_lineno_of_backward_jump.<locals>.f!s

rc3fK|])}|jdk(r|jj+yw)
JUMP_BACKWARDN)r	positionsr)rinsts  rrz=TestSpecifics.test_lineno_of_backward_jump.<locals>.<genexpr>&s.:++8~~,,:s/1rc3$K|]}|du
ywrrV)rrs  rrz=TestSpecifics.test_lineno_of_backward_jump.<locals>.<genexpr>+s;aATM;s)rPrrrr*rall)rrklinenoss   rtest_lineno_of_backward_jumpz*TestSpecifics.test_lineno_of_backward_jumps]	
:#&#7#7

#C::	
Gq();7;;<rcd}ddjdt|Dzdz}|jtt	||y)Ni{,c3*K|]}|d|
yw):NrVrOs  rrz6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>4s!GQCq*!Gr})rrr-rr2)r	dict_sizethe_dicts   rtest_big_dict_literalz#TestSpecifics.test_big_dict_literal-sE	!GeI6F!GGG#MT(^,i8rcd}d}d}ttj|dD]b\}}|jdk(r|j	|j
d2|j|vsA|j	|j
|dz|zdy)	Nc&d}	|dkDr|dz}nyd})NrrrrV)vals r
if_else_breakzITestSpecifics.test_redundant_jump_in_if_else_break.<locals>.if_else_break;s'C71HCrr)POP_JUMP_IF_FALSEPOP_JUMP_IF_TRUE
JUMP_ABSOLUTEJUMP_FORWARDTshow_cachesrtrr)	enumeraterBytecoderrr)rrp
INSTR_SIZE
HANDLED_JUMPSrinstrs      r$test_redundant_jump_in_if_else_breakz2TestSpecifics.test_redundant_jump_in_if_else_break7s	


%LLD9
	FKD%||~-##EIIq1.##EIIq*/DE
	Frcvd}tj|D]}|j|jd y)Nc>||cxkr|ksn	||cxkr|ks
yyrrV)rCrrs   rwhile_not_chainedz@TestSpecifics.test_no_wraparound_jump.<locals>.while_not_chainedWs1yqy1yqyrEXTENDED_ARG)rrxrr)rrr{s   rtest_no_wraparound_jumpz%TestSpecifics.test_no_wraparound_jumpTs6	\\"34	>En=	>rcfd}d}d}d}d}||dd||dd	||d
d||dd	||dd||dd	||dd||d
d||dd	y)Ncd}tj|D]}|j|k(s|dz
}j||y)Nrr)rrxrr-)ropractualr{rs     rcheck_op_countzBTestSpecifics.test_uses_slice_instructions.<locals>.check_op_countasGFd+
 <<2%aKF
 
VX.rcptttttdztdtztddzSr)rrCrrVrrloadz8TestSpecifics.test_uses_slice_instructions.<locals>.loadhs,Qq6AqrF?QrU*QqT11rctttttttdttdtttddyr)rrrCrrVrrstorez9TestSpecifics.test_uses_slice_instructions.<locals>.storeks,AaFAqrFAbqEAaDrc2ttttSr)rrCrrrVrr
long_slicez>TestSpecifics.test_uses_slice_instructions.<locals>.long_sliceqsQqU8Orc@tttxxxtz
cccyr)rrCrrrVrraugz7TestSpecifics.test_uses_slice_instructions.<locals>.augts
aFaKFrBINARY_SLICErKBUILD_SLICErSTORE_SLICErrV)rrrrrrs`     rtest_uses_slice_instructionsz*TestSpecifics.test_uses_slice_instructions^s	/	2				t^Q/t]A.umQ/umQ/z=!4z>15sNA.sM1-sM1-rcdD]\}}d|d|d}ddddt|fgz}d|d|d	d
|dfD]}t|dd
}tj|Dcgc])}|jj|r|j+}}|j|5|j||dddycc}w#1swYxYw)N))COMPARE_<)rz<=)r>)rz>=)CONTAINS_OPin)rznot in)IS_OPis)rzis notza z b z crrz\
zif \
z: xzx if \
z else yrr)	rrrrr
startswithr^rr-)	r
opname_prefixrexprexpected_positionsrrrinstructionactual_positionss	         rtest_compare_positionsz$TestSpecifics.test_compare_positionss	"
	KM2t3rd"%D!"q!QD	&:%;!;tf
c2ivW4M

Kvx8(+';';D'A$#"))44]C ))$ $
\\&)K$$%57IJKK

K	K $
KKs.B=CCcgd}|D]*}|j|5t|ddddd,y#1swY7xYw)N)zassert (False if 1 else True)z=def f():
	if not (False if 1 else True): raise AssertionErrorz2def f():
	if not (False if 1 else True): return 12)rrr)rr)rexprsrs   r)test_if_expression_expression_empty_blockz7TestSpecifics.test_if_expression_expression_empty_blocksN

	2D4(
2j&1
2
2	2
2
2s5>	cHtjd}t|ddy)Nz
            def foo(param, lambda_exp):
                pass

            foo(param=0,
                lambda_exp=lambda:
                1)
        rrrzrs  r"test_multi_line_lambda_as_argumentz0TestSpecifics.test_multi_line_lambda_as_arguments# 
	h'rc<d}|j|dddy)Nc||c}}|SrrV)rrrCs   rrkz0TestSpecifics.test_apply_static_swaps.<locals>.fsaDAqHrrrrrs  rtest_apply_static_swapsz%TestSpecifics.test_apply_static_swapss		
3c*rc>d}|j|ddddy)Nc|||c}}}|SrrVrrrXrCrs     rrkz2TestSpecifics.test_apply_static_swaps_2.<locals>.fAGAq!HrrrrXrrs  rtest_apply_static_swaps_2z'TestSpecifics.test_apply_static_swaps_2"		
3S)3/rc>d}|j|ddddy)Nc|||c}}}|SrrVrs     rrkz2TestSpecifics.test_apply_static_swaps_3.<locals>.frrrrrXrrs  rtest_apply_static_swaps_3z'TestSpecifics.test_apply_static_swaps_3rrc
d}y)Nc\trtr		tSyyyy#YnxYwtstr r)element	somethingrVrrrkz9TestSpecifics.test_duplicated_small_exit_block.<locals>.fs.i$$i'	isrVrs  r test_duplicated_small_exit_blockz.TestSpecifics.test_duplicated_small_exit_blocks	rc
d}y)Nc6tr	ydy#YnxYwtrrI)r;rVrrrkz5TestSpecifics.test_cold_block_moved_to_end.<locals>.fs"	srVrs  rtest_cold_block_moved_to_endz*TestSpecifics.test_cold_block_moved_to_ends	rc
d}y)Nc|rd|ryyr>rVrs rrkzMTestSpecifics.test_remove_empty_basic_block_with_jump_target_label.<locals>.fs
rrVrs  r4test_remove_empty_basic_block_with_jump_target_labelzBTestSpecifics.test_remove_empty_basic_block_with_jump_target_labels	rN)WrRrSrTrrr r#r&r/r3r7r:r=rhunittestskipIfris_wasirsrurxr}rrrrrrrrrrrrrr
rrr7rFrLrScpython_onlyr[r]r_rqrtrrrrrrrrrrrrrequires_resourcerrrrrrr,r5r8rKrSrYrcrlr|rrrrrrrrrrrrVrrr
r
s.D*&Q-JLQJ-%^X__W__&FG'H'2D8'*1B>D&{{))	9 I(-I^>%K*F2P ?!DFD(	*P
>>;"	HII
X__W__&FGH4-(=
((X
JJ
	0	0

)
)
((,
CC
GG&!PCWu%9&9
77<6$E. 4DP WD
<*4X35=9F:>
 . .DK2	2
(+00	rr
ceZdZdZ	d#dZdZdZdZedZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"e#jHd Z%d!Z&y")$TestSourcePositionscZ	
t|dd}t|ddtj}|jt	|tj
k(t
t
t
t
f\	
G	
fddtj}|j||jD]^\}}}}|dk(r||j|||j|||j|	|M|j|
`||fS)Nztest_compile.pyrc(eZdZfdZxZS)LTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitorcpt||t|tjtj
tjfsyj|jj|jj|jj|jyr)super
generic_visitrVr5rrpatternaddr
end_lineno
col_offsetend_col_offset)rnode	__class__columnsend_columns	end_linesrs  rrzZTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitor.generic_visitsr%d+!$388S[[(IJ		$++&

doo.DOO, 3 34r)rRrSrTr
__classcell__)rrrrrs@rSourceOffsetVisitorrs

5
5rrr)rr(r)r*r+r,setr5NodeVisitorvisitco_positionsr)
rsnippetrrast_treerrend_linecolend_colrrrrs
         @@@@rcheck_positions_against_astz/TestSourcePositions.check_positions_against_astsw 16:7$5vt?Q?QRX$++5625suce1K.y';	5	5#//	5	##H-/3.?.?.A	4*T8S'qy

dE*#

h	2

c7+"

g{3	4X~rczttj|d|jdD]r\}}	|j|k(s|dz}|r|j|	d||j|	d||j|	d||j|	d|y|j
d|d	y)
NTrur%rrrrzOpcode z not found in code)r'rrxrrr-rb)
rrrr
rrcolumn
end_column
occurrencer{positions
          rassertOpcodeSourcePositionIsz0TestSourcePositions.assertOpcodeSourcePositionIss #LL40$2C2C2Ed 

	OE8||v%a
!$$Xa[$7$$Xa[(;$$Xa[&9$$Xa[*=
		
		GF8#567rc*d}|j|y)Nzx = 1)rrrs  rtest_simple_assignmentz*TestSourcePositions.test_simple_assignments((1rc	ddz}|dz
}|j|\}}|j|dddddd	|j|dd
d
ddd	y)Nzx = x
i'z/while x != 0:
  x -= 1
while x != 0:
  x +=  1
	BINARY_OPi'rrrrrrri'	rrrr
compiled_coders    r test_compiles_to_extended_op_argz4TestSourcePositions.test_compiles_to_extended_op_args|f$"	 ;;GD
q))-jq	*	2	
))-jq	*	2rctjd}|j|\}}|j|dddddy)NzD            f(
                1, 2, 3, 4
            )
            rrrrrrrrrnrorrrs    rtest_multiline_expressionz-TestSourcePositions.test_multiline_expression1sL//#
 ;;GD
q))-QqQ	*	8rc	Ftjd}|j|\}}|j|dddddd|j|ddddd	d|j|dddd
dd|j|dddd
dd|j|dddd
ddy)Nz            if (a or
                (b and not c) or
                not (
                    d > 0)):
                x = 42
            rrrrKrlrrqr
COMPARE_OPr
rrs    r!test_multiline_boolean_expressionz5TestSourcePositions.test_multiline_boolean_expression;s//# ;;GD
q))-9KQqQ1	*	F	
))-9LQqQ1	*	F	
))-9LQrbQ	*	H	
))-QqRA	*	G	
))-9KQqRA	*	Grc	tjd}|j|\}}|j|dddddd|j|dddd	dd
|j|dddddd|j|ddddddy)
Nzt            assert (a > 0 and
                    bb > 0 and
                    ccc == 4), "error msg"
            LOAD_ASSERTION_ERRORrrrr
LOAD_CONSTrKr
RAISE_VARARGSrrs    rtest_multiline_assertz)TestSourcePositions.test_multiline_assertUs//#
 ;;GD
q))-9OQqRA	*	G	
))-QrbQ	*	H))-QqRA	*	G))-QqRA	*	Grc	Dtjd}|j|\}}|jd}|j	|t
j|j|dddddd|j|dddddd|j|d	dd
dddy)Nz            ((x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            rYIELD_VALUErrrrr]rr rnrorrrrWrXrrs    r#test_multiline_generator_expressionz7TestSourcePositions.test_multiline_generator_expressionfs//# ;;GD
q%//2
mU^^<))-QqQ1	*	F))-QqQ1	*	F))-QqRA	*	Grc	tjd}|j|\}}|jd}|j	|t
j|j|dddddd|j|ddd	dd
dy)Nz            ((x,
                2*x)
                async for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50))
            rrrrrrrrrrrs    r)test_multiline_async_generator_expressionz=TestSourcePositions.test_multiline_async_generator_expressionys//# ;;GD
q%//2
mU^^<))-QqQ1	*	F))-QqRA	*	Grc	tjd}|j|\}}|j|tj
|j
|dddddd|j
|ddddddy)Nz            [(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)]
            LIST_APPENDrrrrr]rnrorrrWrXrrs    r!test_multiline_list_comprehensionz5TestSourcePositions.test_multiline_list_comprehensions//# ;;GD
qmU^^<))-QqQ1	*	F))-QqQ1	*	Frc	`tjd}|j|\}}i}t|||dj}|j|tj|j|dddddd	|j|d
ddddd	|j|dddd
dd	y)Nz            async def f():
                [(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)]
            rkr
rrrlrDrrr]rrK$	rnrorr2rrrWrXrrrrrrfs     r'test_multiline_async_list_comprehensionz;TestSourcePositions.test_multiline_async_list_comprehensions//# ;;GD
q]A#
mU^^<))-QqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	tjd}|j|\}}|j|tj
|j
|dddddd|j
|ddddddy)Nz            {(x,
                2*x)
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            SET_ADDrrrrr]rrs    r test_multiline_set_comprehensionz4TestSourcePositions.test_multiline_set_comprehension//# ;;GD
qmU^^<))-QqQ1	*	F))-QqQ1	*	Frc	`tjd}|j|\}}i}t|||dj}|j|tj|j|dddddd	|j|d
ddddd	|j|dddd
dd	y)Nz            async def f():
                {(x,
                    2*x)
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            rkrrrrlrDrrr]rrrKrrrs     r&test_multiline_async_set_comprehensionz:TestSourcePositions.test_multiline_async_set_comprehension//# ;;GD
q]A#
mU^^<))-QqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	tjd}|j|\}}|j|tj
|j
|dddddd|j
|ddddddy)Nz            {x:
                2*x
                for x
                in [1,2,3] if (x > 0
                               and x < 100
                               and x != 50)}
            MAP_ADDrrrrr]rrs    r!test_multiline_dict_comprehensionz5TestSourcePositions.test_multiline_dict_comprehensionrrc	`tjd}|j|\}}i}t|||dj}|j|tj|j|dddddd	|j|d
ddddd	|j|dddd
dd	y)Nz            async def f():
                {x:
                    2*x
                    async for x
                    in [1,2,3] if (x > 0
                                   and x < 100
                                   and x != 50)}
            rkrrrrlrrr]rrrKrrrs     r'test_multiline_async_dict_comprehensionz;TestSourcePositions.test_multiline_async_dict_comprehensionrrc	tjd}|j|\}}|j|dddddd|j|dddddd|j|d	ddddd|j|d	dddddy)
NzU            match x:
                case a, b:
                    pass
            MATCH_SEQUENCErrrrrUNPACK_SEQUENCE
STORE_NAMErrs    rtest_matchcase_sequencez+TestSourcePositions.test_matchcase_sequences//#
 ;;GD
q))-9IQqRA	*	G))-9JQqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	Ftjd}|j|\}}|j|dddddd|j|dddddd|j|d	ddddd|j|d	ddddd|j|d	ddddd
y)NzY            match x:
                case a, *b, c:
                    pass
            r$rrrr	UNPACK_EXr&rrrs    r test_matchcase_sequence_wildcardz4TestSourcePositions.test_matchcase_sequence_wildcards//#
 ;;GD
q))-9IQqRA	*	G))-QqRA	*	G))-QqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	tjd}|j|\}}|j|dddddd|j|dddddd|j|d	ddddd|j|d	dddddy)
Nzb            match x:
                case {"a" : a, "b": b}:
                    pass
            
MATCH_MAPPINGrrrr
MATCH_KEYSr&rrs    rtest_matchcase_mappingz*TestSourcePositions.test_matchcase_mapping//#
 ;;GD
q))-QqRA	*	G))-QqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	tjd}|j|\}}|j|dddddd|j|dddddd|j|d	ddddd|j|d	dddddy)
Nzg            match x:
                case {"a" : a, "b": b, **c}:
                    pass
            r-rrrrr/r&rrs    rtest_matchcase_mapping_wildcardz3TestSourcePositions.test_matchcase_mapping_wildcard.r1rc	tjd}|j|\}}|j|dddddd|j|dddddd|j|d	ddddd|j|d	dddddy)
NzX            match x:
                case C(a, b):
                    pass
            MATCH_CLASSrrrrrr%r&rrs    rtest_matchcase_classz(TestSourcePositions.test_matchcase_class>s//#
 ;;GD
q))-QqRA	*	G))-9JQqRA	*	G))-QqRA	*	G))-QqRA	*	Grc	tjd}|j|\}}|j|dddddd|j|ddddd	dy)
Nz\            match x:
                case C(1) | C(2):
                    pass
            r6rrrrrrrrs    rtest_matchcase_orz%TestSourcePositions.test_matchcase_orNsr//#
 ;;GD
q))-QqRA	*	G))-QrbQ	*	Hrcjd}d|d}|j|\}}|j|dddddy)	Naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazg('z')rrrirr)rlong_stringrrrs     rtest_very_long_line_end_offsetz2TestSourcePositions.test_very_long_line_end_offsetZsL!}B';;GD
q))-QqT	*	;rc	d}|j|\}}|j|ddddd|j|dddddd	|j|ddddd
d	|j|ddddd
d	|j|ddddd
d	y)Nza - b @ (c * x['key'] + 23)
BINARY_SUBSCRrrrrrrr.rrKrrrrs    r#test_complex_single_line_expressionz7TestSourcePositions.test_complex_single_line_expressionds/;;GD
q))-Qrb	*	:))-QqRA	*	G))-QqRA	*	G))-QqRA	*	G))-QqRA	*	Grctjd}|jd}tjtjtj
tjdtjdtjgg}tj||tj|||jd<t|ddy)Nz
assert (
42
)rreggsrr)r5parser0ExprCall	Attributer@rA
copy_locationrEr)rtreeold_nodenew_nodes    r.test_multiline_assert_rewritten_as_method_callzBTestSourcePositions.test_multiline_assert_rewritten_as_method_callssyy*+99Q<88HH

HHVSXXZ0HHJ



	(H-!!(+		!h'rc
d}dD]}|j|5i}tj|j|}t	j
5t	jdtt||ddd|dj}|j|ddddd	dddy#1swY:xYw#1swYxYw)
Nz
        import abc, dis
        import ast as art

        abc = None
        dix = dis
        ast = art

        def f():
        {}
        )
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 + ...)()ignorerkLOAD_GLOBALrjrKrr)rrnrorywarningscatch_warningssimplefilter
SyntaxWarningrrr)rsource_templater0rrrrs      r$test_push_null_load_global_positionsz8TestSourcePositions.test_push_null_load_global_positionss

	Dd#
	!)?)?)EF,,.,))(MB+,!~..11! 
2

	,,

s#;C'B4;.C4B=9CC		c~d}t|dd}|j|ddddd|j|d	ddddy)
Nz/(
 lhs  
   .    
     rhs      
       ) += 42rrr
rKrlrr
STORE_ATTRrrrrrrs   rtest_attribute_augassignz,TestSourcePositions.test_attribute_augassignsWFvx0))+A!	*	
	
)),Q1	*	
rcPd}t|dd}|j|dddddy)	Nz-del (
 lhs  
   .    
     rhs      
       )rrDELETE_ATTRrKrlrrrZr[s   rtest_attribute_delz&TestSourcePositions.test_attribute_dels5Dvx0))-a!A!	*	
rcPd}t|dd}|j|dddddy)	Nz)(
 lhs  
   .    
     rhs      
       )rrr
rKrlrrrZr[s   rtest_attribute_loadz'TestSourcePositions.test_attribute_loads5@vx0))+A!	*	
rcPd}t|dd}|j|dddddy)	Nz.(
 lhs  
   .    
     rhs      
       ) = 42rrrYrKrlrrrZr[s   rtest_attribute_storez(TestSourcePositions.test_attribute_stores5Evx0)),Q1	*	
rc~d}t|dd}|j|ddddd|j|d	dddd
y)Nz+(
 lhs  
   .    
     rhs      
       )()rrr
rKrlrrrrjrZr[s   rtest_method_callz$TestSourcePositions.test_method_callsWBvx0))+A!	*	
	
))&q1Q2	*	
rcd}|jjD]a\}}}}|j||j||j||j||j||f||fcy)Nctjtjtjdjdyr>)barbazfiles
setdefaultrVrrrkzHTestSourcePositions.test_weird_attribute_position_regressions.<locals>.fs7

	
G
jr)rrassertIsNotNoner)rrkrrrrs      r)test_weird_attribute_position_regressionsz=TestSourcePositions.test_weird_attribute_position_regressionss
	34**2I2I2K	I.D(FJ  &  *  (  ,  $(J1GH	Irc	dD]4}|j|5t|d|dd}|jt|jd|j|jdtj|j|jdtj|j|jd|jd|jt|jdjt|jdjddd7y#1swYCxYw)N)z	lambda: az(a for b in c)rrr2rrr)rrr-rrrrWrXrrPrr[s   r test_column_offset_deduplicationz4TestSourcePositions.test_column_offset_deduplications

	Ff%	
&F84hG  T^^!4a8%%dnnQ&7H%%dnnQ&7H##DNN1$5t~~a7HI##*779:*779:
	
	
	
		
	
sDD<<E	cd}t|ddjdjd}|j|ddddd	
y)Nz5class C:
  def __init__(self):
    super().__init__()rrrrrQrrKrr)rrrr[s   rtest_load_super_attrz(TestSourcePositions.test_load_super_attrsKJvx0::1=GGJ))-a!A!	*	
rNr)'rRrSrTrrrrrrrrr	rrrrrrr"r'r+r0r4r7r:r>rCrNrWr\r_rarcrermrrrorqrVrrrrs
$N<=8"22(8GG2G"G&G"F G,F G,F G,G G$G G G 
H;
G(*&P




I&
"
rrc|eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZy)TestExpressionStackSizervct|tr
t|dd}tjtj
t
|j}|j|j|y)N<foo>r
)
rVrrmathceillogrr2rco_stacksize)rrrmax_sizes   rcheck_stack_sizez(TestExpressionStackSize.check_stack_sizesRdC 4(3D99TXXc$,,&789T..9rcF|jd|jzdzy)Nzx and rr{rrs rtest_andz TestExpressionStackSize.test_andsh/#56rcF|jd|jzdzy)Nzx or rr}rs rtest_orzTestExpressionStackSize.test_orsg.45rcF|jd|jzdzy)Nzx and x or rr}rs rtest_and_orz#TestExpressionStackSize.test_and_orsmdff4s:;rcF|jd|jzdzy)Nzx < rr}rs rtest_chained_comparisonz/TestExpressionStackSize.test_chained_comparisonftvvo34rcF|jd|jzdzy)Nzx if x else rr}rs rtest_if_elsez$TestExpressionStackSize.test_if_else sntvv5;<rcF|jd|jzdzy)Nzx + rr}rs r
test_binopz"TestExpressionStackSize.test_binop#rrcL|jdd|jzzdzy)N[x, zx]r}rs r	test_listz!TestExpressionStackSize.test_list&"cEDFFN2T9:rcL|jdd|jzzdzy)N(rzx)r}rs r
test_tuplez"TestExpressionStackSize.test_tuple)rrcL|jdd|jzzdzy)Nrerzx}r}rs rtest_setz TestExpressionStackSize.test_set,rrcL|jdd|jzzdzy)Nrezx:x, zx:x}r}rs r	test_dictz!TestExpressionStackSize.test_dict/s#cGdff$44v=>rcL|jdd|jzzdzy)Nf(r)r}rs rtest_func_argsz&TestExpressionStackSize.test_func_args2s"dUTVV^3c9:rcdt|jD}|jddj|zdzy)Nc3(K|]
}d|dywrCz=xNrVrs  rrz;TestExpressionStackSize.test_func_kwargs.<locals>.<genexpr>63AaS)3rrrrrr{rrkwargss  rtest_func_kwargsz(TestExpressionStackSize.test_func_kwargs5s53U466]3ddii&77#=>rcL|jdd|jzzdzy)No.m(rrr}rs rtest_meth_argsz&TestExpressionStackSize.test_meth_args9s"futvv~5;<rcdt|jD}|jddj|zdzy)Nc3(K|]
}d|dywrrVrs  rrz;TestExpressionStackSize.test_meth_kwargs.<locals>.<genexpr>=rrrrrrrs  rtest_meth_kwargsz(TestExpressionStackSize.test_meth_kwargs<s53U466]3f		&(99C?@rcNd}|d|jzz
}|j|y)Nz
def f(x):
z   x and x
)rr{rs  r
test_func_andz%TestExpressionStackSize.test_func_and@s(''d#rc2d}d|zdz}t|ddy)Nzx,z=trur
r)rrWrrs   rtest_stack_3050z'TestExpressionStackSize.test_stack_3050Es ax$gx(rcpd}djdt|D}d|d}t|ddy)Nrrc3,K|]}d|d|yw)rz:typeNrVrs  rrz<TestExpressionStackSize.test_stack_3050_2.<locals>.<genexpr>Ms=q3qcqc*=szdef f(z	):
  passrur
r)rrWargsrrs    rtest_stack_3050_2z)TestExpressionStackSize.test_stack_3050_2Ks9yy=E!H==vZ(gx(rN)rRrSrTrr{r~rrrrrrrrrrrrrrrrrVrrrsrssd	A:76<5=5;;;?;?=A$
))rrsceZdZddZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)TestStackSizeStabilityc	Tfd}tddDcgc]}||j}}tt|dk7r[ddl}ddl}|j
}|j|d||jd|dd|jyycc}w)	Ncxi}d|zz}rd|z}t|dd}t||||djS)Nzdef func():
zasync z<script>rr)rrr)rrscriptrrasync_rs    rcompile_snippetz@TestStackSizeStability.check_stack_size.<locals>.compile_snippetXsMB(1w;6F!F*6:v6Dr2f:&&&rrrlrr)filez4stack sizes diverge with # of consecutive snippets: r)	rryrrrioStringIOrbgetvalue)	rrrrrsizesrrouts	 ``      rr{z'TestStackSizeStability.check_stack_sizeWs	';@1+FQ#00FFs5z?a++-CCGGOA&S1II&+WcllnF
G	 GsB%c*d}|j|y)Nz1
            if x:
                a
            r{rs  rtest_ifzTestStackSizeStability.test_ifi	
g&rc*d}|j|y)Nz{
            if x:
                a
            elif y:
                b
            else:
                c
            rrs  rrz#TestStackSizeStability.test_if_elsep	
g&rc*d}|j|y)NzV
            try:
                a
            except:
                b
            rrs  rtest_try_except_barez+TestStackSizeStability.test_try_except_bare{	
g&rc*d}|j|y)Nz
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            rrs  rtest_try_except_qualifiedz0TestStackSizeStability.test_try_except_qualified		
g&rc*d}|j|y)Nz
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            rrs  rtest_try_except_asz)TestStackSizeStability.test_try_except_asrrc*d}|j|y)Nz
            try:
                a
            except* ImportError:
                b
            else:
                c
            rrs  rtest_try_except_star_qualifiedz5TestStackSizeStability.test_try_except_star_qualifiedrrc*d}|j|y)Nz
            try:
                a
            except* ImportError as e:
                b
            else:
                c
            rrs  rtest_try_except_star_asz.TestStackSizeStability.test_try_except_star_asrrc*d}|j|y)Nz
                try:
                    a
                except* A:
                    b
                finally:
                    c
            rrs  rtest_try_except_star_finallyz3TestStackSizeStability.test_try_except_star_finallyrrc*d}|j|y)Nzg
                try:
                    a
                finally:
                    b
            rrs  rtest_try_finallyz'TestStackSizeStability.test_try_finallyrrc*d}|j|y)Nz8
            with x as y:
                a
            rrs  r	test_withz TestStackSizeStability.test_withrrc*d}|j|y)NzX
            while x:
                a
            else:
                b
            rrs  rtest_while_elsez&TestStackSizeStability.test_while_elserrc*d}|j|y)Nz7
            for x in y:
                a
            rrs  rtest_forzTestStackSizeStability.test_forrrc*d}|j|y)Nz[
            for x in y:
                a
            else:
                b
            rrs  r
test_for_elsez$TestStackSizeStability.test_for_elserrc*d}|j|y)Nz
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            rrs  rtest_for_break_continuez.TestStackSizeStability.test_for_break_continues
	
g&rc*d}|j|y)Na6
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            rrs  r0test_for_break_continue_inside_try_finally_blockzGTestStackSizeStability.test_for_break_continue_inside_try_finally_block
	
g&rc*d}|j|y)Na6
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrs  r,test_for_break_continue_inside_finally_blockzCTestStackSizeStability.test_for_break_continue_inside_finally_blockrrc*d}|j|y)Na5
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrs  r+test_for_break_continue_inside_except_blockzBTestStackSizeStability.test_for_break_continue_inside_except_blockrrc*d}|j|y)Na

            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            rrs  r)test_for_break_continue_inside_with_blockz@TestStackSizeStability.test_for_break_continue_inside_with_block)s	
g&rc*d}|j|y)Nz
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            rrs  r$test_return_inside_try_finally_blockz;TestStackSizeStability.test_return_inside_try_finally_block8	
g&rc*d}|j|y)Nz
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            rrs  r test_return_inside_finally_blockz7TestStackSizeStability.test_return_inside_finally_blockDrrc*d}|j|y)Nz
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            rrs  rtest_return_inside_except_blockz6TestStackSizeStability.test_return_inside_except_blockPrrc*d}|j|y)Nz~
            with c:
                if z:
                    return
                else:
                    a
            rrs  rtest_return_inside_with_blockz4TestStackSizeStability.test_return_inside_with_block\s	
g&rc.d}|j|dy)Nz>
            async with x as y:
                a
            Trrrs  rtest_async_withz&TestStackSizeStability.test_async_withf	
gd3rc.d}|j|dy)Nz=
            async for x in y:
                a
            Trrrs  rtest_async_forz%TestStackSizeStability.test_async_formrrc.d}|j|dy)Nza
            async for x in y:
                a
            else:
                b
            Trrrs  rtest_async_for_elsez*TestStackSizeStability.test_async_for_elsets	
gd3rc.d}|j|dy)Na
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Trrrs  r/test_for_break_continue_inside_async_with_blockzFTestStackSizeStability.test_for_break_continue_inside_async_with_block}s	
gd3rc.d}|j|dy)Nz
            async with c:
                if z:
                    return
                else:
                    a
            Trrrs  r#test_return_inside_async_with_blockz:TestStackSizeStability.test_return_inside_async_with_blocks	
gd3rN)F)rRrSrTr{rrrrrrrrrrrrrrrrrrrrrrrrrrrrVrrrrSsG$'	''''	'	'	''''''''"'"'"
'
'
'
''444
44rr__main__)rrvrgrrr5r(rerWrnrRrWrtest.supportrrrrtest.support.os_helperrTestCaser
rrsrrRmainrVrr<module>rs
	

FF+JH%%JX&e
(++e
e
PJ)h//J)ZA4X..A4H
zHMMOr