NL iddlmZddlZddlmZmZddlmZddlm Z ddl m Z m Z m Z ddlmZmZmZmZmZmZmZmZmZddlmZdd lmZGd d ej8Zy) ) annotationsN)EmitterEmitterContext) HAVE_IMMORTAL)ClassIR) BasicBlockRegisterValue) RInstanceRTupleRUnionbool_rprimitiveint_rprimitivelist_rprimitivenone_rprimitiveobject_rprimitivestr_rprimitive)compute_vtable) NameGeneratorceZdZddZddZddZddZddZddZddZ ddZ dd Z dd Z dd Z dd Zdd ZddZddZddZddZddZddZddZy) TestEmittercttd|_tt dgg|_t |j i|_tdd}t||g|_ t||_ y)NnmodA) r rrrrcontextremitterrrmror instance_a)selfirs Z/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/mypyc/test/test_emit.pysetUpzTestEmitter.setUps_.#.%meWI&>? t||R0 S% r#B-cV|jjtddk(sJy)NCPyL4)rlabelrr s r" test_labelzTestEmitter.test_label#s#||!!*Q-0G;;;r$c|jdi}t|j|}|j|jdk(sJy)Nrcpy_r_n)rrrreg)r namesrs r"test_regzTestEmitter.test_reg&s:#'663-$,,.{{466"i///r$c|jjdddk(sJ|jjttdddk(sJy)N hello, worldline;z /* 'hello, world' */z~ /* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] */)robject_annotationlistranger)s r"test_object_annotationz"TestEmitter.test_object_annotation+sR||--ngFJaaaa LL * *4b ?G D+ +  +r$c|j}|jd|jd|jd|jd|jgdk(sJt|ji}|jdd|jd t t d |jd d k(sJ|jd dk(sJy)Nr2za {zf();})zline; za { z f(); z} zCPyStatics[0];r1)annzCPyStatics[1];r3rz$CPyStatics[0]; /* 'hello, world' */ zCPyStatics[1]; /* [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29] */ )r emit_line fragmentsrrr5r6r rs r"test_emit_linezTestEmitter.test_emit_line4s,,'"% &!#  $MMMM$,,+*?*U2Y@  #'NNNN   a > >  >r$c|j}|jtdk(sJ|jtdk(sJ|jtdk(sJy)N CPY_INT_TAGNULL2)rc_undefined_valuerrrr>s r")test_emit_undefined_value_for_simple_typez5TestEmitter.test_emit_undefined_value_for_simple_typeFsV,,((8MIII((8FBBB((9S@@@r$c&|j}|jtttt gdk(sJ|jttgdk(sJ|jtttgt gdk(sJy)Nz&(tuple_T3OIC) { NULL, CPY_INT_TAG, 2 }z(tuple_T1O) { NULL }z(tuple_T2T1OC) { { NULL }, 2 })rrDr rrrr>s r"#test_emit_undefined_value_for_tuplez/TestEmitter.test_emit_undefined_value_for_tupleLs,,  % %fnno-^&_ `7 8  8((0@)ABF\\\\  % %ffn5E.F-X&Y Z/ 0  0r$cf|jjdt|jdy)NxCPy_INCREF(x); )r emit_inc_refr assert_outputr)s r"test_emit_inc_ref_objectz$TestEmitter.test_emit_inc_ref_objectXs& !!#'89 -.r$cf|jjdt|jdy)NrIzCPyTagged_INCREF(x); )rrKrrLr)s r"test_emit_inc_ref_intz!TestEmitter.test_emit_inc_ref_int\s% !!#~6 34r$c|jjdtd|jd|jjdtd|jdy)NrITrarerJzCPyTagged_IncRef(x); )rrKrrLrr)s r"test_emit_inc_ref_rarez"TestEmitter.test_emit_inc_ref_rare`S !!#'8t!D -. !!#~D!A 34r$c|jjdttr|j dy|j dyNrIzCPy_INCREF_NO_IMM(x); rJ)rrKrrrLr)s r"test_emit_inc_ref_listz"TestEmitter.test_emit_inc_ref_listfs7 !!#7    8 9   1 2r$c|jjd|jtr|j dy|j dyrV)rrKrrrLr)s r"test_emit_inc_ref_instancez&TestEmitter.test_emit_inc_ref_instancems; !!#t7    8 9   1 2r$ct|jtg}|jj d||j dy)NozCPy_INCREF(o); )r rrrrKrLr optionals r"test_emit_inc_ref_optionalz&TestEmitter.test_emit_inc_ref_optionalt84??O<= !!#x0 -.r$c|jjdt|jd|jjdtd|jdy)NrICPy_DECREF(x); Tis_xdecCPy_XDECREF(x); )r emit_dec_refrrLr)s r"test_emit_dec_ref_objectz$TestEmitter.test_emit_dec_ref_objectysO !!#'89 -. !!#'8$!G ./r$c|jjdt|jd|jjdtd|jdy)NrIzCPyTagged_DECREF(x); TrbzCPyTagged_XDECREF(x); )rrerrLr)s r"test_emit_dec_ref_intz!TestEmitter.test_emit_dec_ref_intsM !!#~6 34 !!#~t!D 45r$c|jjdtd|jd|jjdtd|jdy)NrITrQzCPy_DecRef(x); zCPyTagged_DecRef(x); )rrerrLrr)s r"test_emit_dec_ref_rarez"TestEmitter.test_emit_dec_ref_rarerTr$c,|jjdttr|j dn|j d|jjdtdtr|j dy|j dyNrIzCPy_DECREF_NO_IMM(x); raTrbzCPy_XDECREF_NO_IMM(x); rd)rrerrrLr)s r"test_emit_dec_ref_listz"TestEmitter.test_emit_dec_ref_listsq !!#7    8 9   1 2 !!#!E    9 :   2 3r$cD|jjd|jtr|j dn|j d|jjd|jdtr|j dy|j dyrl)rrerrrLr)s r"test_emit_dec_ref_instancez&TestEmitter.test_emit_dec_ref_instancesy !!#t7    8 9   1 2 !!#t!E    9 :   2 3r$ct|jtg}|jj d||j dy)Nr[zCPy_DECREF(o); )r rrrrerLr\s r"test_emit_dec_ref_optionalz&TestEmitter.test_emit_dec_ref_optionalr_r$czdj|jj|k(sJg|j_y)N)joinrr=)r expecteds r"rLzTestEmitter.assert_outputs/wwt||--.(:::!# r$N)returnNone)rustrrvrw)__name__ __module__ __qualname__r#r*r/r7r?rErGrMrOrSrWrYr^rfrhrjrmrorqrLr$r"rrsg(<0   $A  /55 33/ 0 6 5 4 4/ $r$r) __future__runittestmypyc.codegen.emitrr mypyc.commonrmypyc.ir.class_irr mypyc.ir.opsrr r mypyc.ir.rtypesr r r rrrrrrmypyc.irbuild.vtabler mypyc.namegenrTestCaserr|r$r"rsE"6&%44   0'R$(##R$r$