ó
    „ñ:iO  ã                   óp  • S SK r S SKJr  S SKrS SKrS SKJr  S SKJ	r	J
r
  S SKJr  S SKJrJr  S SKJrJrJr  S SKJrJr  S S	KJr   " S
 S\ R                  5      r " S S\ R                  5      r " S S\5      r " S S\5      rSr " S S\5      r " S S\5      r\S:X  a  \ R>                  " 5         gg)é    N)ÚTestCase)Úobjmode)ÚirÚcompiler)Úerrors)ÚCompilerBaseÚReconstructSSA)ÚFunctionPassÚPassManagerÚregister_pass)ÚTranslateByteCodeÚIRProcessing)Únjitc                   ó   • \ rS rSrS rSrg)ÚTestIRé   c                 ó®  • Sn[         R                  " S [         R                  " USS9S9n[         R                  " U[         R                  " USS9S9nUR                  S[         R                  " USS9S9nU R	                  UR                  S5      U5        U R                  [        UR                  5      S5        UR                  S	[         R                  " US
S9S9nU R                  [        UR                  5      S5        U R                  [        UR                  5      S5        U R	                  UR                  S	5      U5        U R	                  UR                  S	5      U5        UR                  S	[         R                  " USS9S9nU R	                  UR                  S	5      U5        U R                  UR                  S	5      U(       + 5        U R	                  UR                  S	5      U5         UR                  S	[         R                  " USS9S9  U R                  S[         R                  -  5        g ! [         R                   a     g f = f)Nz<?>é   )ÚfilenameÚline©ÚparentÚlocé   Úappleé   )r   Úorangeé   é   zExpecting an %s)r   ÚScopeÚLocÚdefineÚassertIsÚgetÚassertEqualÚlenÚ	localvarsÚassertIsNotÚfailÚRedefinedError)Úselfr   ÚtopÚlocalr   r   Úmore_oranges          ÚV/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_ir.pyÚtest_IRScopeÚTestIR.test_IRScope   sÈ  € ØˆÜ�hŠh˜d¬¯ª¸ÀqÑ(IÑJˆÜ—’ ¬¯ª¸ÈÑ)JÑKˆà—‘˜W¬"¯&ª&¸(ÈÑ*K�ÐLˆØ�‰�e—i‘i Ó(¨%Ô0Ø×Ñœ˜UŸ_™_Ó-¨qÔ1à—‘˜H¬"¯&ª&¸(ÈÑ*K�ÐLˆØ×Ñœ˜UŸ_™_Ó-¨qÔ1Ø×Ñœ˜SŸ]™]Ó+¨QÔ/Ø�‰�c—g‘g˜hÓ'¨Ô0Ø�‰�e—i‘i Ó)¨6Ô2à—l‘l 8´·²ÀØ=>ñ2@�lð Aˆà�‰�c—g‘g˜hÓ'¨Ô0Ø×Ñ˜Ÿ™ 8Ó,°&¬jÔ9Ø�‰�e—i‘i Ó)¨;Ô7ð	=Ø�L‰L˜¤r§v¢v°xÀaÑ'HˆLÑIð �I‰IÐ'¬"×*;Ñ*;Ñ;Õ<øô × Ñ ó 	Ùð	ús   Ç7#H= È=IÉI© N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r0   Ú__static_attributes__r2   ó    r/   r   r      s   † õ=r8   r   c                   óÂ  • \ rS rSr\R
                  " SS\R                  5      r\R
                  " SS\R                  5      r\R
                  " SS\R                  5      r	\R
                  " SS\R                  5      r
\R
                  " SS\R                  5      r\R                  " SS	S
5      r\R                  " SSS
5      r\R                  " SSS
5      rSS jrSrg)ÚCheckEqualityé8   NÚaÚbÚcÚdÚeÚmockr   r   r   r   c                 óˆ   • Uc  / nUc  / nU H  nU R                  X:H  5        M     U H  nU R                  X:g  5        M     g ©N)Ú
assertTrue)r+   ÚbaseÚsameÚ	differentÚsr?   s         r/   ÚcheckÚCheckEquality.checkC   sG   € Ø‰<ØˆDØÑØˆIÛˆAØ�O‰O˜D™IÖ&ñ ãˆAØ�O‰O˜D™IÖ&ò r8   r2   )NN)r3   r4   r5   r6   r   ÚVarÚunknown_locÚvar_aÚvar_bÚvar_cÚvar_dÚvar_er!   Úloc1Úloc2Úloc3rI   r7   r2   r8   r/   r:   r:   8   s«   † à�FŠF�4˜˜bŸn™nÓ-€EØ�FŠF�4˜˜bŸn™nÓ-€EØ�FŠF�4˜˜bŸn™nÓ-€EØ�FŠF�4˜˜bŸn™nÓ-€EØ�FŠF�4˜˜bŸn™nÓ-€EØ�6Š6�&˜!˜QÓ€DØ�6Š6�&˜!˜QÓ€DØ�6Š6�&˜!˜QÓ€D÷'r8   r:   c                   ó$   • \ rS rSrSrS rS rSrg)Ú
TestIRMetaéN   z(
Tests IR node meta, like Loc and Scope
c                 ó˜  • [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " SSS5      n[         R                  " SSS5      n[         R                  " SSS5      nU R                  X/X4U/S9  [         R                  " SSSSS9n[         R                  " SSSS	S9nU R                  XU/S
9  g )NÚfiler   r   Úpiler   ©rF   rG   F)Úmaybe_decoratorT©rF   )r   r!   rI   ©r+   r<   r=   r>   r?   r@   ÚfÚgs           r/   Útest_locÚTestIRMeta.test_locR   s¬   € Ü�FŠF�6˜1˜aÓ ˆÜ�FŠF�6˜1˜aÓ ˆÜ�FŠF�6˜1˜aÓ ˆÜ�FŠF�6˜1˜aÓ ˆÜ�FŠF�6˜1˜aÓ ˆØ�
‰
�1˜4¨A°!¨9ˆ
Ñ5ä�FŠF�6˜1˜a°Ñ7ˆÜ�FŠF�6˜1˜a°Ñ6ˆØ�
‰
�1˜q˜6ˆ
Ò"r8   c                 ón  • [         R                  " S U R                  5      n[         R                  " S U R                  5      n[         R                  " S U R                  5      nU R	                  XU/S9  [         R                  " XR                  5      n[         R                  " XR                  5      n[         R                  " XR                  5      n[         R                  " X0R                  5      nU R	                  XEXg/S9  [         R                  " X R                  5      nU R	                  XH/S9  g ©Nr]   )r   r    rR   rS   rI   )	r+   Úparent1Úparent2Úparent3r<   r=   r>   r?   r@   s	            r/   Ú
test_scopeÚTestIRMeta.test_scope^   sÏ   € Ü—(’(˜4 §¡Ó+ˆÜ—(’(˜4 §¡Ó+ˆÜ—(’(˜4 §¡Ó+ˆØ�
‰
�7¨7Ð!4ˆ
Ñ5ä�HŠH�WŸi™iÓ(ˆÜ�HŠH�WŸi™iÓ(ˆÜ�HŠH�WŸi™iÓ(ˆÜ�HŠH�WŸi™iÓ(ˆØ�
‰
�1˜q˜9ˆ
Ñ%ô �HŠH�WŸi™iÓ(ˆØ�
‰
�1˜4ˆ
Ò r8   r2   N)r3   r4   r5   r6   Ú__doc__ra   rh   r7   r2   r8   r/   rV   rV   N   s   † ñò
#õ!r8   rV   c                   ó®   • \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)ÚTestIRNodesép   z
Tests IR nodes
c                 óx   • [         R                  " 5       n[         R                  " 5       nU R                  X/S9  g rd   )r   Ú
TerminatorrI   )r+   Út1Út2s      r/   Útest_terminatorÚTestIRNodes.test_terminatort   s(   € ä�]Š]‹_ˆÜ�]Š]‹_ˆØ�
‰
�2˜Dˆ
Ò!r8   c                 ó2  • [         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      nU R	                  XU/U/S9  g ©Nr   r   r[   )r   ÚJumprR   rS   rI   ©r+   r<   r=   r>   r?   s        r/   Ú	test_jumpÚTestIRNodes.test_jumpz   sh   € Ü�GŠG�A�t—y‘yÓ!ˆÜ�GŠG�A�t—y‘yÓ!ˆÜ�GŠG�A�t—y‘yÓ!ˆÜ�GŠG�A�t—y‘yÓ!ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 ó‚  • [         R                  " U R                  U R                  5      n[         R                  " U R                  U R                  5      n[         R                  " U R                  U R                  5      n[         R                  " U R
                  U R                  5      nU R                  XU/U/S9  g ©Nr[   )r   ÚReturnrM   rR   rS   rN   rI   rw   s        r/   Útest_returnÚTestIRNodes.test_return�   sx   € Ü�IŠI�d—j‘j $§)¡)Ó,ˆÜ�IŠI�d—j‘j $§)¡)Ó,ˆÜ�IŠI�d—j‘j $§)¡)Ó,ˆÜ�IŠI�d—j‘j $§)¡)Ó,ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 ó‚  • [         R                  " U R                  U R                  5      n[         R                  " U R                  U R                  5      n[         R                  " U R                  U R                  5      n[         R                  " U R
                  U R                  5      nU R                  XU/U/S9  g r{   )r   ÚRaiserM   rR   rS   rN   rI   rw   s        r/   Ú
test_raiseÚTestIRNodes.test_raiseˆ   sx   € Ü�HŠH�T—Z‘Z §¡Ó+ˆÜ�HŠH�T—Z‘Z §¡Ó+ˆÜ�HŠH�T—Z‘Z §¡Ó+ˆÜ�HŠH�T—Z‘Z §¡Ó+ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 ó¦  • [         R                  " [        S U R                  5      n[         R                  " [        S U R                  5      n[         R                  " [        S U R                  5      n[         R                  " [        SU R                  5      n[         R                  " [
        S U R                  5      nU R                  XU/XT/S9  g )N)Ústrr[   )r   ÚStaticRaiseÚAssertionErrorrR   rS   ÚRuntimeErrorrI   )r+   r<   r=   r>   r@   r?   s         r/   Útest_staticraiseÚTestIRNodes.test_staticraise�   s†   € Ü�NŠNœ>¨4°·±Ó;ˆÜ�NŠNœ>¨4°·±Ó;ˆÜ�NŠNœ>¨4°·±Ó;ˆÜ�NŠNœ>¨8°T·Y±YÓ?ˆÜ�NŠNœ<¨¨t¯y©yÓ9ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óH  • [         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R
                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      nU R                  XU/XEU/S9  g )Nr   r   r   r[   )r   ÚBranchrM   rR   rS   rN   rI   ©r+   r<   r=   r>   r?   r@   r_   s          r/   Útest_branchÚTestIRNodes.test_branch—   sÂ   € Ü�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆÜ�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆÜ�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆÜ�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆÜ�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆÜ�IŠI�d—j‘j ! Q¨¯	©	Ó2ˆØ�
‰
�1˜q˜6¨a°A¨Yˆ
Ò7r8   c                 ó2  • [         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      nU R	                  XU/U/S9  g )NÚsome_opÚsome_other_opr[   )r   ÚExprrR   rS   rI   rw   s        r/   Ú	test_exprÚTestIRNodes.test_expr    sh   € Ü�GŠG�I˜tŸy™yÓ)ˆÜ�GŠG�I˜tŸy™yÓ)ˆÜ�GŠG�I˜tŸy™yÓ)ˆÜ�GŠG�O T§Y¡YÓ/ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 ó8  • [         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      nU R                  XU/XEU/S9  g r{   )	r   ÚSetItemrM   rN   rO   rR   rS   rP   rI   rŒ   s          r/   Útest_setitemÚTestIRNodes.test_setitem§   sò   € Ü�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯z©z¸4¿9¹9ÓEˆØ�
‰
�1˜q˜6¨a°A¨Yˆ
Ò7r8   c                 óÈ  • [         R                  " U R                  SU R                  U R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  U R                  5      n[         R                  " U R                  SU R                  U R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  U R
                  5      nU R                  XU/XEXg/S9  g ru   )	r   ÚStaticSetItemrM   rN   rO   rR   rS   rP   rI   r^   s           r/   Útest_staticsetitemÚTestIRNodes.test_staticsetitem°   s2  € Ü×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆÜ×Ò˜TŸZ™Z¨¨D¯J©J¸¿
¹
ÀDÇIÁIÓNˆØ�
‰
�1˜q˜6¨a°A¨\ˆ
Ò:r8   c                 óF  • [         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  5      nU R                  XU/XE/S9  g r{   )r   ÚDelItemrM   rN   rR   rS   rO   rI   ©r+   r<   r=   r>   r?   r@   s         r/   Útest_delitemÚTestIRNodes.test_delitemº   s®   € Ü�JŠJ�t—z‘z 4§:¡:¨t¯y©yÓ9ˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯y©yÓ9ˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯y©yÓ9ˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯y©yÓ9ˆÜ�JŠJ�t—z‘z 4§:¡:¨t¯y©yÓ9ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óÒ  • [         R                  " U R                  R                  U R                  5      n[         R                  " U R                  R                  U R                  5      n[         R                  " U R                  R                  U R
                  5      n[         R                  " U R                  R                  U R                  5      nU R                  XU/U/S9  g r{   )r   ÚDelrM   ÚnamerR   rS   rN   rI   rw   s        r/   Útest_delÚTestIRNodes.test_delÂ   sˆ   € Ü�FŠF�4—:‘:—?‘? D§I¡IÓ.ˆÜ�FŠF�4—:‘:—?‘? D§I¡IÓ.ˆÜ�FŠF�4—:‘:—?‘? D§I¡IÓ.ˆÜ�FŠF�4—:‘:—?‘? D§I¡IÓ.ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 óÀ  • [         R                  " U R                  SU R                  U R                  5      n[         R                  " U R                  SU R                  U R                  5      n[         R                  " U R                  SU R                  U R
                  5      n[         R                  " U R                  SU R                  U R                  5      n[         R                  " U R                  SU R                  U R                  5      n[         R                  " U R                  SU R                  U R                  5      nU R                  XU/XEU/S9  g ©NÚfooÚbarr[   )r   ÚSetAttrrM   rN   rR   rS   rO   rI   rŒ   s          r/   Útest_setattrÚTestIRNodes.test_setattrÉ   sÚ   € Ü�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆÜ�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆÜ�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆÜ�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆÜ�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆÜ�JŠJ�t—z‘z 5¨$¯*©*°d·i±iÓ@ˆØ�
‰
�1˜q˜6¨a°A¨Yˆ
Ò7r8   c                 óâ  • [         R                  " U R                  SU R                  5      n[         R                  " U R                  SU R                  5      n[         R                  " U R                  SU R                  5      n[         R                  " U R
                  SU R                  5      n[         R                  " U R                  SU R                  5      nU R                  XU/XE/S9  g r¨   )r   ÚDelAttrrM   rR   rS   rO   rI   rŸ   s         r/   Útest_delattrÚTestIRNodes.test_delattrÒ   sš   € Ü�JŠJ�t—z‘z 5¨$¯)©)Ó4ˆÜ�JŠJ�t—z‘z 5¨$¯)©)Ó4ˆÜ�JŠJ�t—z‘z 5¨$¯)©)Ó4ˆÜ�JŠJ�t—z‘z 5¨$¯)©)Ó4ˆÜ�JŠJ�t—z‘z 5¨$¯)©)Ó4ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óF  • [         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  5      nU R                  XU/XE/S9  g r{   )r   ÚAssignrM   rN   rR   rS   rO   rI   rŸ   s         r/   Útest_assignÚTestIRNodes.test_assignÚ   s®   € Ü�IŠI�d—j‘j $§*¡*¨d¯i©iÓ8ˆÜ�IŠI�d—j‘j $§*¡*¨d¯i©iÓ8ˆÜ�IŠI�d—j‘j $§*¡*¨d¯i©iÓ8ˆÜ�IŠI�d—j‘j $§*¡*¨d¯i©iÓ8ˆÜ�IŠI�d—j‘j $§*¡*¨d¯i©iÓ8ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óP  • [         R                  " U R                  4U R                  U R                  5      n[         R                  " U R                  4U R                  U R                  5      n[         R                  " U R                  4U R                  U R
                  5      n[         R                  " U R                  4U R                  U R                  5      n[         R                  " U R                  4U R                  U R                  5      nU R                  XU/XE/S9  g r{   )r   ÚPrintrM   rN   rR   rS   rO   rI   rŸ   s         r/   Ú
test_printÚTestIRNodes.test_printâ   s¸   € Ü�HŠH�d—j‘j�] D§J¡J°·	±	Ó:ˆÜ�HŠH�d—j‘j�] D§J¡J°·	±	Ó:ˆÜ�HŠH�d—j‘j�] D§J¡J°·	±	Ó:ˆÜ�HŠH�d—j‘j�] D§J¡J°·	±	Ó:ˆÜ�HŠH�d—j‘j�] D§J¡J°·	±	Ó:ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 ó8  • [         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      n[         R                  " U R                  U R                  U R                  U R
                  5      nU R                  XU/XEU/S9  g r{   )	r   ÚStoreMaprM   rN   rO   rR   rS   rP   rI   rŒ   s          r/   Útest_storemapÚTestIRNodes.test_storemapê   sò   € Ü�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆÜ�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆÜ�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆÜ�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆÜ�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆÜ�KŠK˜Ÿ
™
 D§J¡J°·
±
¸D¿I¹IÓFˆØ�
‰
�1˜q˜6¨a°A¨Yˆ
Ò7r8   c                 óâ  • [         R                  " U R                  U R                  S5      n[         R                  " U R                  U R                  S5      n[         R                  " U R                  U R                  S5      n[         R                  " U R
                  U R                  S5      n[         R                  " U R                  U R                  S5      nU R                  XU/XE/S9  g )Nr   r   r[   )r   ÚYieldrM   rR   rS   rN   rI   rŸ   s         r/   Ú
test_yieldÚTestIRNodes.test_yieldó   sš   € Ü�HŠH�T—Z‘Z §¡¨AÓ.ˆÜ�HŠH�T—Z‘Z §¡¨AÓ.ˆÜ�HŠH�T—Z‘Z §¡¨AÓ.ˆÜ�HŠH�T—Z‘Z §¡¨AÓ.ˆÜ�HŠH�T—Z‘Z §¡¨AÓ.ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óH  • [         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R
                  SSU R                  5      n[         R                  " U R                  SSU R                  5      n[         R                  " U R                  SSU R                  5      nU R                  XU/XEU/S9  g )Nr   r   r   r[   )r   Ú	EnterWithrM   rR   rS   rN   rI   rŒ   s          r/   Útest_enterwithÚTestIRNodes.test_enterwithû   sÂ   € Ü�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆÜ�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆÜ�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆÜ�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆÜ�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆÜ�LŠL˜Ÿ™ Q¨¨4¯9©9Ó5ˆØ�
‰
�1˜q˜6¨a°A¨Yˆ
Ò7r8   c                 ó~  • [         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      nU R	                  XU/XE/S9  g ©Nr©   r   rª   r   r[   )r   ÚArgrR   rS   rI   rŸ   s         r/   Útest_argÚTestIRNodes.test_arg  s†   € Ü�FŠF�5˜!˜TŸY™YÓ'ˆÜ�FŠF�5˜!˜TŸY™YÓ'ˆÜ�FŠF�5˜!˜TŸY™YÓ'ˆÜ�FŠF�5˜!˜TŸY™YÓ'ˆÜ�FŠF�5˜!˜TŸY™YÓ'ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 ó2  • [         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      n[         R                  " SU R                  5      nU R	                  XU/U/S9  g ru   )r   ÚConstrR   rS   rI   rw   s        r/   Ú
test_constÚTestIRNodes.test_const  sh   € Ü�HŠH�Q˜Ÿ	™	Ó"ˆÜ�HŠH�Q˜Ÿ	™	Ó"ˆÜ�HŠH�Q˜Ÿ	™	Ó"ˆÜ�HŠH�Q˜Ÿ	™	Ó"ˆØ�
‰
�1˜q˜6¨a¨Sˆ
Ò1r8   c                 ó~  • [         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      n[         R                  " SSU R                  5      nU R	                  XU/XE/S9  g rÇ   )r   ÚGlobalrR   rS   rI   rŸ   s         r/   Útest_globalÚTestIRNodes.test_global  s†   € Ü�IŠI�e˜Q §	¡	Ó*ˆÜ�IŠI�e˜Q §	¡	Ó*ˆÜ�IŠI�e˜Q §	¡	Ó*ˆÜ�IŠI�e˜Q §	¡	Ó*ˆÜ�IŠI�e˜Q §	¡	Ó*ˆØ�
‰
�1˜q˜6¨a¨Vˆ
Ò4r8   c                 óÄ  • [         R                  " S SU R                  5      n[         R                  " S SU R                  5      n[         R                  " S SU R                  5      n[         R                  " [         R                  " S [         R
                  5      SU R                  5      n[         R                  " S SU R                  5      nU R                  XX4/U/S9  g r¨   )r   rK   rR   rS   r    rL   rI   rŸ   s         r/   Útest_varÚTestIRNodes.test_var  s•   € Ü�FŠF�4˜ §	¡	Ó*ˆÜ�FŠF�4˜ §	¡	Ó*ˆÜ�FŠF�4˜ §	¡	Ó*ˆÜ�FŠF”2—8’8˜D¤"§.¡.Ó1°5¸$¿)¹)ÓDˆÜ�FŠF�4˜ §	¡	Ó*ˆØ�
‰
�1˜q˜9°°ˆ
Ò4r8   c                 óx   • [         R                  " 5       n[         R                  " 5       nU R                  X/S9  g rd   )r   ÚUndefinedTyperI   )r+   r<   r=   s      r/   Útest_undefinedtypeÚTestIRNodes.test_undefinedtype#  s.   € Ü×ÒÓˆÜ×ÒÓˆØ�
‰
�1˜3ˆ
Òr8   c                 óà   • [         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      nU R                  X/X4/S9  g ©Nr   r   r   r   r[   )r   ÚLooprI   rw   s        r/   Ú	test_loopÚTestIRNodes.test_loop(  óR   € Ü�GŠG�A�q‹MˆÜ�GŠG�A�q‹MˆÜ�GŠG�A�q‹MˆÜ�GŠG�A�q‹MˆØ�
‰
�1˜3¨1¨&ˆ
Ò1r8   c                 óà   • [         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      nU R                  X/X4/S9  g rÛ   )r   ÚWithrI   rw   s        r/   Ú	test_withÚTestIRNodes.test_with/  rß   r8   r2   N)r3   r4   r5   r6   rj   rr   rx   r}   r�   rˆ   r�   r“   r—   r›   r    r¥   r¬   r°   r´   r¸   r¼   rÀ   rÄ   rÉ   rÍ   rÑ   rÔ   rØ   rÝ   râ   r7   r2   r8   r/   rl   rl   p   s„   † ñò"ò2ò2ò2ò5ò8ò2ò8ò;ò5ò2ò8ò5ò5ò5ò8ò5ò8ò5ò2ò5ò5ò ò
2õ2r8   rl   iÒ  c                   ó*   • \ rS rSrSrS rS rS rSrg)ÚTestIRCompoundsi;  z#
Tests IR concepts that have state
c                 óö  • [         R                  " 5       nUR                  U R                  S5        UR                  U R                  S5        [         R                  " 5       nUR                  U R                  S5        UR                  U R                  S5        [         R                  " 5       nUR                  U R                  S5        UR                  U R
                  S5        U R                  X/U/S9  g r¨   )r   ÚVarMapr"   rM   rN   rO   rI   )r+   r<   r=   r>   s       r/   Útest_varmapÚTestIRCompounds.test_varmap?  s£   € Ü�IŠI‹KˆØ	�‰�—‘˜UÔ#Ø	�‰�—‘˜UÔ#ä�IŠI‹KˆØ	�‰�—‘˜UÔ#Ø	�‰�—‘˜UÔ#ä�IŠI‹KˆØ	�‰�—‘˜UÔ#Ø	�‰�—‘˜UÔ#à�
‰
�1˜3¨1¨#ˆ
Ò.r8   c                 óæ   ^ • U 4S jnU" 5       nU" 5       nU" 5       R                  [        R                  " T R                  T R                  T R
                  5      5      nT R                  X#/U/S9  g )Nc                  ó6  >• [         R                  " S TR                  5      n [         R                  " U TR                  5      n[         R
                  " TR                  TR                  TR                  5      n[         R
                  " TR                  TR                  TR                  5      n[         R
                  " TR                  TR                  TR                  5      nUR                  U5        UR                  U5        UR                  U5        U$ rC   )r   r    rR   ÚBlockrS   r³   rM   rN   rT   rO   Úappend)r   ÚtmpÚassign1Úassign2Úassign3r+   s        €r/   Ú	gen_blockÚ-TestIRCompounds.test_block.<locals>.gen_blockO  s®   ø€ Ü—X’X˜d D§I¡IÓ.ˆFÜ—(’(˜6 4§9¡9Ó-ˆCÜ—i’i §
¡
¨D¯J©J¸¿	¹	ÓBˆGÜ—i’i §
¡
¨D¯J©J¸¿	¹	ÓBˆGÜ—i’i §
¡
¨D¯J©J¸¿	¹	ÓBˆGØ�J‰J�wÔØ�J‰J�wÔØ�J‰J�wÔØˆJr8   r[   )rí   r   r³   rM   rN   rT   rI   )r+   rò   r<   r=   r>   s   `    r/   Ú
test_blockÚTestIRCompounds.test_blockN  sW   ø€ õ		ñ ‹KˆÙ‹KˆÙ‹K×ÑœrŸyšy¨¯©°T·Z±ZÀÇÁÓKÓLˆà�
‰
�1˜3¨1¨#ˆ
Ò.r8   c                 ó|  • S nS nU" 5       nU" 5       nU" U5      nU" U5      nU R                  UR                  U5      5        SS jnU R                  SUR                  U5      5        [	        [        UR                  R                  5       5      5       Hr  nUR                  U   n	[        U	R                  S   [        R                  5      (       d  M@  U	R                  S   n
U
R                  U
R                  sU
l        U
l          O   U" UR                  U5      S/5        U" 5       nU R                  UR                  U5      5        U" U5      n[        5       n[	        [        UR                  R                  5       5      5       Hñ  nUR                  U   n	U	R                  S S n
S n[!        [#        U
5      S-
  5       HN  n[        X¯   [        R$                  5      (       d  M&  [        X¯S-      [        R$                  5      (       d  ML  Un  O   Uc  M‘  U	R                  nUR'                  [)        UUS-      5      5        UR'                  [)        UU   5      5        UUS-      UU   sUU'   UUS-   '     O   U R                  U5        U R                  UR                  U5      5        U R+                  [#        U5      S5        U H#  nU R                  UR-                  S	5      5        M%     U" UR                  U5      U5        S
 nS nS nU" U5      nU" U5      nU R                  UR                  U5      5        U R                  SUR                  U5      5        U" U5      nU R                  UR                  U5      5        UR                  U5      nU R                  SU5        U" USS/5        g )Nc                 ó,   • [         R                  " U SS9$ )NT)Ú	emit_dels)r   Úrun_frontend)Úxs    r/   rù   Ú5TestIRCompounds.test_functionir.<locals>.run_frontendb  s   € Ü×(Ò(¨°dÑ;Ð;r8   c                  ó   ^• SmSU4S jjn U $ )NiþÊ  c                 óB  >• X-   nU T-  n [         R                  " U[         R                  S9nXV-   nSU-  n[         R                  " U5      S:”  Ga  Xx-  n	[         R                  " SUS-   5      n
[        5          [        XI5        S S S 5        [         R                  " X¦-
  5      n[         R                  " US   5      S:  a<  Sn[        U 5       H$  nUS-  n[         R                  " U5      S:  d  M$    O   XËS   -  nXj-  n/ n[        [        U5      5       HN  nUR                  UU   5        US:”  a"  [        SS	S
9   SnSnS S S 5        WS:”  a  WU-  nWUS   [        -   -  nMP     UW-   W-   W-   U-   U -   W-   $ ! , (       d  f       Nÿ= f! , (       d  f       NQ= f)N)Údtypeù              ð?r   r   r   r   r   ÚintpÚ
complex128)rH   Úté{   éz   )ÚnpÚzerosÚ	complex64ÚabsÚaranger   ÚprintÚsqrtÚranger&   rí   Ú_GLOBAL)r<   r=   r>   r?   r@   r_   r`   ÚhÚiÚkÚlÚmÚnÚoÚpÚqÚrrH   r  Ú_FREEVARs                      €r/   r©   Ú9TestIRCompounds.test_functionir.<locals>.gen.<locals>.foom  sw  ø€ Ø‘E�Ø�X‘�Ü—H’H˜Q¤b§l¡lÑ3�Ø‘E�Ø˜‘F�Ü—6’6˜!“9˜q”=Ø™�AÜŸ	š	 ! Q¨¡UÓ+�AÜ �Ü˜aœ÷ #äŸš ¡›�AÜ—v’v˜a ™d“| aÓ'Ø˜Ü!& q¦˜AØ ™F˜AÜ!Ÿvšv a›y¨1�}Ù %ñ "*ð ˜q™T™	˜Ø™�AØ�AÜ"¤3 q£6ž]˜ØŸ™  1¡œØ˜u›9Ü!(¨6°\Ó!BØ$' Ø$% ÷ "Cð  ! 3›wØ ! Q¡ Ø˜Q˜q™T¤G™^Ñ+šñ +ð ˜1‘u˜q‘y 1‘} qÑ(¨1Ñ,¨qÑ0Ð0÷- #�ú÷ "CÕ!Bús   Á:E?Å FÅ?
FÆ
F	)é   rÿ   Nr2   )r©   r  s    @r/   ÚgenÚ,TestIRCompounds.test_functionir.<locals>.genj  s   ø€ ØˆH÷1ðB ˆJr8   c                 óª   • Uc  / nU R                  5       nU H8  nU H#  nUR                  S5      (       d  M  X4;   d  M"    M*     [        SU-  5      e   g )Nz->zCould not find %s )Ú
splitlinesÚ
startswithr†   )ÚstringÚpointing_atÚlinesÚitemr  s        r/   Úcheck_diffstrÚ6TestIRCompounds.test_functionir.<locals>.check_diffstr—  sY   € ØÑ"Ø �Ø×%Ñ%Ó'ˆEÛ#�Û�AØ—|‘| D×)Ó)Ø�9Ú!ñ ô
 )Ð)=ÀÑ)DÓEÐEò $r8   zIR is considered equivalentéÿÿÿÿÚbranchr   r   zdel c                 óD   • U S-  nX!-   n[         R                  " U5      nU$ ©Nr   ©r  r  ©r<   r=   r>   r?   r@   s        r/   r©   Ú,TestIRCompounds.test_functionir.<locals>.fooÏ  ó$   € Ø�A‘ˆAØ‘ˆAÜ—’˜“
ˆAØˆHr8   c                 óD   • U S-  nX!-   n[         R                  " U5      nU$ r)  r*  r+  s        r/   rª   Ú,TestIRCompounds.test_functionir.<locals>.barÕ  r-  r8   c                 óJ   • U S-  nX-   n[         R                  " US-   5      nU$ )Nr   r   r*  r+  s        r/   ÚbazÚ,TestIRCompounds.test_functionir.<locals>.bazÛ  s(   € Ø�A‘ˆAØ‘ˆAÜ—’˜˜A™“ˆAØˆHr8   z$Other block contains more statementszc + bzb + crC   )rD   Úequal_irÚassertInÚdiff_strÚreversedÚlistÚblocksÚkeysÚ
isinstanceÚbodyr   r‹   ÚfalsebrÚtruebrÚassertFalseÚsetr  r&   r£   Úaddr„   r%   r  )r+   rù   r  rú   ÚyÚx_irÚy_irr$  ÚlabelÚblkÚrefÚzÚz_irÚ
change_setÚidxr  r=   r#  r©   rª   r1  Úfoo_irÚbar_irÚbaz_irrî   s                            r/   Útest_functionirÚTestIRCompounds.test_functionir`  s  € ò	<ò$	ñL ‹EˆÙ‹EˆÙ˜A‹ˆÙ˜A‹ˆà�‰˜Ÿ™ dÓ+Ô,ô
	Fð 	�‰Ð3°T·]±]À4Ó5HÔIô œd 4§;¡;×#3Ñ#3Ó#5Ó6Ö7ˆEØ—+‘+˜eÑ$ˆCÜ˜#Ÿ(™( 2™,¬¯	©	×2Ó2Ø—h‘h˜r‘l�Ø*-¯+©+°s·z±zÐ'�”
˜CœKÙñ 8ñ 	�d—m‘m DÓ)¨H¨:Ô6á‹EˆØ×Ñ˜Ÿ™ tÓ,Ô-á˜A‹ˆä“Uˆ
Üœd 4§;¡;×#3Ñ#3Ó#5Ó6Ö7ˆEØ—+‘+˜eÑ$ˆCØ—(‘(˜3˜B�-ˆCØˆCÜœ3˜s›8 a™<Ö(�ä˜s™v¤r§v¡v×.Ó.Ü" 3¨1¡u¡:¬r¯v©v×6Ó6Ø�CÙñ )ð ‹Ø—H‘H�Ø—‘œs 1 S¨1¡W¡:›Ô/Ø—‘œs 1 S¡6›{Ô+Ø%& s¨Q¡w¡Z°°3±Ð"��#‘˜˜# ™'™
Ùñ 8ð$ 	�‰˜
Ô#à×Ñ˜Ÿ™ tÓ,Ô-Ø×Ñœ˜Z›¨!Ô,ÛˆDØ�O‰O˜DŸO™O¨FÓ3Ö4ñ á�d—m‘m DÓ)¨:Ô6ò	ò	ò	ñ ˜cÓ"ˆÙ˜cÓ"ˆØ�‰˜Ÿ™¨Ó/Ô0Ø�‰Ð3°V·_±_ÀVÓ5LÔMá˜cÓ"ˆØ×Ñ˜Ÿ™¨Ó0Ô1Ø�o‰o˜fÓ%ˆØ�‰Ð<¸cÔBÙ�c˜G WÐ-Õ.r8   r2   N)	r3   r4   r5   r6   rj   rè   rô   rN  r7   r2   r8   r/   rå   rå   ;  s   † ñò/ò/õ$J/r8   rå   c                   ó   • \ rS rSrS rSrg)ÚTestIRPedanticChecksií  c                 ó0  ^^• [        SSS9 " S S[        5      5       m[        SSS9 " S S[        5      5       m " UU4S jS[        5      n[        US	9S
 5       n[        R
                  " 5          [        R                  " S[        R                  5        U R                  [        R                  5       nU" S5        S S S 5        U R                  [        WR                  5      S5        S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)NF)Úmutates_CFGÚanalysis_onlyc                   ó$   • \ rS rSrSrS rS rSrg)ÚKTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScopeið  Ú_remove_var_in_scopec                 ó0   • [         R                  " U 5        g rC   ©r
   Ú__init__)r+   s    r/   rZ  ÚTTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScope.__init__ô  ó   € Ü×%Ò% dÕ+r8   c                 óÒ   • UR                   nUR                  R                  5        H=  nUR                  n[        R
                  " UR                  UR                  S9Ul        M?     g)Nr   T)Úfunc_irr8  ÚvaluesÚscoper   r    r   r   )r+   Ústater^  rE  Úoldscopes        r/   Úrun_passÚTTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScope.run_passù  sM   € ØŸ-™-�à"Ÿ>™>×0Ñ0Ö2�CØ"Ÿy™y�Hä "§¢°·±Ø-5¯\©\ñ!;�C–Iñ 3ð
 r8   r2   N©r3   r4   r5   r6   Ú_namerZ  rc  r7   r2   r8   r/   ÚRemoveVarInScoperV  ð  s   † à*ˆEò,õ
r8   rg  c                   ó$   • \ rS rSrSrS rS rSrg)ÚCTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPassi  Ú_failc                 ó0   • [         R                  " U 5        g rC   rY  )r+   ÚargsÚkwargss      r/   rZ  ÚLTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPass.__init__  r\  r8   c                 ó   • [        S5      e)NÚunreachable)r†   )r+   ra  s     r/   rc  ÚLTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPass.run_pass  s   € ô % ]Ó3Ð3r8   r2   Nre  r2   r8   r/   ÚFailPassri    s   † àˆEò,õ4r8   rr  c                   ó$   >• \ rS rSrU U4S jrSrg)ÚETestIRPedanticChecks.test_var_in_scope_assumption.<locals>.MyCompileri  c                 ó  >• [        S5      nUR                  [        S5        UR                  [        S5        UR                  TS5        UR                  [        S5        UR                  TS5        UR                  5         U/$ )Nz
testing pmzanalyzing bytecodezprocessing IRrW  Ússarj  )r   Úadd_passr   r   r	   Úfinalize)r+   Úpmrr  rg  s     €€r/   Údefine_pipelinesÚVTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.MyCompiler.define_pipelines  sg   ø€ Ü  Ó.�Ø—‘Ô-Ð/CÔDØ—‘œL¨/Ô:Ø—‘Ð,Ð.DÔEØ—‘œN¨EÔ2Ø—‘˜H gÔ.Ø—‘”Ø�t�r8   r2   N)r3   r4   r5   r6   rz  r7   )rr  rg  s   €€r/   Ú
MyCompilerrt    s   ø† ÷ñ r8   r|  )Úpipeline_classc                 ó(   • SnSnX:  a  SnX4$ SnX4$ )Nr   r   r   r2   )rú   r<   r=   s      r/   ÚdummyÚ@TestIRPedanticChecks.test_var_in_scope_assumption.<locals>.dummy  s/   € ð ˆAØˆAØ‹uØ�ð �4ˆKð �Ø�4ˆKr8   Úerrorr   z variable '[a-z]' is not in scope)r   r
   r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚNumbaPedanticWarningÚassertRaisesÚNumbaIRAssumptionWarningÚassertRegexr„   Ú	exception)r+   r|  r  Úraisesrr  rg  s       @@r/   Útest_var_in_scope_assumptionÚ1TestIRPedanticChecks.test_var_in_scope_assumptionî  sò   ù€ ä	 5¸Ñ	>ô	œ|ó 	ó 
?ð	ô& 
 5¸Ñ	>ô
	4”|ó 
	4ó 
?ð
	4÷		ð 		œô 		ô 
˜ZÑ	(ñ		ó 
)ð		ô ×$Ò$Õ&ä×!Ò! '¬6×+FÑ+FÔGà×"Ñ"¤6×#BÑ#BÔCÀvÙ�a”÷ Dð ×ÑÜ�F×$Ñ$Ó%Ø3ô÷ 'Ð&÷ DÕCú÷	 'Õ&ús%   Á2ADÂ7	C6Ã -DÃ6
D	Ä DÄ
Dr2   N)r3   r4   r5   r6   r‹  r7   r2   r8   r/   rQ  rQ  í  s   † õDr8   rQ  Ú__main__) ÚunittestÚunittest.caser   r‚  Únumpyr  Únumbar   Ú
numba.corer   r   r   Únumba.core.compilerr   r	   Únumba.core.compiler_machineryr
   r   r   Únumba.core.untyped_passesr   r   r   r   r:   rV   rl   r  rå   rQ  r3   Úmainr2   r8   r/   Ú<module>r—     s°   ðÛ Ý "Û Û å ß #Ý ÷÷ñ ÷
õ ô=ˆX×Ñô =ô>'�H×%Ñ%ô 'ô,!�ô !ôDD2�-ô D2ðP €ôo/�mô o/ôdE˜8ô EðP ˆzÓØ‡M‚M…Oð r8   