python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_compile.cpython-311.opt-2.pyc

eUdddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZddlmZGddejZeGddejZGd	d
ejZGddejZed
krejdSdS)N)support)
script_helperrequires_debug_ranges)FakePathceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZejdkrdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%e&j'd#Z(d$Z)d%Z*d&Z+d'Z,e&j'd(Z-d)Z.d*Z/e&j'd+Z0e&j'd,Z1e&j'd-Z2e&j'd.Z3d/Z4d0Z5e&j6d1d2Z7e&j'd3Z8d4Z9d5Z:d6Z;d7Z<d8Z=d9Z>d:Z?d;Z@d<ZAd=ZBd>ZCd?ZDd@ZEdAZFdBZGdCZHdDZIdES)F
TestSpecificsc(t|dddS)Nz<single>singlecompileselfsources  E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_compile.pycompile_singlezTestSpecifics.compile_singles
H-----cH|t|j|dSN)assertRaisesSyntaxErrorrr
s  rassertInvalidSinglez!TestSpecifics.assertInvalidSingles#+t':FCCCCCrcJtdddtddddS)Nhi<test>execzhi
rrs rtest_no_ending_newlinez$TestSpecifics.test_no_ending_newlines,h'''&)))))rc(tddddS)Nrrrrs r
test_emptyzTestSpecifics.test_emptysHf%%%%%rctdddtdddtdddtddddS)Nz
rr
zhi
stuff
def f():
    pass
z(this_is
really_old_mac
def f():
    passrrs rtest_other_newlinesz!TestSpecifics.test_other_newlinessR&)))h'''5xHHH=xPPPPPrc|ttdddddl}|j}t|dd|d|t|d|dS)Nz
__debug__ = 1?r
r	__debug__sureF)rrrbuiltinsr&setattrassertEqual)rr(prevs   rtest_debug_assignmentz#TestSpecifics.test_debug_assignment%so+whOOO!+v...D)))+t,,,,,rc|ttd|ttd|ttd|ttd|ttd|ttddS)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.s+t^<<<+t-=>>>+t-?@@@+t-@AAA+t-HIII+t-HIIIIIrcL|ttddddS)Nz1+*3filenamerrrrrs rtest_syntax_errorzTestSpecifics.test_syntax_error7s$+w
FKKKKKrcL|ttddddS)Nz	f(None=1)<string>rr3rs rtest_none_keyword_argz#TestSpecifics.test_none_keyword_arg:s$+wZPPPPPrcH|ttddS)Nr.rrrrs rtest_duplicate_global_localz)TestSpecifics.test_duplicate_global_local=s!+t-HIIIIIrcGdd}|}t}td||||jd	td|||dn#t
$rYnwxYwtd||||jdt
d	ftd
||||jd|ftd||||jd|f|ttd|Gdd
}|}|ttd||Gddt}|}td||||dddS)Nc"eZdZ	dZdZdZdS)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.Mc |dkrdStNa)KeyErrorrkeys  r__getitem__zNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__getitem__Ds#::2rc||f|_dSr)resultsrrDvalues   r__setitem__zNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.__setitem__Hs #U|rc tdS)Nxyz)listrs rkeyszGTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.M.keysJsE{{"rN)__name__
__module____qualname__rErJrNrrMr=BsDG



,
,
,
#
#
#
#
#rrSzz = a)zrAzz = bzDid not detect a KeyErrorz	z = dir()rTrLz
z = globals()zz = locals()ceZdZ	dS)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.AN)rOrPrQrRrrArV_sDrrWceZdZdZdS)BTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.DcH|dkrdSt||Sr?)dictrErCs  rrEzNTestSpecifics.test_exec_with_general_mapping_for_locals.<locals>.D.__getitem__gs&#::2''c222rN)rOrPrQrErRrrDrYfs#
3
3
3
3
3rr\rA)
globalsrr*rGfail	NameErrorrMr	TypeErrorr[)rrSmgrWr\ds       r)test_exec_with_general_mapping_for_localsz7TestSpecifics.test_exec_with_general_mapping_for_locals@s"		#		#		#		#		#		#		#		#
ACCIIWaI...	3!Q
II12222			D		
[!QS$u++$6777_a###S!H---^Q"""S!H---)T7A666								
ACC)T7Aq999	3	3	3	3	3	3	3	3

ACCWa3$$$$$sA::
BBcttjdz}dd|zz}i}d|fdzz}t||||ddddS)	Ng@z	x = x or z-xz
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)intsysgetrecursionlimitrr*)rrepeatlongexprrbcodes     rtest_extended_argzTestSpecifics.test_extended_argos~S*,,s233."	{2~#$	
T1


3A&&&&&rcH|ttddS)Nzdef f(a=1, b): passr9rs rtest_argument_orderz!TestSpecifics.test_argument_orders!+t-BCCCCCrc|ttd|ttd|ttd|ttddS)N2ez2.0e+z1e-z3-4e/21)rrr/rs rtest_float_literalsz!TestSpecifics.test_float_literalssh+tT222+tW555+tU333+tY77777rc,d}t|dddS)Nz
if 1:
    if 2:
        passr6rrrss  rtest_indentationzTestSpecifics.test_indentations#
	:v&&&&&rcbddgdzdgz}t|dd}||jdt	|}||dd	d||dd	d
dS)Nr
spamfnrri)joinrr*co_firstlinenorMco_lines)rs256coliness    rtest_leading_newlinesz#TestSpecifics.test_leading_newlinesswwv|vh.//
T4
(
(*A...R[[]]##q!a(((q!c*****rcdD]#}|tt|$|tdd|tdd|tdd|tdd|tdd	|td
d|tdd|td
d|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd |td!d"|td#d$|td%d&|td'd(dS))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)rrr/r*)rargs  r!test_literals_with_leading_zeroesz/TestSpecifics.test_literals_with_leading_zeroess1	6	6C

k45555fs+++g,,,h---XYY[^___h...ea(((k**A...fs+++g---ea(((eb)))fq)))ea(((011?CCCFGGYYY122ODDD233_EEE011?CCC01126660112666j))2.../00"555g,,,l++R00000rcLd}dd|zd}tj|5t|dddddn#1swxYwYtj|dz
5|t5}t|dddddn#1swxYwY|j}||jd	|d
t||dt|ddddS#1swxYwYdS)Niza = 1
b = 2
c = 3z
d = 4z<long_int_pass>rr~z<long_int_fail>zExceeds the limit z Consider hexadecimal )
radjust_int_max_str_digitsrrr	exceptionr*linenoassertInstr)rnrerr_ctxexcs     rtest_int_literals_too_longz(TestSpecifics.test_int_literals_too_longs4c!e444

.q
1
1	7	7F-v666	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7

.qs
3
3	>	>"";//
;7 16:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;#CSZ+++MM.C999MM2CHH===
	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>sF>AA D;B
DB	D B	!A+DD DctjdkrLd}|t|d|td|zdnqtjdkrLd}|t|d|td|zd	n|d
|tdtjdz
zt|tdtjd
z
ztdS)Ni
0xffffffffl-l0xffffffffffffffffllz)How many bits *does* this machine have???z%sr~r)rjmaxsizer*r/r^assertIsInstanceri)rall_one_bitss  rtest_unary_minuszTestSpecifics.test_unary_minuss$;*$$'LT,//<<<T#"455{CCCC
[/
/
//LT,//1EFFFT#"4557LMMMMIIABBB	
d4CK<!+;#<==sCCCd4CK<!+;#<==sCCCCCrrcd}d}d}d}d}d}d}d}|jjjD]}	|	||	t dS)	Nllllllrl)test_32_63_bit_values__code__	co_constsrri)
rr@bcrcergrbhvariables
          rrz#TestSpecifics.test_32_63_bit_valuessiAA A A$A$A$A$A 6?I
9
9'))(C888
9
9rchd\}}||d||ddS)N)r~)rr~r~rr*)rijs   rtest_sequence_unpacking_errorz+TestSpecifics.test_sequence_unpacking_errors=!ABrcgd}|D]M}|dz
}|tt|dd|tt|ddNdS)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 Nonerztmpr
rr3)rstmtsstmts   rtest_none_assignmentz"TestSpecifics.test_none_assignmentsv





	I	IDDLDk7D%JJJk7D%HHHH	I	Ircgd}gd}|D]}t|dd|D]%}|tt|dd&dS)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)rrr)rsucceedr^rs    rtest_importzTestSpecifics.test_imports"0	)	)DD%((((	I	IDk7D%HHHH	I	Ircd}|\}}|t|jt|jdS)Ncdd}dd}||fS)Nr~c|SrrRxs r<lambda>zITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>CQrrc|SrrRrs rrzITestSpecifics.test_for_distinct_code_objects.<locals>.f.<locals>.<lambda>Drrr~)rrR)f1f2s  rrgz7TestSpecifics.test_for_distinct_code_objects.<locals>.fBsBBr6Mr)assertNotEqualidr)rrgrrs    rtest_for_distinct_code_objectsz,TestSpecifics.test_for_distinct_code_objects@sN			BBr{OOR__=====rc@d}||jdS)NcdS)NfoorRrRrrrz/TestSpecifics.test_lambda_doc.<locals>.<lambda>JsEr)assertIsNone__doc__)rls  rtest_lambda_doczTestSpecifics.test_lambda_docIs%M!)$$$$$rcd}|tt|ddd}t|dd|t	|dd}|t	|dd}|t	|dd	}|t	|dd
}|t	|dd}|t	|dd
}|t	|dd}|t	|ddS)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 -*-
¤)rrrr*r/rrns  r
test_encodingzTestSpecifics.test_encodingMsE7+weVDDD<eV$$$dZ000dZ000dV,,,8dZ0007dV,,,<d\222Cd%MNNNDd%IJJJJJrc6Gddt}|}d|d<||dd|dxxdz
cc<||dd|d=|d|d|d<||dd|dxxdz
cc<||dd|d=|d|d|dd<||ddd|ddxxdz
cc<||ddd|dd=|tdd|d|ddddf<||ddddfd|ddddfxxdz
cc<||ddddfd|ddddf=|tddtddf|d|ddd<||dddd|dddxxdz
cc<||dddd|ddd=|tddd|d|ddddddf<||ddddddfd|ddddddfxxdz
cc<||ddddddfd|ddddddf=|tdddtdddf|d|d<||dd|dxxdz
cc<||dd|d=|t|d|d<||dd|dxxdz
cc<||dd|d=|ttf|dS)	Nc,eZdZdZdZdZdZdZdS).TestSpecifics.test_subscripts.<locals>.str_mapci|_dSr)datars r__init__z7TestSpecifics.test_subscripts.<locals>.str_map.__init__fs
			rc6|jt|SrrrrCs  rrEz:TestSpecifics.test_subscripts.<locals>.str_map.__getitem__hsyS**rc4||jt|<dSrrrHs   rrJz:TestSpecifics.test_subscripts.<locals>.str_map.__setitem__js&+	#c((###rc0|jt|=dSrrrCs  r__delitem__z:TestSpecifics.test_subscripts.<locals>.str_map.__delitem__lsIc#hh'''rc.t||jvSr)rrrCs  r__contains__z;TestSpecifics.test_subscripts.<locals>.str_map.__contains__ns3xx49,,rN)rOrPrQrrErJrrrRrrstr_mapres_



+
+
+
,
,
,
(
(
(
-
-
-
-
-rrr~r)r~r~r.)..)objectr*assertNotInsliceEllipsis)rrrcs   rtest_subscriptszTestSpecifics.test_subscriptsbs
	-
	-
	-
	-
	-f
	-
	-
	-
GII!1q!!!	!	1q!!!
aDA$4!$$$	$14!$$$
dG###!A#1Q3###	!A#!1Q3###
acFq!a(((!A#qs(1Q3!8a(((	!A#qs(q1Q3!8a(((
ac1Q3hK%1++uQ{{3Q777!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-q11111rcd}|ddtdDz}t|dddS)Nzdef f(%s): pass, c3$K|]}d||fzVdS)za%d:%dNrR.0rs  r	<genexpr>z6TestSpecifics.test_annotation_limit.<locals>.<genexpr>s+<<Ax1Q%'<<<<<<r,r%rrrangerrvs  rtest_annotation_limitz#TestSpecifics.test_annotation_limitsJ	TYY<<s<<<
<
<<3rcHGdd}|d|jjj|d|jjj|d|jjj|d|jjjdS)NceZdZdZdS)&TestSpecifics.test_mangling.<locals>.Acd}d}ddl}ddl}dS)Nr~rr)_A__mangled_mod__package__.module)_A__mangled__not_mangled__r__package__s    rrgz(TestSpecifics.test_mangling.<locals>.A.fs*	"#$$$$))))))rN)rOrPrQrgrRrrrWrs#
*
*
*
*
*rrWrrrr)rrgrco_varnames)rrWs  r
test_manglingzTestSpecifics.test_manglings	*	*	*	*	*	*	*	*	


mQS\%=>>>

')ABBB

')ABBB

mQS\%=>>>>>rcftjtjtjtjtjdtjdtjtjdtjtjdtj	gd	g
gg}|
td5ttj
|d
dddddS#1swxYwYdS)Nr~)rIr)targetrIr)rctxyr)riterifsis_async)elt
generators)bodytype_ignoreszNamedExpr target must be a Namez<file>r)astModuleExprListComp	NamedExprConstant
comprehensionNameStoreLoadassertRaisesRegexr`rfix_missing_locations)rras  rtest_compile_invalid_namedexprz,TestSpecifics.test_compile_invalid_namedexprs~J,M#&<a#8#8#8"%,Q"7"7"7
 -'*x3CIKK'H'H'H%(X#(**%E%E%E$&)*	$


$'


,
#
#I/P
Q
Q	D	DC-a00(FCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D	Ds5$D&&D*-D*ct}|dr
|dd}t|d5}|}dddn#1swxYwYddgddgd	d
gddg||gg}|D]\}}t|d
|zd}t|d|zdtj}|t|tj
kt|d|zd}|||||jd|ztdddtj}|
tt
|dd|
tt
t
jddt
j
}t
jg|_|
tt
|dddS)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)r6z<ast>r/)__file__lowerendswithopenreadr_ast
PyCF_ONLY_AST
assertTruetyper$r*co_filenamerr`IfBoolOpr!)	rfnamerg	fcontentssample_codernco1r#co2s	         rtest_compile_astzTestSpecifics.test_compile_asts;;==!!%((	#2#JE
%'
*
*
*	!aI	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!!
45
DE
=>
I
'	=	=KE4$
v66C$
vt7IJJCOODII4555#uu}f55CS#&&&S_eem<<<<j*fd6HII)Wc7FCCC	
)Wdgii&IIIkmmKMM?)Wc7FCCCCCs
A++A/2A/cdfd}||||i}||ddddS)Nrcdz
SNr~rR)rsrrgz3TestSpecifics.test_dict_evaluation_order.<locals>.fs
FAHrr)r~rr)rrgrcrs   @rtest_dict_evaluation_orderz(TestSpecifics.test_dict_evaluation_ordersk
					
QSS!!##qqssAACC aLL)))))rcdD].}td|d}||jd/tdt	dfD]`}|t5td|d}dddn#1swxYwY||jda|ttdtdddS)N)file.pyfile.pypassrrKrL)
rr*r<	bytearray
memoryviewassertWarnsDeprecationWarningrr`rM)rr2rns   rtest_compile_filenamez#TestSpecifics.test_compile_filenames#-	:	:H68V44DT-y9999!*--z*/E/EE	:	:H!!"455
9
9vx88
9
9
9
9
9
9
9
9
9
9
9
9
9
9
9T-y9999)Wfd:6F6FOOOOOs,B

B	B	cd}t|dd}|jD]<}t|tjr ||j|j=dS)Nzdef f(): pass
def g(): passmyfiler)rr
isinstancetypesCodeTypeassertIsr<)rrwrobjs    rtest_same_filename_usedz%TestSpecifics.test_same_filename_useds`.Ax((;	>	>C#u~..
>

coq}===	>	>rc||d|d|d|d|d|d|d|d|d	|d
|d|d|d
|d|ddS)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***12222333F###-.../0003444,---<===/0009:::::rc|d|d|d|d|d|d|d|d|d	dS)
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  (((  111  !2333  000  ,,,  !6777  !9:::  !;<<<  !FGGGGGrcd}tj5}tj|d}t|d5}||dddn#1swxYwYtj|d}dddn#1swxYwY|	d|j
dS)Ns0000
00000000000


bad.pywbr%source code cannot contain null bytestempfileTemporaryDirectoryospathrr6writerrun_python_until_endrerrrsrctmpdr}fpress      r"test_particularly_evil_undecodablez0TestSpecifics.test_particularly_evil_undecodable4s 4

(
*
*	<ddH--Bb$
2

















4R88;C		<	<	<	<	<	<	<	<	<	<	<	<	<	<	<
	


>HHHHH51BA)B)A-	-B0A-	1BB!Bcd}tj5}tj|d}t|d5}||dddn#1swxYwYtj|d}dddn#1swxYwY|	d|j
dS)Ns#
#
r`rarrbrcrks      r$test_yet_more_evil_still_undecodablez2TestSpecifics.test_yet_more_evil_still_undecodable>s 

(
*
*	<ddH--Bb$
2

















4R88;C		<	<	<	<	<	<	<	<	<	<	<	<	<	<	<
	


>HHHHHrqctjdztjdztdzdfd	}|dd|dd|dd	|dd
dS)Nrr	g?r
c||
zz}t|d|fD]f}|||zz}d|||}	t|5t|d|dddn#1swxYwYgdS)NrzCompiling ({!r} + {!r} * {}))msg)rformatrRecursionError)prefixrepeatedmode	expect_okdepthbrokendetailscrash_depth
fail_depthr
success_depths       rcheck_limitz@TestSpecifics.test_compiler_recursion_limit.<locals>.check_limitUsM!99IIx...$k2
4
4(U"228??"He55&&~7&CC44FHd333444444444444444	
4
4sA::A>	A>	r@z()z.bz[0]z*a)r
)rjrkri)rrrrrs` @@@rtest_compiler_recursion_limitz+TestSpecifics.test_compiler_recursion_limitHs*,,q0
+--3J-..
	4	4	4	4	4	4	4	4	4	CCCCrc|td5tddddddn#1swxYwY|td5ttddddddn#1swxYwYttddddd}|t|dttd	dddd}|t|dttd
dddd}|t|d|ttd	dddt
}ttddd|||dd
dS)Nzcannot contain nullz123<dummy>r/s123r~rs1234s$23$sax = 123rrA)r-rrrOr*r/r[r)rrn	namespaces   rtest_null_terminatedz"TestSpecifics.test_null_terminatedgs=
#
#K1F
G
G	2	2Iy&111	2	2	2	2	2	2	2	2	2	2	2	2	2	2	2

#
#K1F
G
G	?	?Jz**Iv>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?z*--ad3YGGdR(((z'**1R40)VDDdR(((z'**1R40)VDDdR(((	
j11!B$788"===FF	Z
$
$QrT
*I6663,,,,,s:>> BBBc|jjD]%}t|t|krdS&|d|d|jjdS)Nzunable to find constant z in )rrreprr^)rfuncexpectedconsts    rcheck_constantzTestSpecifics.check_constant{ss],	=	=EE{{d8nn,,-
III!4=#:#:<
=
=
=
=
=rcfd}|d|d|d|d|ddd}}|jj|jj|tt
|t
tdd	}}d
}|jjd|jjddtt|jjd|jjddd
}}|jj|jj|tdh
|ddS)NcLi}d|d|}t|||d}|d}|jj|jj||t
|t
|dSNzf1, f2 = lambda: z
, lambda: rr)rrXrrrr*r)rnsrnrrrs     rcheck_same_constantz?TestSpecifics.test_merge_constants.<locals>.check_same_constantsBB8=uuEDrNNNDBDBMM"+/1FGGGE***T""$$ZZe55555rrsabcabccdSN.rRrRrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>srcdSrrRrRrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>scrcdS)N
not a namerRrRrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>srcdS)NrrRrRrrrz4TestSpecifics.test_merge_constants.<locals>.<lambda>src
|dvS)N>rrRrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>sq--rr~c
|dvSN>rrRrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>
18rc
|dvSrrRrs rrz4TestSpecifics.test_merge_constants.<locals>.<lambda>s
qCxr)rXrrrrr*rnextr	frozensetr:)rrrrf3s`    rtest_merge_constantsz"TestSpecifics.test_merge_constantss
	6	6	6	6	6	D!!!AC   F###E"""kkB

bk+R[-BCCCB)))bbddT(^^444&%'>'>B
-
-

bk+A.k+A.q1	3	3	3

d4 5a 899::k+A.	0	0	0
$#%7%7B

bk+R[-BCCCB	1#///1rcfd}d}||jj|jjdS)Nc|jjSr)rrTrs rrz5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>
qsurc|jjSr)rrr@s rrz5TestSpecifics.test_merge_code_attrs.<locals>.<lambda>rr)rXrco_linetable)rrrs   rtest_merge_code_attrsz#TestSpecifics.test_merge_code_attrss6_
_

bk.0HIIIIIrcLd}||jjddS)Nc	dS)NrrRrRrrrz2TestSpecifics.test_strip_unused_consts.<locals>.f1s
2r)	docstringr)r*rr)rrs  rtest_strip_unused_constsz&TestSpecifics.test_strip_unused_constss5				
.0ABBBBBrc	d}|dttj|djdS)NcdS)Nr)RuntimeErrorrRrrunused_code_at_endzcTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_bounds.<locals>.unused_code_at_ends1rRETURN_VALUEr)r*rMdisget_instructionsopname)rrs  r9test_peephole_opt_unreachable_code_array_access_in_boundszGTestSpecifics.test_peephole_opt_unreachable_code_array_access_in_boundss_G	.	.	.	
%&899::2>E	G	G	G	G	Grcbfd}|dd|dd|dd|dd|d	d
dd}}|j|j|d
|dt	|t	d
t	|t	ddd}}|j|j|tdh|tdh|d|ddS)Nci}td|d|||d}|d}|j|j|j|j||||t
|t
|t
|t
|dSr)rassertIsNotrrrr*r)const1const2rrrrs     rcheck_different_constantszJTestSpecifics.test_dont_merge_constants.<locals>.check_different_constantssBDfffffErJJJDBDBR["+666R[999F+++F+++T""$$ZZf666T""$$ZZf66666rrrg)r)rr@ar)rcdS)NrrRrRrrrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>srcdS)NrRrRrrrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>srrrc
|dvSrrRrs rrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>rrc
|dvS)N>rrRrs rrz9TestSpecifics.test_dont_merge_constants.<locals>.<lambda>s
qEzr)rrrr*rrr:)rrrrs`   rtest_dont_merge_constantsz'TestSpecifics.test_dont_merge_constantss
	7
	7
	7
	7
	7	"!!S)))!!$---!!$///!!#t,,,!!&'222

Bbk222B&&&B&&&bbddT%[[111bbddT%[[111$#%9%9Bbk222B	1#///B	3% 0 011113     rcBtdtdddS)N42test_compile_pathliker
)rrrs rtest_path_like_objectsz$TestSpecifics.test_path_like_objectss#h677BBBBBrcpuc.tddzdddS)Nzif a: b
i@
rrrrs rtest_stack_overflowz!TestSpecifics.test_stack_overflows!	f$i88888rcd}d}d}d}||||g}|D]}ttj|}|t	|d|d|dj|d|dj|d|d	jdS)
NcdSrrRrRrrunused_block_ifzPTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if


rcdSrrRrRrrunused_block_whilezSTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_whilerrc	dSrrRrRrrunused_block_if_elsezUTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_if_else
trc	dSrrRrRrrunused_block_while_elsezXTestSpecifics.test_dead_blocks_do_not_generate_bytecode.<locals>.unused_block_while_elserrrH
LOAD_CONSTrrr)rMrrassertLessEquallenr*rargval)rrrrrfuncsropcodess        r)test_dead_blocks_do_not_generate_bytecodez7TestSpecifics.test_dead_blocks_do_not_generate_bytecodes												!"4%'>@	A	AD3/5566G  Wq111\72;+=>>>T72;#5666^WR[-?@@@@	A	Arcrd}d}||g}|D]}ttj|}|dt	||d|dj|d|dj|d|djdS)NcdSrrRrRrrbreak_in_whilez;TestSpecifics.test_false_while_loop.<locals>.break_in_while,s

rcdSrrRrRrrcontinue_in_whilez>TestSpecifics.test_false_while_loop.<locals>.continue_in_while0s

rrrr~rr)rMrrr*rrr)rrrrrrs      rtest_false_while_loopz#TestSpecifics.test_false_while_loop+s						 !23	@	@D3/5566GQG---\71:+<===T71:#4555^WQZ->????	@	@rcd}d}d}d}||||g}|D]}||5ttj|}|t|d|d|dj|d	|d
jdddn#1swxYwYdS)Nc|SrrRrs rand_truez;TestSpecifics.test_consts_in_conditionals.<locals>.and_true?rcdS)NFrRrs r	and_falsez<TestSpecifics.test_consts_in_conditionals.<locals>.and_falseBsrcdS)NTrRrs ror_truez:TestSpecifics.test_consts_in_conditionals.<locals>.or_trueEsrc|SrrRrs ror_falsez;TestSpecifics.test_consts_in_conditionals.<locals>.or_falseHrrrrLOAD_rrr)	subTestrMrrrrrrr*)rrrrrrrrs        rtest_consts_in_conditionalsz)TestSpecifics.test_consts_in_conditionals>sT												9gx8	E	ED4((
E
Es3D99::$$S\\1555

gwr{'9:::  1CDDD	
E
E
E
E
E
E
E
E
E
E
E
E
E
E
E	E	EsBCC	C	cgd}|D]}i}ttj|||d}||j5tt
j|}d|D}|d||	d||	d|dddn#1swxYwYdS)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)
            rrcg|]	}|j
SrR)r)ropcodes  r
<listcomp>z;TestSpecifics.test_imported_load_method.<locals>.<listcomp>rsDDD&
DDDrLOAD_METHOD	LOAD_ATTRPRECALL)
rtextwrapdedentrrOrMrrrr)rsourcesrrrrinstructionss       rtest_imported_load_methodz'TestSpecifics.test_imported_load_methodUs,


,		7		7FI(()444U#D4=11
7
7s3D99::DDGDDD  ===

k<888

i666
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7			7		7sA0CC	C	c*d}|jjdz}dS)Nc"tdSr)printrRrrcallz6TestSpecifics.test_lineno_procedure_call.<locals>.callxsrr~)rr)rrline1s   rtest_lineno_procedure_callz(TestSpecifics.test_lineno_procedure_callws&			
,q0rcJ
d

fd}
fd}
fd}
fd}||||g}gd}dfd}t||dD]f\}}	||	5|||jjjz
|	dddn#1swxYwYgdS)
NTc$|rdSdSrrRrTRUEs rif1z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if1s%
ACCC


rc$|rdSdSrrRr	s rif2z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if2s 
ACCC
rc$|rdSdSrrRr	s rif3z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if3s 
ACCC
trc$|sdSdSrrRr	s rif4z<TestSpecifics.test_lineno_after_implicit_return.<locals>.if4s%
ACCC


r)rrrrc0tjddSrG)rj	_getframe)framesrsave_caller_framezJTestSpecifics.test_lineno_after_implicit_return.<locals>.save_caller_framesM!$$EEErstrictr)ziprr*f_linenof_coder)rrr
rrr	lastlinesrrlastliner
rs          @@r!test_lineno_after_implicit_returnz/TestSpecifics.test_lineno_after_implicit_returns																				sC%!MM		%	%	%	%	%"%4@@@	W	WND(4((
W
W&'''  0K!KXVVV
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W	W	Ws4BB	B	cFd}d}||fD]}||5|j}t|}|d\}}}||d|||jdddn#1swxYwYdS)NcdSrrRrRrrno_code1z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code1sLrcdSrrRrRrrno_code2z9TestSpecifics.test_lineno_after_no_code.<locals>.no_code2srrr)rrrMrr*r)	rr r"rrnrstartendlines	         rtest_lineno_after_no_codez'TestSpecifics.test_lineno_after_no_codes						x(	<	<D4((
<
<}T]]__--#(8 sD  ***  t':;;;
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<sA&BB	B	cd}g}|D]-\}}}|%||kr|||jz
|}.|S)Nr)rappendr)rrn	last_linero_r%s      rget_code_lineszTestSpecifics.get_code_liness^	--//	!	!JAq$DI$5$5

4$"55666 	
rcBd}gd}d}gd}d}gd}d}gd}||||g}	||||g}
t|	|
d	
D]c\}}||5||j}
|||
dddn#1swxYwYddS)NctjSr)or@rRrr	load_attrz6TestSpecifics.test_lineno_attribute.<locals>.load_attrs

r)rrrr~c6tdSNr)r.rarRrrload_methodz8TestSpecifics.test_lineno_attribute.<locals>.load_methods
r)rrrrHrr~c(tt_dSr)vr.r@rRrr
store_attrz7TestSpecifics.test_lineno_attribute.<locals>.store_attrs
r)rrhrrc:txjtz
c_dSr)r.r@r4rRrraug_store_attrz;TestSpecifics.test_lineno_attribute.<locals>.aug_store_attrs	
r)rrrrhr~rTrr)rrr+rr*)rr/load_attr_linesr2load_method_linesr5store_attr_linesr7aug_store_attr_linesr
func_linesrr
code_liness              rtest_lineno_attributez#TestSpecifics.test_lineno_attributesU			
)..			100			*>>			 433[*nE&(9!#79
uj>>>	4	4KD%4((
4
4!00??
  
333
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4	4	4s1BB	B	cd}gd}|jjd}||}|||dS)Nc$dtDS)Nc3K|]}dVdS)r~NrRrrs  rrzOTestSpecifics.test_line_number_genexp.<locals>.return_genexp.<locals>.<genexpr>s6r)rrRrr
return_genexpz<TestSpecifics.test_line_number_genexp.<locals>.return_genexps%	
r)rrrr~)rrr+r*)rrCgenexp_linesgenexp_coder=s     rtest_line_number_genexpz%TestSpecifics.test_line_number_genexps[			!yy#,6q9((55
z22222rctd}gd}||j}|||dS)Nc.K|23d{V}t6dSr)r!)aseqrs  rtestzLTestSpecifics.test_line_number_implicit_return_after_async_for.<locals>.tests>






a 44s)rr~rr~)r+rr*)rrJexpected_linesr=s    r0test_line_number_implicit_return_after_async_forz>TestSpecifics.test_line_number_implicit_return_after_async_forsM			&((77
44444rcd}dddt|Dzdz}|tt	||dS)Ni{,c3$K|]}|d|VdS):NrRrBs  rrz6TestSpecifics.test_big_dict_literal.<locals>.<genexpr>s,!G!GQ****!G!G!G!G!G!Gr})rrr*rr/)r	dict_sizethe_dicts   rtest_big_dict_literalz#TestSpecifics.test_big_dict_literalse	!G!GeI6F6F!G!G!GGGG#MT(^^,,i88888rcd}d}d}ttj|dD]V\}}|jdkr||jd,|j|vr!||j|dz|zWdS)	Nc*d}	|dkr|dz}ndSd})Nr~TrrrR)vals r
if_else_breakzITestSpecifics.test_redundant_jump_in_if_else_break.<locals>.if_else_breaks/C
771HCCE
rr)POP_JUMP_IF_FALSEPOP_JUMP_IF_TRUE
JUMP_ABSOLUTEJUMP_FORWARDTshow_cachesr]rr~)	enumeraterBytecoderrr)rrY
INSTR_SIZE
HANDLED_JUMPSr%instrs      r$test_redundant_jump_in_if_else_breakz2TestSpecifics.test_redundant_jump_in_if_else_breaks			


%LD999

	F	FKD%|~--##EIq1111..##EIq*/DEEE
	F	Frcpd}tj|D]}||jddS)NcH||cxkr|ksn	||cxkr|kdSdSrrR)r@rrs   rwhile_not_chainedz@TestSpecifics.test_no_wraparound_jump.<locals>.while_not_chained's=1yyyyqyyyy1yyyyqyyyyyyyyrEXTENDED_ARG)rrarr)rrhrds   rtest_no_wraparound_jumpz%TestSpecifics.test_no_wraparound_jump$sR			\"344	>	>En====	>	>rcfdD]\}d|d|d}ddddt|fgz}d|d|d	d
|dfD]v}t|dd
}fdtj|D}||5|||dddn#1swxYwYwdS)N))
COMPARE_OP<)rlz<=)rl>)rlz>=)CONTAINS_OPin)roznot in)IS_OPis)rqzis notza z b z crrz\
zif \
z: xzx if \
z else yrrc4g|]}|jk
|jSrR)r	positions)rinstructionrs  rrz8TestSpecifics.test_compare_positions.<locals>.<listcomp>?s4$$$#")V33 )333r)rrrrrr*)ropexprexpected_positionsrrnactual_positionsrs       @rtest_compare_positionsz$TestSpecifics.test_compare_positions.su	
	K	KJFB&%%r%%%D!"q!QD		&:%;!;t

22224M4M4M4M

K

Kvx88$$$$'*';D'A'A$$$ 
\\&))KK$$%57IJJJKKKKKKKKKKKKKKK

K	K	KsB$$B(+B(cLd}||ddddS)Nc||c}}|SrrR)rrr@s   rrgz0TestSpecifics.test_apply_static_swaps.<locals>.fHsaDAqHrrrrrrgs  rtest_apply_static_swapsz%TestSpecifics.test_apply_static_swapsGs9				
3c*****rcNd}||dddddS)Nc|||c}}}|SrrRrrrTr@rs     rrgz2TestSpecifics.test_apply_static_swaps_2.<locals>.fNAGAq!HrrrrTrr}s  rtest_apply_static_swaps_2z'TestSpecifics.test_apply_static_swaps_2M=				
3S))3/////rcNd}||dddddS)Nc|||c}}}|SrrRrs     rrgz2TestSpecifics.test_apply_static_swaps_3.<locals>.fTrrrrrTrr}s  rtest_apply_static_swaps_3z'TestSpecifics.test_apply_static_swaps_3SrrN)JrOrPrQrrrr r#r,r0r4r7r:rdrorqrtrxrrrrrjrrrrrrrrrrrr/rDrIrRrcpython_onlyrZr\r^rprsrrrrrrrrrrequires_resourcerrrrrrrr&r+r>rFrLrUrerjrzr~rrrRrrrrs...DDD***&&&QQQ---JJJLLLQQQJJJ-%-%-%^'''4DDD888'''+++111B>>>DDD&{)))	9	9	9   III(-I-I-I^>>>%%%KKK*F2F2F2P   ???DDD6!D!D!DF	*	*	*PPP
>>>;;;"	H	H	HIIIIII
<---(===
(((X
JJJ
CCC
GGG&!&!&!PCCCWu%%99&%9
AAA>@@@&EEE. 7 7 7DPPP W W WD
<
<
<*4*4*4X333555999FFF:>>>KKK2+++00000000rrceZdZdZ	ddZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZejdZdS)TestSourcePositionsc	
t|dd}t|ddtj}|t	|tjkt
t
t
t
f\	
G	
fddtj}|	||
D]n\}}}}|dkr|||||||||	|||
o||fS)Nztest_compile.pyrc(eZdZfdZxZS)LTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitorct|t|tjst|tjsdS|j|j|j	|j
dSr)super
generic_visitrUr#rwraddr
end_lineno
col_offsetend_col_offset)rnode	__class__columnsend_columns	end_linesrs  rrzZTestSourcePositions.check_positions_against_ast.<locals>.SourceOffsetVisitor.generic_visitis%%d+++!$11*T38:T:TF		$+&&&

do...DO,,, 344444r)rOrPrQr
__classcell__)rrrrrs@rSourceOffsetVisitorrhsM
5
5
5
5
5
5
5
5
5
5
5
5
5rrr)rr8r9r:r;r$setr#NodeVisitorvisitco_positionsr)
rsnippetrnast_treerr%end_linecolend_colrrrrs
         @@@@rcheck_positions_against_astz/TestSourcePositions.check_positions_against_ast_sw 16::7$5vt?QRRX$+566625suucee1K.y';	5	5	5	5	5	5	5	5	5	5#/	5	5	5	##H---/3.?.?.A.A	4	4*T8S'qyy

dE***#

h	222

c7+++"

g{333X~rr~cttj|d|dD]\}}	|j|krz|dz}|ss||	d|||	d|||	d|||	d|dS|d|d	dS)
NTr^rr~rrrzOpcode z not found in code)rrrarrr*r^)
rrnrr%rcolumn
end_column
occurrencerdpositions
          rassertOpcodeSourcePositionIsz0TestSourcePositions.assertOpcodeSourcePositionIss #L4000$2C2C2E2Ed 
 
 

	
	OE8|v%%a
!$$Xa[$777$$Xa[(;;;$$Xa[&999$$Xa[*===FF		6F66677777rc4d}||dS)Nzx = 1)rrrs  rtest_simple_assignmentz*TestSourcePositions.test_simple_assignments!((11111rc	ddz}|dz
}||\}}||dddddd	||dd
d
ddd	dS)Nzx = x
i'z/while x != 0:
  x -= 1
while x != 0:
  x +=  1
	BINARY_OPi'rr~r%rrrri'	rrrr
compiled_coder*s    r test_compiles_to_extended_op_argz4TestSourcePositions.test_compiles_to_extended_op_argsf$"	 ;;GDD
q))-jq	*	2	2	2	
))-jq	*	2	2	2	2	2rcpd}||\}}||ddddddS)Nzf(
    1, 2, 3, 4
)
CALLr~rrr%rrrrrs    rtest_multiline_expressionz-TestSourcePositions.test_multiline_expressionsW
 ;;GDD
q))-QqQ	*	8	8	8	8	8rc|d}d|d}||\}}||ddddddS)	Naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazg('z')rr~rirr)rlong_stringrrr*s     rtest_very_long_line_end_offsetz2TestSourcePositions.test_very_long_line_end_offsetse!'''';;GDD
q))-QqT	*	;	;	;	;	;rc	Pd}||\}}||ddddd||dddddd	||ddddd
d	||ddddd
d	||ddddd
d	dS)Nza - b @ (c * x['key'] + 23)
BINARY_SUBSCRr~
rrrrrrHrrrrs    r#test_complex_single_line_expressionz7TestSourcePositions.test_complex_single_line_expressions/;;GDD
q))-Qrb	*	:	:	:))-QqRA	*	G	G	G))-QqRA	*	G	G	G))-QqRA	*	G	G	G))-QqRA	*	G	G	G	G	Grctjd}|jd}tjtjtjtjdtjdtjgg}tj||tj	|||jd<t|dddS)Nz
assert (
42
)rr|eggsrr)r#parser!r%Call	Attributer*r,
copy_locationr.r)rtreeold_nodenew_nodes    r.test_multiline_assert_rewritten_as_method_callzBTestSourcePositions.test_multiline_assert_rewritten_as_method_callsy*++9Q<8H
HVSXZZ00HJJ






	(H---!(+++	!h'''''rc
0d}dD]}||5i}tj||}t	|||dj}||ddddddddn#1swxYwYdS)	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 + ...)()rgLOAD_GLOBALrfrHr)rrrrwrrr)rsource_templater!rrrns      r$test_push_null_load_global_positionsz8TestSourcePositions.test_push_null_load_global_positionss

		Dd##

	!)?)?)E)EFFVY''' ~.11! 
2














		sA"B

B	B	cd}t|dd}||ddddd||d	dddddS)
Nz/(
 lhs  
   .    
     rhs      
       ) += 42rrrrHrhrr
STORE_ATTRrrrrrns   rtest_attribute_augassignz,TestSourcePositions.test_attribute_augassignsxFvx00))+A!	*	
	
	
	
)),Q1	*	
	
	
	
	
rcbd}t|dd}||ddddddS)	Nz-del (
 lhs  
   .    
     rhs      
       )rrDELETE_ATTRrHrhrrrrs   rtest_attribute_delz&TestSourcePositions.test_attribute_delsLDvx00))-a!A!	*	
	
	
	
	
rcbd}t|dd}||ddddddS)	Nz)(
 lhs  
   .    
     rhs      
       )rrrrHrhrrrrs   rtest_attribute_loadz'TestSourcePositions.test_attribute_loadsL@vx00))+A!	*	
	
	
	
	
rcbd}t|dd}||ddddddS)	Nz.(
 lhs  
   .    
     rhs      
       ) = 42rrrrHrhrrrrs   rtest_attribute_storez(TestSourcePositions.test_attribute_store$sLEvx00)),Q1	*	
	
	
	
	
rcd}t|dd}||ddddd||d	dddd
dS)Nz+(
 lhs  
   .    
     rhs      
       )()rrrrHrhrrrrfrrs   rtest_method_callz$TestSourcePositions.test_method_call+sxBvx00))-a!A!	*	
	
	
	
))&q1Q2	*	
	
	
	
	
rc*d}|jD]u\}}}}|||||||||||f||fvdS)NctjttdddSr1)barbazfiles
setdefaultrRrrrgzHTestSourcePositions.test_weird_attribute_position_regressions.<locals>.f6s\

	
	
	
GG

jr)rrassertIsNotNoner)rrgr%rrrs      r)test_weird_attribute_position_regressionsz=TestSourcePositions.test_weird_attribute_position_regressions5s
	
	
	34*2I2I2K2K	I	I.D(FJ  &&&  ***  (((  ,,,  $(J1GHHHH	I	Irc	dD]Z}||5t|d|dd}|t|jd||jdtj||jdtj||jd|jd|t|jd
t|jd
dddn#1swxYwY\dS)N)z	lambda: az(a for b in c)z[a for b in c]z{a for b in c}z{a: b for c in d}rrr/rrr~)rrr*rrrrVrWrrMrrs   r test_column_offset_deduplicationz4TestSourcePositions.test_column_offset_deduplicationHs|
		Ff%%	
	
&44F44hGG  T^!4!4a888%%dnQ&7HHH%%dnQ&7HHH##DN1$5t~a7HIII##*7799::*7799::
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
		sD+EE	E	Nr)rOrPrQrrrrrrrrrrrrrrrrrrrRrrrrZs&
$$$N<=8888"222222(888;;;
G
G
G(((*$$$L














III&
rrc~eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdS)TestExpressionStackSizedct|trt|dd}tjtjt
|j}||j	|dS)N<foo>r
)
rUrrmathceillogrco_coderco_stacksize)rrnmax_sizes   rcheck_stack_sizez(TestExpressionStackSize.check_stack_sizedsidC  	44(33D9TXc$,&7&78899T.99999rcF|d|jzdzdS)Nzx and rrNrs rtest_andz TestExpressionStackSize.test_andls(h/#566666rcF|d|jzdzdS)Nzx or rrrs rtest_orzTestExpressionStackSize.test_oros(g.455555rcF|d|jzdzdS)Nzx and x or rrrs rtest_and_orz#TestExpressionStackSize.test_and_orrs(mdf4s:;;;;;rcF|d|jzdzdS)Nzx < rrrs rtest_chained_comparisonz/TestExpressionStackSize.test_chained_comparisonu'ftvo344444rcF|d|jzdzdS)Nzx if x else rrrs rtest_if_elsez$TestExpressionStackSize.test_if_elsexs(ntv5;<<<<<rcF|d|jzdzdS)Nzx + rrrs r
test_binopz"TestExpressionStackSize.test_binop{rrcL|dd|jzzdzdS)N[x, zx]rrs r	test_listz!TestExpressionStackSize.test_list~,cEDFN2T9:::::rcL|dd|jzzdzdS)N(rzx)rrs r
test_tuplez"TestExpressionStackSize.test_tuplerrcL|dd|jzzdzdS)NrNrzx}rrs rtest_setz TestExpressionStackSize.test_setrrcL|dd|jzzdzdS)NrNzx:x, zx:x}rrs r	test_dictz!TestExpressionStackSize.test_dicts-cGdf$44v=>>>>>rcL|dd|jzzdzdS)Nf(r)rrs rtest_func_argsz&TestExpressionStackSize.test_func_argss,dUTV^3c9:::::rcdt|jD}|dd|zdzdS)Nc3"K|]
}d|dVdSr@z=xNrRrs  rrz;TestExpressionStackSize.test_func_kwargs.<locals>.<genexpr>*33)a)))333333rrrrrrrrrkwargss  rtest_func_kwargsz(TestExpressionStackSize.test_func_kwargssM33U46]]333ddii&7&77#=>>>>>rcL|dd|jzzdzdS)No.m(rrrrs rtest_meth_argsz&TestExpressionStackSize.test_meth_argss,futv~5;<<<<<rcdt|jD}|dd|zdzdS)Nc3"K|]
}d|dVdSrrRrs  rrz;TestExpressionStackSize.test_meth_kwargs.<locals>.<genexpr>rrr#rrrrs  rtest_meth_kwargsz(TestExpressionStackSize.test_meth_kwargssM33U46]]333f		&(9(99C?@@@@@rcNd}|d|jzz
}||dS)Nz
def f(x):
z   x and x
)rrrs  r
test_func_andz%TestExpressionStackSize.test_func_ands2''d#####rc<d}d|zdz}t|dddS)Nzx,z=trr
r)rrSrns   rtest_stack_3050z'TestExpressionStackSize.test_stack_3050s,ax$gx(((((rcd}ddt|D}d|d}t|dddS)Nr+rc3&K|]}d|d|V
dS)rz:typeNrRrs  rrz<TestExpressionStackSize.test_stack_3050_2.<locals>.<genexpr>s3==q*q**q**======rzdef f(z	):
  passrr
r
)rrSargsrns    rtest_stack_3050_2z)TestExpressionStackSize.test_stack_3050_2sUyy==E!HH=====((((gx(((((rN)rOrPrQrrrrrrrr	r
rrrrr!r$r'r)r,r0rRrrrr^s,	A:::777666<<<555===555;;;;;;;;;???;;;???===AAA$$$
))))))))rrceZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS) TestStackSizeStabilityFc	bfdfdtddD}tt|dkriddl}ddl}|}|jd||d|d	d	|dSdS)
Nci}d|zz}rd|z}t|dd}t||||djS)Nzdef func():
zasync z<script>rr)rrr)rrscriptrnasync_rs    rcompile_snippetz@TestStackSizeStability.check_stack_size.<locals>.compile_snippetsXB(1w;6F
+!F*6:v66Dr2f:&&rc0g|]}|jSrR)r)rrr7s  rrz;TestStackSizeStability.check_stack_size.<locals>.<listcomp>s&FFFQ##0FFFrrrhr~r)filez4stack sizes diverge with # of consecutive snippets: rz)rrrrioStringIOr^getvalue)rrr6sizesrr:outr7s ``    @rrz'TestStackSizeStability.check_stack_sizes	'	'	'	'	'	'GFFF%1++FFFs5zz??aNNNNNNN++--CCGOOA&&S1111III&+eeWWWcllnnnF
G
G
G
G
G	 rc4d}||dS)Nz1
            if x:
                a
            rrs  rtest_ifzTestStackSizeStability.test_if%	
g&&&&&rc4d}||dS)Nz{
            if x:
                a
            elif y:
                b
            else:
                c
            r@rs  rrz#TestStackSizeStability.test_if_else%	
g&&&&&rc4d}||dS)NzV
            try:
                a
            except:
                b
            r@rs  rtest_try_except_barez+TestStackSizeStability.test_try_except_bare%	
g&&&&&rc4d}||dS)Nz
            try:
                a
            except ImportError:
                b
            except:
                c
            else:
                d
            r@rs  rtest_try_except_qualifiedz0TestStackSizeStability.test_try_except_qualified%		
g&&&&&rc4d}||dS)Nz
            try:
                a
            except ImportError as e:
                b
            except:
                c
            else:
                d
            r@rs  rtest_try_except_asz)TestStackSizeStability.test_try_except_asrJrc4d}||dS)Nz
            try:
                a
            except* ImportError:
                b
            else:
                c
            r@rs  rtest_try_except_star_qualifiedz5TestStackSizeStability.test_try_except_star_qualifiedrDrc4d}||dS)Nz
            try:
                a
            except* ImportError as e:
                b
            else:
                c
            r@rs  rtest_try_except_star_asz.TestStackSizeStability.test_try_except_star_asrDrc4d}||dS)Nz
                try:
                    a
                except* A:
                    b
                finally:
                    c
            r@rs  rtest_try_except_star_finallyz3TestStackSizeStability.test_try_except_star_finallyrDrc4d}||dS)Nzg
                try:
                    a
                finally:
                    b
            r@rs  rtest_try_finallyz'TestStackSizeStability.test_try_finallyrGrc4d}||dS)Nz8
            with x as y:
                a
            r@rs  r	test_withz TestStackSizeStability.test_with rBrc4d}||dS)NzX
            while x:
                a
            else:
                b
            r@rs  rtest_while_elsez&TestStackSizeStability.test_while_else'rGrc4d}||dS)Nz7
            for x in y:
                a
            r@rs  rtest_forzTestStackSizeStability.test_for0rBrc4d}||dS)Nz[
            for x in y:
                a
            else:
                b
            r@rs  r
test_for_elsez$TestStackSizeStability.test_for_else7rGrc4d}||dS)Nz
            for x in y:
                if z:
                    break
                elif u:
                    continue
                else:
                    a
            else:
                b
            r@rs  rtest_for_break_continuez.TestStackSizeStability.test_for_break_continue@s%
	
g&&&&&rc4d}||dS)Na6
            for x in y:
                try:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
                finally:
                    f
            else:
                b
            r@rs  r0test_for_break_continue_inside_try_finally_blockzGTestStackSizeStability.test_for_break_continue_inside_try_finally_blockN%
	
g&&&&&rc4d}||dS)Na6
            for x in y:
                try:
                    t
                finally:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r@rs  r,test_for_break_continue_inside_finally_blockzCTestStackSizeStability.test_for_break_continue_inside_finally_block_rarc4d}||dS)Na5
            for x in y:
                try:
                    t
                except:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r@rs  r+test_for_break_continue_inside_except_blockzBTestStackSizeStability.test_for_break_continue_inside_except_blockprarc4d}||dS)Na

            for x in y:
                with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            r@rs  r)test_for_break_continue_inside_with_blockz@TestStackSizeStability.test_for_break_continue_inside_with_blocks%	
g&&&&&rc4d}||dS)Nz
            try:
                if z:
                    return
                else:
                    a
            finally:
                f
            r@rs  r$test_return_inside_try_finally_blockz;TestStackSizeStability.test_return_inside_try_finally_block%	
g&&&&&rc4d}||dS)Nz
            try:
                t
            finally:
                if z:
                    return
                else:
                    a
            r@rs  r test_return_inside_finally_blockz7TestStackSizeStability.test_return_inside_finally_blockrjrc4d}||dS)Nz
            try:
                t
            except:
                if z:
                    return
                else:
                    a
            r@rs  rtest_return_inside_except_blockz6TestStackSizeStability.test_return_inside_except_blockrjrc4d}||dS)Nz~
            with c:
                if z:
                    return
                else:
                    a
            r@rs  rtest_return_inside_with_blockz4TestStackSizeStability.test_return_inside_with_blocks%	
g&&&&&rc8d}||ddS)Nz>
            async with x as y:
                a
            Tr6r@rs  rtest_async_withz&TestStackSizeStability.test_async_with*	
gd33333rc8d}||ddS)Nz=
            async for x in y:
                a
            Trrr@rs  rtest_async_forz%TestStackSizeStability.test_async_forrtrc8d}||ddS)Nza
            async for x in y:
                a
            else:
                b
            Trrr@rs  rtest_async_for_elsez*TestStackSizeStability.test_async_for_elses*	
gd33333rc8d}||ddS)Na
            for x in y:
                async with c:
                    if z:
                        break
                    elif u:
                        continue
                    else:
                        a
            else:
                b
            Trrr@rs  r/test_for_break_continue_inside_async_with_blockzFTestStackSizeStability.test_for_break_continue_inside_async_with_blocks*	
gd33333rc8d}||ddS)Nz
            async with c:
                if z:
                    return
                else:
                    a
            Trrr@rs  r#test_return_inside_async_with_blockz:TestStackSizeStability.test_return_inside_async_with_blocks*	
gd33333rN)F)rOrPrQrrArrFrIrLrNrPrRrTrVrXrZr\r^r`rcrergrirlrnrprsrvrxrzr|rRrrr2r2sGGGG$'''	'	'	''''''''''	'	'	'	'	'	'	'	'	''''''''''''''''''''''"'''"'''"
'
'
'
'
'
'
'
'
'
'
'
''''444444444
4
4
444444rr2__main__)rrrfunittestrjr#r8rdrVrrJrtest.supportrrtest.support.os_helperrTestCaserrrr2rOmainrRrr<module>rs



				







========++++++G0G0G0G0G0H%G0G0G0T"@@@@@(+@@@FJ)J)J)J)J)h/J)J)J)ZA4A4A4A4A4X.A4A4A4H
zHMOOOOOr