§
    ƒÛg\N  ã                   ó€  — d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZ d dlmZmZmZ d dlmZmZ d d	lmZ  G d
„ de j        ¦  «        Z G d„ de j        ¦  «        Z G d„ de¦  «        Z G d„ de¦  «        ZdZ G d„ de¦  «        Z G d„ de¦  «        Zedk    r e j        ¦   «          dS dS )é    N)ÚTestCase)Úobjmode)ÚirÚcompiler)Úerrors)ÚCompilerBaseÚReconstructSSA)ÚFunctionPassÚPassManagerÚregister_pass)ÚTranslateByteCodeÚIRProcessing)Únjitc                   ó   — e Zd Zd„ ZdS )ÚTestIRc                 óZ  — d}t          j        d t          j        |d¬¦  «        ¬¦  «        }t          j        |t          j        |d¬¦  «        ¬¦  «        }|                     dt          j        |d¬¦  «        ¬¦  «        }|                      |                     d¦  «        |¦  «         |                      t          |j        ¦  «        d¦  «         |                     d	t          j        |d
¬¦  «        ¬¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         |                      |                     d	¦  «        |¦  «         |                      |                     d	¦  «        |¦  «         |                     d	t          j        |d¬¦  «        ¬¦  «        }|                      |                     d	¦  «        |¦  «         |  	                    |                     d	¦  «        | ¦  «         |                      |                     d	¦  «        |¦  «         	 |                     d	t          j        |d¬¦  «        ¬¦  «         |  
                    dt           j        z  ¦  «         d S # t           j        $ r Y d S w xY w)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          úI/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_ir.pyÚtest_IRScopezTestIR.test_IRScope   sa  € ØˆÝŒh˜d­¬¸ÀqÐ(IÑ(IÔ(IÐJÑJÔJˆÝ” ­¬¸ÈÐ)JÑ)JÔ)JÐKÑKÔKˆà—’˜W­"¬&¸(ÈÐ*KÑ*KÔ*K�ÑLÔLˆØ�Š�e—i’i Ñ(Ô(¨%Ñ0Ô0Ð0Ø×Ò�˜Uœ_Ñ-Ô-¨qÑ1Ô1Ð1à—’˜H­"¬&¸(ÈÐ*KÑ*KÔ*K�ÑLÔLˆØ×Ò�˜Uœ_Ñ-Ô-¨qÑ1Ô1Ð1Ø×Ò�˜Sœ]Ñ+Ô+¨QÑ/Ô/Ð/Ø�Š�c—g’g˜hÑ'Ô'¨Ñ0Ô0Ð0Ø�Š�e—i’i Ñ)Ô)¨6Ñ2Ô2Ð2à—l’l 8µ´ÀØ=>ð2@ñ 2@ô 2@�lñ Aô Aˆà�Š�c—g’g˜hÑ'Ô'¨Ñ0Ô0Ð0Ø×Ò˜Ÿš 8Ñ,Ô,°&¨jÑ9Ô9Ð9Ø�Š�e—i’i Ñ)Ô)¨;Ñ7Ô7Ð7ð	=Ø�LŠL˜¥r¤v°xÀaÐ'HÑ'HÔ'HˆLÑIÔIÐIð �IŠIÐ'­"Ô*;Ñ;Ñ<Ô<Ð<Ð<Ð<øõ Ô ð 	ð 	ð 	ØˆDˆDð	øøøs   É+J ÊJ*Ê)J*N)Ú__name__Ú
__module__Ú__qualname__r/   © ó    r.   r   r      s#   € € € € € ð=ð =ð =ð =ð =r4   r   c                   ól  — e Zd Z ej        ddej        ¦  «        Z ej        ddej        ¦  «        Z ej        ddej        ¦  «        Z ej        ddej        ¦  «        Z	 ej        ddej        ¦  «        Z
 ej        ddd	¦  «        Z ej        dd
d	¦  «        Z ej        ddd	¦  «        Zg g fd„ZdS )ÚCheckEqualityNÚaÚbÚcÚdÚeÚmockr   r   r   r   c                 ó~   — |D ]}|                       ||k    ¦  «         Œ|D ]}|                       ||k    ¦  «         Œd S ©N)Ú
assertTrue)r*   ÚbaseÚsameÚ	differentÚsr:   s         r.   ÚcheckzCheckEquality.checkC   s\   € Øð 	'ð 	'ˆAØ�OŠO˜D AšIÑ&Ô&Ð&Ð&Øð 	'ð 	'ˆAØ�OŠO˜D AšIÑ&Ô&Ð&Ð&ð	'ð 	'r4   )r0   r1   r2   r   ÚVarÚunknown_locÚvar_aÚvar_bÚvar_cÚvar_dÚvar_er    Úloc1Úloc2Úloc3rD   r3   r4   r.   r6   r6   8   sß   € € € € € àˆBŒF�4˜˜bœnÑ-Ô-€EØˆBŒF�4˜˜bœnÑ-Ô-€EØˆBŒF�4˜˜bœnÑ-Ô-€EØˆBŒF�4˜˜bœnÑ-Ô-€EØˆBŒF�4˜˜bœnÑ-Ô-€EØˆ2Œ6�&˜!˜QÑÔ€DØˆ2Œ6�&˜!˜QÑÔ€DØˆ2Œ6�&˜!˜QÑÔ€Dà!¨Rð 'ð 'ð 'ð 'ð 'ð 'r4   r6   c                   ó   — e Zd ZdZd„ Zd„ ZdS )Ú
TestIRMetaz0
    Tests IR node meta, like Loc and Scope
    c                 ó¬  — t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ddd¦  «        }t          j        ddd¦  «        }|                      ||g|||g¬¦  «         t          j        dddd¬¦  «        }t          j        dddd	¬¦  «        }|                      |||g¬
¦  «         d S )NÚfiler   r   Úpiler   ©rA   rB   F)Úmaybe_decoratorT©rA   )r   r    rD   ©r*   r7   r8   r9   r:   r;   ÚfÚgs           r.   Útest_loczTestIRMeta.test_locN   sÑ   € ÝŒF�6˜1˜aÑ Ô ˆÝŒF�6˜1˜aÑ Ô ˆÝŒF�6˜1˜aÑ Ô ˆÝŒF�6˜1˜aÑ Ô ˆÝŒF�6˜1˜aÑ Ô ˆØ�
Š
�1˜A˜4¨A¨q°!¨9ˆ
Ñ5Ô5Ð5åŒF�6˜1˜a°Ð7Ñ7Ô7ˆÝŒF�6˜1˜a°Ð6Ñ6Ô6ˆØ�
Š
�1˜A˜q˜6ˆ
Ñ"Ô"Ð"Ð"Ð"r4   c                 ó<  — t          j        d | j        ¦  «        }t          j        d | j        ¦  «        }t          j        d | j        ¦  «        }|                      |||g¬¦  «         t          j        || j        ¦  «        }t          j        || j        ¦  «        }t          j        || j        ¦  «        }t          j        || j        ¦  «        }|                      ||||g¬¦  «         t          j        || j        ¦  «        }|                      ||g¬¦  «         d S ©NrV   )r   r   rL   rM   rD   )	r*   Úparent1Úparent2Úparent3r7   r8   r9   r:   r;   s	            r.   Ú
test_scopezTestIRMeta.test_scopeZ   sñ   € Ý”(˜4 ¤Ñ+Ô+ˆÝ”(˜4 ¤Ñ+Ô+ˆÝ”(˜4 ¤Ñ+Ô+ˆØ�
Š
�7 '¨7Ð!4ˆ
Ñ5Ô5Ð5åŒH�W˜dœiÑ(Ô(ˆÝŒH�W˜dœiÑ(Ô(ˆÝŒH�W˜dœiÑ(Ô(ˆÝŒH�W˜dœiÑ(Ô(ˆØ�
Š
�1˜A˜q !˜9ˆ
Ñ%Ô%Ð%õ ŒH�W˜dœiÑ(Ô(ˆØ�
Š
�1˜A˜4ˆ
Ñ Ô Ð Ð Ð r4   N)r0   r1   r2   Ú__doc__rZ   r`   r3   r4   r.   rP   rP   J   s<   € € € € € ðð ð
#ð 
#ð 
#ð!ð !ð !ð !ð !r4   rP   c                   ó¨   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIRNodesz
    Tests IR nodes
    c                 ó‚   — t          j        ¦   «         }t          j        ¦   «         }|                      ||g¬¦  «         d S r\   )r   Ú
TerminatorrD   )r*   Út1Út2s      r.   Útest_terminatorzTestIRNodes.test_terminatorp   s6   € åŒ]‰_Œ_ˆÝŒ]‰_Œ_ˆØ�
Š
�2˜R˜Dˆ
Ñ!Ô!Ð!Ð!Ð!r4   c                 ó  — t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }|                      |||g|g¬¦  «         d S ©Nr   r   rT   )r   ÚJumprL   rM   rD   ©r*   r7   r8   r9   r:   s        r.   Ú	test_jumpzTestIRNodes.test_jumpv   sr   € ÝŒG�A�t”yÑ!Ô!ˆÝŒG�A�t”yÑ!Ô!ˆÝŒG�A�t”yÑ!Ô!ˆÝŒG�A�t”yÑ!Ô!ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 ó4  — t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }|                      |||g|g¬¦  «         d S ©NrT   )r   ÚReturnrG   rL   rM   rH   rD   rl   s        r.   Útest_returnzTestIRNodes.test_return}   sz   € ÝŒI�d”j $¤)Ñ,Ô,ˆÝŒI�d”j $¤)Ñ,Ô,ˆÝŒI�d”j $¤)Ñ,Ô,ˆÝŒI�d”j $¤)Ñ,Ô,ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 ó4  — t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }t          j        | j        | j        ¦  «        }|                      |||g|g¬¦  «         d S ro   )r   ÚRaiserG   rL   rM   rH   rD   rl   s        r.   Ú
test_raisezTestIRNodes.test_raise„   sz   € ÝŒH�T”Z ¤Ñ+Ô+ˆÝŒH�T”Z ¤Ñ+Ô+ˆÝŒH�T”Z ¤Ñ+Ô+ˆÝŒH�T”Z ¤Ñ+Ô+ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 ó~  — t          j        t          d | j        ¦  «        }t          j        t          d | j        ¦  «        }t          j        t          d | j        ¦  «        }t          j        t          d| j        ¦  «        }t          j        t
          d | j        ¦  «        }|                      |||g||g¬¦  «         d S )N)ÚstrrT   )r   ÚStaticRaiseÚAssertionErrorrL   rM   ÚRuntimeErrorrD   )r*   r7   r8   r9   r;   r:   s         r.   Útest_staticraisezTestIRNodes.test_staticraise‹   s‘   € ÝŒN�>¨4°´Ñ;Ô;ˆÝŒN�>¨4°´Ñ;Ô;ˆÝŒN�>¨4°´Ñ;Ô;ˆÝŒN�>¨8°T´YÑ?Ô?ˆÝŒN�<¨¨t¬yÑ9Ô9ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 óÌ  — t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }|                      |||g|||g¬¦  «         d S )Nr   r   r   rT   )r   ÚBranchrG   rL   rM   rH   rD   ©r*   r7   r8   r9   r:   r;   rX   s          r.   Útest_branchzTestIRNodes.test_branch“   sÀ   € ÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆÝŒI�d”j ! Q¨¬	Ñ2Ô2ˆØ�
Š
�1˜A˜q˜6¨a°°A¨Yˆ
Ñ7Ô7Ð7Ð7Ð7r4   c                 ó  — t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }|                      |||g|g¬¦  «         d S )NÚsome_opÚsome_other_oprT   )r   ÚExprrL   rM   rD   rl   s        r.   Ú	test_exprzTestIRNodes.test_exprœ   sr   € ÝŒG�I˜tœyÑ)Ô)ˆÝŒG�I˜tœyÑ)Ô)ˆÝŒG�I˜tœyÑ)Ô)ˆÝŒG�O T¤YÑ/Ô/ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 óD  — t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }|                      |||g|||g¬¦  «         d S ro   )	r   ÚSetItemrG   rH   rI   rL   rM   rJ   rD   r}   s          r.   Útest_setitemzTestIRNodes.test_setitem£   sØ   € ÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆÝŒJ�t”z 4¤:¨t¬z¸4¼9ÑEÔEˆØ�
Š
�1˜A˜q˜6¨a°°A¨Yˆ
Ñ7Ô7Ð7Ð7Ð7r4   c                 óª  — t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }t          j        | j        d| j        | j        | j        ¦  «        }|                      |||g||||g¬¦  «         d S rj   )	r   ÚStaticSetItemrG   rH   rI   rL   rM   rJ   rD   rW   s           r.   Útest_staticsetitemzTestIRNodes.test_staticsetitem¬   s  € ÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆÝÔ˜TœZ¨¨D¬J¸¼
ÀDÄIÑNÔNˆØ�
Š
�1˜A˜q˜6¨a°°A°q¨\ˆ
Ñ:Ô:Ð:Ð:Ð:r4   c                 ó°  — t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }|                      |||g||g¬¦  «         d S ro   )r   ÚDelItemrG   rH   rL   rM   rI   rD   ©r*   r7   r8   r9   r:   r;   s         r.   Útest_delitemzTestIRNodes.test_delitem¶   s¥   € ÝŒJ�t”z 4¤:¨t¬yÑ9Ô9ˆÝŒJ�t”z 4¤:¨t¬yÑ9Ô9ˆÝŒJ�t”z 4¤:¨t¬yÑ9Ô9ˆÝŒJ�t”z 4¤:¨t¬yÑ9Ô9ˆÝŒJ�t”z 4¤:¨t¬yÑ9Ô9ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 ó\  — t          j        | j        j        | j        ¦  «        }t          j        | j        j        | j        ¦  «        }t          j        | j        j        | j        ¦  «        }t          j        | j        j        | j        ¦  «        }|                      |||g|g¬¦  «         d S ro   )r   ÚDelrG   ÚnamerL   rM   rH   rD   rl   s        r.   Útest_delzTestIRNodes.test_del¾   s‚   € ÝŒF�4”:”? D¤IÑ.Ô.ˆÝŒF�4”:”? D¤IÑ.Ô.ˆÝŒF�4”:”? D¤IÑ.Ô.ˆÝŒF�4”:”? D¤IÑ.Ô.ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 ó  — t          j        | j        d| j        | j        ¦  «        }t          j        | j        d| j        | j        ¦  «        }t          j        | j        d| j        | j        ¦  «        }t          j        | j        d| j        | j        ¦  «        }t          j        | j        d| j        | j        ¦  «        }t          j        | j        d| j        | j        ¦  «        }|                      |||g|||g¬¦  «         d S ©NÚfooÚbarrT   )r   ÚSetAttrrG   rH   rL   rM   rI   rD   r}   s          r.   Útest_setattrzTestIRNodes.test_setattrÅ   sÌ   € ÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆÝŒJ�t”z 5¨$¬*°d´iÑ@Ô@ˆØ�
Š
�1˜A˜q˜6¨a°°A¨Yˆ
Ñ7Ô7Ð7Ð7Ð7r4   c                 ó~  — t          j        | j        d| j        ¦  «        }t          j        | j        d| j        ¦  «        }t          j        | j        d| j        ¦  «        }t          j        | j        d| j        ¦  «        }t          j        | j        d| j        ¦  «        }|                      |||g||g¬¦  «         d S r“   )r   ÚDelAttrrG   rL   rM   rI   rD   rŒ   s         r.   Útest_delattrzTestIRNodes.test_delattrÎ   s›   € ÝŒJ�t”z 5¨$¬)Ñ4Ô4ˆÝŒJ�t”z 5¨$¬)Ñ4Ô4ˆÝŒJ�t”z 5¨$¬)Ñ4Ô4ˆÝŒJ�t”z 5¨$¬)Ñ4Ô4ˆÝŒJ�t”z 5¨$¬)Ñ4Ô4ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 ó°  — t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        ¦  «        }|                      |||g||g¬¦  «         d S ro   )r   ÚAssignrG   rH   rL   rM   rI   rD   rŒ   s         r.   Útest_assignzTestIRNodes.test_assignÖ   s¥   € ÝŒI�d”j $¤*¨d¬iÑ8Ô8ˆÝŒI�d”j $¤*¨d¬iÑ8Ô8ˆÝŒI�d”j $¤*¨d¬iÑ8Ô8ˆÝŒI�d”j $¤*¨d¬iÑ8Ô8ˆÝŒI�d”j $¤*¨d¬iÑ8Ô8ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 óº  — t          j        | j        f| j        | j        ¦  «        }t          j        | j        f| j        | j        ¦  «        }t          j        | j        f| j        | j        ¦  «        }t          j        | j        f| j        | j        ¦  «        }t          j        | j        f| j        | j        ¦  «        }|                      |||g||g¬¦  «         d S ro   )r   ÚPrintrG   rH   rL   rM   rI   rD   rŒ   s         r.   Ú
test_printzTestIRNodes.test_printÞ   s¯   € ÝŒH�d”j�] D¤J°´	Ñ:Ô:ˆÝŒH�d”j�] D¤J°´	Ñ:Ô:ˆÝŒH�d”j�] D¤J°´	Ñ:Ô:ˆÝŒH�d”j�] D¤J°´	Ñ:Ô:ˆÝŒH�d”j�] D¤J°´	Ñ:Ô:ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 óD  — t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }t          j        | j        | j        | j        | j        ¦  «        }|                      |||g|||g¬¦  «         d S ro   )	r   ÚStoreMaprG   rH   rI   rL   rM   rJ   rD   r}   s          r.   Útest_storemapzTestIRNodes.test_storemapæ   sØ   € ÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆÝŒK˜œ
 D¤J°´
¸D¼IÑFÔFˆØ�
Š
�1˜A˜q˜6¨a°°A¨Yˆ
Ñ7Ô7Ð7Ð7Ð7r4   c                 ó~  — t          j        | j        | j        d¦  «        }t          j        | j        | j        d¦  «        }t          j        | j        | j        d¦  «        }t          j        | j        | j        d¦  «        }t          j        | j        | j        d¦  «        }|                      |||g||g¬¦  «         d S )Nr   r   rT   )r   ÚYieldrG   rL   rM   rH   rD   rŒ   s         r.   Ú
test_yieldzTestIRNodes.test_yieldï   s›   € ÝŒH�T”Z ¤¨AÑ.Ô.ˆÝŒH�T”Z ¤¨AÑ.Ô.ˆÝŒH�T”Z ¤¨AÑ.Ô.ˆÝŒH�T”Z ¤¨AÑ.Ô.ˆÝŒH�T”Z ¤¨AÑ.Ô.ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 óÌ  — t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }t          j        | j        dd| j        ¦  «        }|                      |||g|||g¬¦  «         d S )Nr   r   r   rT   )r   Ú	EnterWithrG   rL   rM   rH   rD   r}   s          r.   Útest_enterwithzTestIRNodes.test_enterwith÷   sÀ   € ÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆÝŒL˜œ Q¨¨4¬9Ñ5Ô5ˆØ�
Š
�1˜A˜q˜6¨a°°A¨Yˆ
Ñ7Ô7Ð7Ð7Ð7r4   c                 óL  — t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }|                      |||g||g¬¦  «         d S ©Nr”   r   r•   r   rT   )r   ÚArgrL   rM   rD   rŒ   s         r.   Útest_argzTestIRNodes.test_arg   s‘   € ÝŒF�5˜!˜TœYÑ'Ô'ˆÝŒF�5˜!˜TœYÑ'Ô'ˆÝŒF�5˜!˜TœYÑ'Ô'ˆÝŒF�5˜!˜TœYÑ'Ô'ˆÝŒF�5˜!˜TœYÑ'Ô'ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 ó  — t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }t          j        d| j        ¦  «        }|                      |||g|g¬¦  «         d S rj   )r   ÚConstrL   rM   rD   rl   s        r.   Ú
test_constzTestIRNodes.test_const  sr   € ÝŒH�Q˜œ	Ñ"Ô"ˆÝŒH�Q˜œ	Ñ"Ô"ˆÝŒH�Q˜œ	Ñ"Ô"ˆÝŒH�Q˜œ	Ñ"Ô"ˆØ�
Š
�1˜A˜q˜6¨a¨Sˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 óL  — t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }t          j        dd| j        ¦  «        }|                      |||g||g¬¦  «         d S r«   )r   ÚGlobalrL   rM   rD   rŒ   s         r.   Útest_globalzTestIRNodes.test_global  s‘   € ÝŒI�e˜Q ¤	Ñ*Ô*ˆÝŒI�e˜Q ¤	Ñ*Ô*ˆÝŒI�e˜Q ¤	Ñ*Ô*ˆÝŒI�e˜Q ¤	Ñ*Ô*ˆÝŒI�e˜Q ¤	Ñ*Ô*ˆØ�
Š
�1˜A˜q˜6¨a°¨Vˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 ó†  — t          j        d d| j        ¦  «        }t          j        d d| j        ¦  «        }t          j        d d| j        ¦  «        }t          j        t          j        d t           j        ¦  «        d| j        ¦  «        }t          j        d d| j        ¦  «        }|                      ||||g|g¬¦  «         d S r“   )r   rE   rL   rM   r   rF   rD   rŒ   s         r.   Útest_varzTestIRNodes.test_var  sŸ   € ÝŒF�4˜ ¤	Ñ*Ô*ˆÝŒF�4˜ ¤	Ñ*Ô*ˆÝŒF�4˜ ¤	Ñ*Ô*ˆÝŒF•2”8˜D¥"¤.Ñ1Ô1°5¸$¼)ÑDÔDˆÝŒF�4˜ ¤	Ñ*Ô*ˆØ�
Š
�1˜A˜q !˜9°°ˆ
Ñ4Ô4Ð4Ð4Ð4r4   c                 ó‚   — t          j        ¦   «         }t          j        ¦   «         }|                      ||g¬¦  «         d S r\   )r   ÚUndefinedTyperD   )r*   r7   r8   s      r.   Útest_undefinedtypezTestIRNodes.test_undefinedtype  s<   € ÝÔÑÔˆÝÔÑÔˆØ�
Š
�1˜A˜3ˆ
ÑÔÐÐÐr4   c                 óä   — t          j        dd¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }|                      ||g||g¬¦  «         d S ©Nr   r   r   r   rT   )r   ÚLooprD   rl   s        r.   Ú	test_loopzTestIRNodes.test_loop$  ób   € ÝŒG�A�q‰MŒMˆÝŒG�A�q‰MŒMˆÝŒG�A�q‰MŒMˆÝŒG�A�q‰MŒMˆØ�
Š
�1˜A˜3¨1¨a¨&ˆ
Ñ1Ô1Ð1Ð1Ð1r4   c                 óä   — t          j        dd¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }t          j        dd¦  «        }|                      ||g||g¬¦  «         d S rº   )r   ÚWithrD   rl   s        r.   Ú	test_withzTestIRNodes.test_with+  r½   r4   N)r0   r1   r2   ra   rh   rm   rq   rt   rz   r~   rƒ   r†   r‰   r�   r‘   r—   rš   r�   r    r£   r¦   r©   r­   r°   r³   rµ   r¸   r¼   rÀ   r3   r4   r.   rc   rc   l   s•  € € € € € ðð ð"ð "ð "ð2ð 2ð 2ð2ð 2ð 2ð2ð 2ð 2ð5ð 5ð 5ð8ð 8ð 8ð2ð 2ð 2ð8ð 8ð 8ð;ð ;ð ;ð5ð 5ð 5ð2ð 2ð 2ð8ð 8ð 8ð5ð 5ð 5ð5ð 5ð 5ð5ð 5ð 5ð8ð 8ð 8ð5ð 5ð 5ð8ð 8ð 8ð5ð 5ð 5ð2ð 2ð 2ð5ð 5ð 5ð5ð 5ð 5ð ð  ð  ð
2ð 2ð 2ð2ð 2ð 2ð 2ð 2r4   rc   iÒ  c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTestIRCompoundsz+
    Tests IR concepts that have state
    c                 óð  — t          j        ¦   «         }|                     | j        d¦  «         |                     | j        d¦  «         t          j        ¦   «         }|                     | j        d¦  «         |                     | j        d¦  «         t          j        ¦   «         }|                     | j        d¦  «         |                     | j        d¦  «         |                      ||g|g¬¦  «         d S r“   )r   ÚVarMapr!   rG   rH   rI   rD   )r*   r7   r8   r9   s       r.   Útest_varmapzTestIRCompounds.test_varmap;  sÉ   € ÝŒI‰KŒKˆØ	�Š�”˜UÑ#Ô#Ð#Ø	�Š�”˜UÑ#Ô#Ð#åŒI‰KŒKˆØ	�Š�”˜UÑ#Ô#Ð#Ø	�Š�”˜UÑ#Ô#Ð#åŒI‰KŒKˆØ	�Š�”˜UÑ#Ô#Ð#Ø	�Š�”˜UÑ#Ô#Ð#à�
Š
�1˜A˜3¨1¨#ˆ
Ñ.Ô.Ð.Ð.Ð.r4   c                 óî   ‡ — ˆ fd„} |¦   «         } |¦   «         } |¦   «                               t          j        ‰ j        ‰ j        ‰ j        ¦  «        ¦  «        }‰                      ||g|g¬¦  «         d S )Nc                  óÌ  •— t          j        d ‰j        ¦  «        } t          j        | ‰j        ¦  «        }t          j        ‰j        ‰j        ‰j        ¦  «        }t          j        ‰j        ‰j	        ‰j        ¦  «        }t          j        ‰j	        ‰j        ‰j        ¦  «        }| 
                    |¦  «         | 
                    |¦  «         | 
                    |¦  «         |S r>   )r   r   rL   ÚBlockrM   rœ   rG   rH   rN   rI   Úappend)r   ÚtmpÚassign1Úassign2Úassign3r*   s        €r.   Ú	gen_blockz-TestIRCompounds.test_block.<locals>.gen_blockK  s¯   ø€ Ý”X˜d D¤IÑ.Ô.ˆFÝ”(˜6 4¤9Ñ-Ô-ˆCÝ”i ¤
¨D¬J¸¼	ÑBÔBˆGÝ”i ¤
¨D¬J¸¼	ÑBÔBˆGÝ”i ¤
¨D¬J¸¼	ÑBÔBˆGØ�JŠJ�wÑÔÐØ�JŠJ�wÑÔÐØ�JŠJ�wÑÔÐØˆJr4   rT   )rÉ   r   rœ   rG   rH   rN   rD   )r*   rÎ   r7   r8   r9   s   `    r.   Ú
test_blockzTestIRCompounds.test_blockJ  sƒ   ø€ ð		ð 		ð 		ð 		ð 		ð ˆI‰KŒKˆØˆI‰KŒKˆØˆI‰KŒK×Ò�rœy¨¬°T´ZÀÄÑKÔKÑLÔLˆà�
Š
�1˜A˜3¨1¨#ˆ
Ñ.Ô.Ð.Ð.Ð.r4   c                 óŒ  — d„ }d„ } |¦   «         } |¦   «         } ||¦  «        } ||¦  «        }|                       |                     |¦  «        ¦  «         g fd„}|                      d|                     |¦  «        ¦  «         t	          t          |j                             ¦   «         ¦  «        ¦  «        D ]\}|j        |         }	t          |	j	        d         t          j        ¦  «        r(|	j	        d         }
|
j        |
j        c|
_        |
_         nŒ] ||                     |¦  «        dg¦  «          |¦   «         }|                      |                     |¦  «        ¦  «          ||¦  «        }t          ¦   «         }t	          t          |j                             ¦   «         ¦  «        ¦  «        D �]}|j        |         }	|	j	        d d…         }
d }t!          t#          |
¦  «        dz
  ¦  «        D ]I}t          |
|         t          j        ¦  «        r't          |
|dz            t          j        ¦  «        r|} nŒJ|�y|	j	        }|                     t)          ||dz            ¦  «        ¦  «         |                     t)          ||         ¦  «        ¦  «         ||dz            ||         c||<   ||dz   <    n�Œ|                       |¦  «         |                      |                     |¦  «        ¦  «         |                      t#          |¦  «        d¦  «         |D ]*}|                       |                     d	¦  «        ¦  «         Œ+ ||                     |¦  «        |¦  «         d
„ }d„ }d„ } ||¦  «        } ||¦  «        }|                       |                     |¦  «        ¦  «         |                      d|                     |¦  «        ¦  «          ||¦  «        }|                      |                     |¦  «        ¦  «         |                     |¦  «        }|                      d|¦  «          ||ddg¦  «         d S )Nc                 ó.   — t          j        | d¬¦  «        S )NT)Ú	emit_dels)r   Úrun_frontend)Úxs    r.   rÓ   z5TestIRCompounds.test_functionir.<locals>.run_frontend^  s   € ÝÔ(¨°dÐ;Ñ;Ô;Ð;r4   c                  ó   ‡— dŠdˆfd„	} | S )NiþÊ  é   ù              ð?c                 óv  •— | |z   }| ‰z  } t          j        |t           j        ¬¦  «        }||z   }d|z  }t          j        |¦  «        dk    �rX||z  }	t          j        d|dz   ¦  «        }
t          ¦   «         5  t          ||	¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        |
|z
  ¦  «        }t          j        |d         ¦  «        dk     r>d}t          | ¦  «        D ]!}|dz  }t          j        |¦  «        dk     r nŒ"||d         z  }||
z  }g }t          t          |¦  «        ¦  «        D ]n}| 
                    ||         ¦  «         |dk    r8t          dd	¬
¦  «        5  d}d}d d d ¦  «         n# 1 swxY w Y   |dk    r||z  }||d         t          z   z  }Œo||z   |z   |z   |z   | z   |z   S )N)Údtyper×   r   r   r   r   r   ÚintpÚ
complex128)rC   Úté{   éz   )ÚnpÚzerosÚ	complex64ÚabsÚaranger   ÚprintÚsqrtÚranger%   rÉ   Ú_GLOBAL)r7   r8   r9   r:   r;   rX   rY   ÚhÚiÚkÚlÚmÚnÚoÚpÚqÚrrC   rÜ   Ú_FREEVARs                      €r.   r”   z9TestIRCompounds.test_functionir.<locals>.gen.<locals>.fooi  sK  ø€ Ø˜‘E�Ø�X‘�Ý”H˜Q¥b¤lÐ3Ñ3Ô3�Ø˜‘E�Ø˜‘F�Ý”6˜!‘9”9˜q’=‘=Ø˜A™�AÝœ	 ! Q¨¡UÑ+Ô+�AÝ ™œð $ð $Ý˜a ™œ˜ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $åœ  A¡™œ�AÝ”v˜a œd‘|”| aÒ'Ð'Ø˜Ý!& q¡¤ð &ð &˜AØ ™F˜AÝ!œv a™yœy¨1š}˜}Ø % ð  -à˜Q˜qœT™	˜Ø˜A™�AØ�AÝ"¥3 q¡6¤6™]œ]ð ,ð ,˜ØŸš  1¤™œ˜Ø˜uš9˜9Ý!(¨6°\Ð!BÑ!BÔ!Bð &ð &Ø$' Ø$% ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &ð  ! 3šw˜wØ ! Q¡ Ø˜Q˜qœT¥G™^Ñ+˜˜à˜1‘u˜q‘y 1‘} qÑ(¨1Ñ,¨qÑ0Ð0s$   Á:BÂBÂBÅ,E=Å=F	ÆF	)rÖ   r×   Nr3   )r”   rò   s    @r.   Úgenz,TestIRCompounds.test_functionir.<locals>.genf  s.   ø€ ØˆHð1ð 1ð 1ð 1ð 1ð 1ðB ˆJr4   c                 óœ   — |                       ¦   «         }|D ]4}|D ]}|                     d¦  «        r||v r nŒt          d|z  ¦  «        ‚Œ5d S )Nz->zCould not find %s )Ú
splitlinesÚ
startswithrx   )ÚstringÚpointing_atÚlinesÚitemrë   s        r.   Úcheck_diffstrz6TestIRCompounds.test_functionir.<locals>.check_diffstr“  s}   € Ø×%Ò%Ñ'Ô'ˆEØ#ð Fð F�Øð Fð F�AØ—|’| DÑ)Ô)ð "Ø 1˜9˜9Ø!˜Eøå(Ð)=ÀÑ)DÑEÔEÐEð "ð	Fð Fr4   zIR is considered equivalentéÿÿÿÿÚbranchr   r   zdel c                 óB   — | dz  }||z   }t          j        |¦  «        }|S ©Nr   ©rß   rå   ©r7   r8   r9   r:   r;   s        r.   r”   z,TestIRCompounds.test_functionir.<locals>.fooÉ  ó&   € Ø�A‘ˆAØ�A‘ˆAÝ”˜‘
”
ˆAØˆHr4   c                 óB   — | dz  }||z   }t          j        |¦  «        }|S rÿ   r   r  s        r.   r•   z,TestIRCompounds.test_functionir.<locals>.barÏ  r  r4   c                 óH   — | dz  }||z   }t          j        |dz   ¦  «        }|S )Nr   r   r   r  s        r.   Úbazz,TestIRCompounds.test_functionir.<locals>.bazÕ  s*   € Ø�A‘ˆAØ�A‘ˆAÝ”˜˜A™‘”ˆAØˆHr4   z$Other block contains more statementszc + bzb + c)r?   Úequal_irÚassertInÚdiff_strÚreversedÚlistÚblocksÚkeysÚ
isinstanceÚbodyr   r|   ÚfalsebrÚtruebrÚassertFalseÚsetræ   r%   r�   Úaddrv   r$   rö   )r*   rÓ   ró   rÔ   ÚyÚx_irÚy_irrû   ÚlabelÚblkÚrefÚzÚz_irÚ
change_setÚidxré   r8   rú   r”   r•   r  Úfoo_irÚbar_irÚbaz_irrÊ   s                            r.   Útest_functionirzTestIRCompounds.test_functionir\  sO  € ð	<ð 	<ð 	<ð$	ð $	ð $	ðL ˆC‰EŒEˆØˆC‰EŒEˆØˆ|˜A‰ŒˆØˆ|˜A‰Œˆà�Š˜Ÿš dÑ+Ô+Ñ,Ô,Ð,à.0ð 	Fð 	Fð 	Fð 	Fð 	�ŠÐ3°T·]²]À4Ñ5HÔ5HÑIÔIÐIõ �d 4¤;×#3Ò#3Ñ#5Ô#5Ñ6Ô6Ñ7Ô7ð 	ð 	ˆEØ”+˜eÔ$ˆCÝ˜#œ( 2œ,­¬	Ñ2Ô2ð Ø”h˜r”l�Ø*-¬+°s´zÐ'�”
˜CœKØ�ðð
 	ˆ�d—m’m DÑ)Ô)¨H¨:Ñ6Ô6Ð6àˆC‰EŒEˆØ×Ò˜Ÿš tÑ,Ô,Ñ-Ô-Ð-àˆ|˜A‰Œˆå‘U”Uˆ
Ý�d 4¤;×#3Ò#3Ñ#5Ô#5Ñ6Ô6Ñ7Ô7ð 	ñ 	ˆEØ”+˜eÔ$ˆCØ”(˜3˜B˜3”-ˆCØˆCÝ�3˜s™8œ8 a™<Ñ(Ô(ð ð �å˜s 1œv¥r¤vÑ.Ô.ð Ý" 3 q¨1¡u¤:­r¬vÑ6Ô6ðà�CØ�EøØˆØ”H�Ø—’�s 1 S¨1¡W¤:™œÑ/Ô/Ð/Ø—’�s 1 S¤6™{œ{Ñ+Ô+Ð+Ø%& s¨Q¡w¤Z°°3´Ð"��#‘˜˜# ™'™
Ø�ñ ð 	�Š˜
Ñ#Ô#Ð#à×Ò˜Ÿš tÑ,Ô,Ñ-Ô-Ð-Ø×Ò�˜Z™œ¨!Ñ,Ô,Ð,Øð 	5ð 	5ˆDØ�OŠO˜DŸOšO¨FÑ3Ô3Ñ4Ô4Ð4Ð4Øˆ�d—m’m DÑ)Ô)¨:Ñ6Ô6Ð6ð	ð 	ð 	ð	ð 	ð 	ð	ð 	ð 	ð �˜cÑ"Ô"ˆØ�˜cÑ"Ô"ˆØ�Š˜Ÿš¨Ñ/Ô/Ñ0Ô0Ð0Ø�ŠÐ3°V·_²_ÀVÑ5LÔ5LÑMÔMÐMà�˜cÑ"Ô"ˆØ×Ò˜Ÿš¨Ñ0Ô0Ñ1Ô1Ð1Ø�oŠo˜fÑ%Ô%ˆØ�ŠÐ<¸cÑBÔBÐBØˆ�c˜G WÐ-Ñ.Ô.Ð.Ð.Ð.r4   N)r0   r1   r2   ra   rÅ   rÏ   r!  r3   r4   r.   rÂ   rÂ   7  sP   € € € € € ðð ð/ð /ð /ð/ð /ð /ð$H/ð H/ð H/ð H/ð H/r4   rÂ   c                   ó   — e Zd Zd„ ZdS )ÚTestIRPedanticChecksc                 óz  ‡‡— t          dd¬¦  «         G d„ dt          ¦  «        ¦   «         Št          dd¬¦  «         G d„ dt          ¦  «        ¦   «         Š G ˆˆfd„dt          ¦  «        }t          |¬	¦  «        d
„ ¦   «         }t	          j        ¦   «         5  t	          j        dt          j        ¦  «         |  	                    t          j
        ¦  «        5 } |d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      t          |j        ¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NF)Úmutates_CFGÚanalysis_onlyc                   ó   — e Zd ZdZd„ Zd„ ZdS )úKTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScopeÚ_remove_var_in_scopec                 ó.   — t          j        | ¦  «         d S r>   ©r
   Ú__init__)r*   s    r.   r,  zTTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScope.__init__î  ó   € ÝÔ% dÑ+Ô+Ð+Ð+Ð+r4   c                 ó¤   — |j         }|j                             ¦   «         D ].}|j        }t	          j        |j        |j        ¬¦  «        |_        Œ/dS )Nr   T)Úfunc_irr  ÚvaluesÚscoper   r   r   r   )r*   Ústater/  r  Úoldscopes        r.   Úrun_passzTTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.RemoveVarInScope.run_passó  sU   € Øœ-�à"œ>×0Ò0Ñ2Ô2ð ;ð ;�CØ"œy�Hå "¤°´Ø-5¬\ð!;ñ !;ô !;�C”I�Ià�tr4   N©r0   r1   r2   Ú_namer,  r4  r3   r4   r.   ÚRemoveVarInScoper(  ê  s7   € € € € € à*ˆEð,ð ,ð ,ð
ð ð ð ð r4   r7  c                   ó   — e Zd ZdZd„ Zd„ ZdS )úCTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPassÚ_failc                 ó.   — t          j        | ¦  «         d S r>   r+  )r*   ÚargsÚkwargss      r.   r,  zLTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPass.__init__  r-  r4   c                 ó    — t          d¦  «        ‚)NÚunreachable)rx   )r*   r2  s     r.   r4  zLTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.FailPass.run_pass  s   € õ % ]Ñ3Ô3Ð3r4   Nr5  r3   r4   r.   ÚFailPassr9  þ  s7   € € € € € àˆEð,ð ,ð ,ð4ð 4ð 4ð 4ð 4r4   r@  c                   ó   •— e Zd Zˆ ˆfd„ZdS )úETestIRPedanticChecks.test_var_in_scope_assumption.<locals>.MyCompilerc                 óJ  •— t          d¦  «        }|                     t          d¦  «         |                     t          d¦  «         |                     ‰d¦  «         |                     t          d¦  «         |                     ‰d¦  «         |                     ¦   «          |gS )Nz
testing pmzanalyzing bytecodezprocessing IRr)  Ússar:  )r   Úadd_passr   r   r	   Úfinalize)r*   Úpmr@  r7  s     €€r.   Údefine_pipelineszVTestIRPedanticChecks.test_var_in_scope_assumption.<locals>.MyCompiler.define_pipelines  sŒ   ø€ Ý  Ñ.Ô.�Ø—’Õ-Ð/CÑDÔDÐDØ—’�L¨/Ñ:Ô:Ð:Ø—’Ð,Ð.DÑEÔEÐEØ—’�N¨EÑ2Ô2Ð2Ø—’˜H gÑ.Ô.Ð.Ø—’‘”�Ø�t�r4   N)r0   r1   r2   rH  )r@  r7  s   €€r.   Ú
MyCompilerrB    s3   ø€ € € € € ðð ð ð ð ð ð ð r4   rI  )Úpipeline_classc                 ó(   — d}d}||k     rd}nd}||fS )Nr   r   r   r3   )rÔ   r7   r8   s      r.   Údummyz@TestIRPedanticChecks.test_var_in_scope_assumption.<locals>.dummy  s,   € ð ˆAØˆAØ�1ŠuˆuØ��à�Ø�a�4ˆKr4   Úerrorr   z variable '[a-z]' is not in scope)r   r
   r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚNumbaPedanticWarningÚassertRaisesÚNumbaIRAssumptionWarningÚassertRegexrv   Ú	exception)r*   rI  rL  Úraisesr@  r7  s       @@r.   Útest_var_in_scope_assumptionz1TestIRPedanticChecks.test_var_in_scope_assumptionè  s  øø€ å	 5¸Ð	>Ñ	>Ô	>ð	ð 	ð 	ð 	ð 	�|ñ 	ô 	ñ 
?Ô	>ð	õ& 
 5¸Ð	>Ñ	>Ô	>ð
	4ð 
	4ð 
	4ð 
	4ð 
	4•|ñ 
	4ô 
	4ñ 
?Ô	>ð
	4ð		ð 		ð 		ð 		ð 		ð 		ð 		ð 		�ñ 		ô 		ð 		õ 
˜ZÐ	(Ñ	(Ô	(ð		ð 		ñ 
)Ô	(ð		õ Ô$Ñ&Ô&ð 
	ð 
	åÔ! '­6Ô+FÑGÔGÐGà×"Ò"¥6Ô#BÑCÔCð ÀvØ��a‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ×ÒÝ�FÔ$Ñ%Ô%Ø3ñô ð ð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	ð 
	ð 
	s6   Â?D0ÃC0Ã$D0Ã0C4	Ã4D0Ã7C4	Ã8+D0Ä0D4Ä7D4N)r0   r1   r2   rW  r3   r4   r.   r#  r#  ç  s(   € € € € € ðDð Dð Dð Dð Dr4   r#  Ú__main__) ÚunittestÚunittest.caser   rN  Únumpyrß   Únumbar   Ú
numba.corer   r   r   Únumba.core.compilerr   r	   Únumba.core.compiler_machineryr
   r   r   Únumba.core.untyped_passesr   r   r   r   r6   rP   rc   rç   rÂ   r#  r0   Úmainr3   r4   r.   ú<module>rb     sR  ðØ €€€Ø "Ð "Ð "Ð "Ð "Ð "Ø €€€Ø Ð Ð Ð à Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð Ð Ð Ð Ð Ð ð=ð =ð =ð =ð =ˆXÔñ =ô =ð =ð>'ð 'ð 'ð 'ð '�HÔ%ñ 'ô 'ð 'ð$!ð !ð !ð !ð !�ñ !ô !ð !ðDD2ð D2ð D2ð D2ð D2�-ñ D2ô D2ð D2ðP €ðm/ð m/ð m/ð m/ð m/�mñ m/ô m/ð m/ð`Eð Eð Eð Eð E˜8ñ Eô Eð EðP ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr4   