ó
    „ñ:iJ  ã                   óÀ  • S r SSKrSSKrSSKrSSKrSSKJrJrJ	r	  SSK
JrJr  SSKJrJr  SSKJrJr  SSKJrJr  SSKJr  SS	KJr  SS
KJrJrJr  Sr\(       aV  \R>                  " S5      r \ RC                  \RD                  S9  \ RG                  \RH                  " \RJ                  5      5         " S S\5      r& " S S\&5      r' " S S\&5      r( " S S\\5      r)g)z
Tests for SSA reconstruction
é    N)ÚnjitÚjitÚtypes)ÚerrorsÚir)ÚFunctionPassÚregister_pass)ÚDefaultPassBuilderÚCompilerBase)ÚReconstructSSAÚ
PreserveIR)ÚNativeLowering)Úoverload)ÚMemoryLeakMixinÚTestCaseÚoverride_configFznumba.core.ssa)Úlevelc                   ó   • \ rS rSrS rSrg)ÚSSABaseTesté   c                 óž   • U" [         R                  " U5      6 nUR                  " [         R                  " U5      6 nU R                  X45        g ©N)ÚcopyÚdeepcopyÚpy_funcÚassertEqual)ÚselfÚfuncÚargsÚgotÚexps        ÚW/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_ssa.pyÚ
check_funcÚSSABaseTest.check_func   s:   € Ù”D—M’M $Ó'Ð(ˆØ�lŠlœDŸMšM¨$Ó/Ð0ˆØ×Ñ˜Õ"ó    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r#   Ú__static_attributes__r&   r%   r"   r   r      s   † õ#r%   r   c                   óN   • \ 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)ÚTestSSAé%   z0
Contains tests to help isolate problems in SSA
c                 ó@   • [         S 5       nU R                  US5        g )Nc                 ó   • U S-  n U $ ©Né   r&   ©Úxs    r"   ÚfooÚ.TestSSA.test_argument_name_reused.<locals>.foo+   s   € à�‰FˆAØˆHr%   é{   ©r   r#   ©r   r5   s     r"   Útest_argument_name_reusedÚ!TestSSA.test_argument_name_reused*   s$   € Ü	ñ	ó 
ð	ð 	�‰˜˜SÕ!r%   c                 óh   • [         S 5       nU R                  USS5        U R                  USS5        g )Nc                 ó$   • X-  nX:  a  U nU$ UnU$ r   r&   )r4   ÚyÚzs      r"   r5   Ú*TestSSA.test_if_else_redefine.<locals>.foo3   s&   € à‘ˆAØ‹uØ�ð ˆHð �ØˆHr%   é   é   r8   r9   s     r"   Útest_if_else_redefineÚTestSSA.test_if_else_redefine2   s6   € Ü	ñ	ó 
ð	ð 	�‰˜˜Q Ô"Ø�‰˜˜Q Õ"r%   c                 ód   • [         S 5       nU R                  US5        U R                  US5        g )Nc                 ó6   • Sn[        U 5       H  nX-  nM	     U$ ©Nr   ©Úrange)ÚnÚcÚis      r"   r5   Ú"TestSSA.test_sum_loop.<locals>.foo@   s!   € àˆAÜ˜1–X�Ø‘’ñ àˆHr%   r   é
   r8   r9   s     r"   Útest_sum_loopÚTestSSA.test_sum_loop?   s2   € Ü	ñ	ó 
ð	ð 	�‰˜˜QÔØ�‰˜˜RÕ r%   c                 ód   • [         S 5       nU R                  US5        U R                  US5        g )Nc                 óD   • SnU n[        U 5       H  nX-  nX -  nM     X4$ rG   rH   )rJ   rK   ÚdrL   s       r"   r5   Ú(TestSSA.test_sum_loop_2vars.<locals>.fooK   s1   € àˆAØˆAÜ˜1–X�Ø‘�Ø‘’ñ ð �4ˆKr%   r   rN   r8   r9   s     r"   Útest_sum_loop_2varsÚTestSSA.test_sum_loop_2varsJ   s2   € Ü	ñ	ó 
ð	ð 	�‰˜˜QÔØ�‰˜˜RÕ r%   c                 ód   • [         S 5       nU R                  US5        U R                  US5        g )Nc                 ób   • Sn[        U 5       H  n[        U 5       H  nX-  nM	     X-  nM     U$ rG   rH   )rJ   rK   rL   Újs       r"   r5   Ú%TestSSA.test_sum_2d_loop.<locals>.fooX   s8   € àˆAÜ˜1–X�Ü˜qž�AØ‘F’Añ "à‘’ñ ð ˆHr%   r   rN   r8   r9   s     r"   Útest_sum_2d_loopÚTestSSA.test_sum_2d_loopW   s2   € Ü	ñ	ó 
ð	ð 	�‰˜˜QÔØ�‰˜˜RÕ r%   c                 ó°  • [         S 5       nU(       a`  U R                  [        R                  5       nU R	                  US5        S S S 5        U R                  S[        WR                  5      5        OU R	                  US5        U R                  [        5         UR                  S5        S S S 5        g ! , (       d  f       Nv= f! , (       d  f       g = f)Nc                 ó2   • U (       a
  U S:”  a  SnW$ WS-  nU$ ©Nr   r2   r&   )rJ   rK   s     r"   r5   Ú(TestSSA.check_undefined_var.<locals>.fooe   s&   € æØ�q“5Ø�AØ�ð �Q‘�Ø�r%   r2   z!Detected uninitialized variable cr   )r   ÚassertWarnsr   ÚNumbaWarningr#   ÚassertInÚstrÚwarningÚassertRaisesÚUnboundLocalErrorr   )r   Úshould_warnr5   Úwarnss       r"   Úcheck_undefined_varÚTestSSA.check_undefined_vard   s£   € Ü	ñ	ó 
ð	ö Ø×!Ñ!¤&×"5Ñ"5Ô6¸%à—‘  QÔ'÷ 7ð �M‰MÐ=Ü˜eŸm™mÓ,õ.ð �O‰O˜C Ô#à×ÑÔ0Õ1Ø�K‰K˜ŒN÷ 2Ð1÷ 7Õ6ú÷ 2Õ1ús   ³B6ÂCÂ6
CÃ
Cc                 óØ   • [        SS5         U R                  SS9  S S S 5        [        SS5         U R                  SS9  S S S 5        g ! , (       d  f       N3= f! , (       d  f       g = f)NÚALWAYS_WARN_UNINIT_VARr   F)rh   r2   T)r   rj   ©r   s    r"   Útest_undefined_varÚTestSSA.test_undefined_var|   sW   € ÜÐ5°qÕ9Ø×$Ñ$°Ð$Ñ7÷ :äÐ5°qÕ9Ø×$Ñ$°Ð$Ñ6÷ :Ð9÷ :Õ9úç9Õ9ús   �A
±AÁ

AÁ
A)c                 ól   • [         S 5       nU R                  U[        R                  " SS/5      5        g )Nc                 ó*  • SnSnSnUS:”  a…  U[        U 5      :  av  US-  nX   (       aM  X   (       a  X   (       a  US-  nX==   S-  ss'   OX   (       a  US-  nX==   S-  ss'   X1-  nX   (       a  MM  X1-  nUS:”  a  U[        U 5      :  a  Mv  X14$ )Nr2   r   rN   é   )Úlen)ÚactionsrJ   rL   Úcts       r"   r5   Ú)TestSSA.test_phi_propagation.<locals>.fooƒ   sž   € àˆAàˆAØˆBØ�a“%˜A¤ G£Ó,Ø�Q‘�à—jØ—zØ"Ÿ:Ø ™G˜AØ›
 a™œ
à"Ÿ:Ø ™G˜AØ›
 a™›
à‘G�Bð —j‘jð ‘�ð �a“%˜A¤ G£Õ,ð �5ˆLr%   r2   rB   )r   r#   ÚnpÚarrayr9   s     r"   Útest_phi_propagationÚTestSSA.test_phi_propagation‚   s1   € Ü	ñ	ó 
ð	ð, 	�‰˜œRŸXšX q¨! fÓ-Õ.r%   c                 ón   • S nU" SSSSS5      n[        U5      " SSSSS5      nU R                  X#5        g )Nc                 ó¦   • U (       a	  UnUnUnU ng U(       a  U(       a  Un	g Wn
g U(       a$  W(       a  U(       a  W
ng UnU$ W(       a  UnU $ Wn
W$ Wng r   r&   )Úarg1Úarg2Úarg3Úarg4Úarg5Úvar1Úvar2Úvar3Úvar4Úvar5Úvar6Úvar7Úvar8Úvar9Úvar10s                  r"   Ú	function1Ú3TestSSA.test_unhandled_undefined.<locals>.function1�   sr   € æØ�Ø�Ø�Ø�ØæÞØ#˜Øà#˜Øö ÞÞ#Ø'+ Ø &à'+ Ø'+ ö  $Ø'+ Ø'+ à'+ Ø'+ ð  $˜Ør%   rB   rA   é   r   é   )r   r   )r   r�   Úexpectr    s       r"   Útest_unhandled_undefinedÚ TestSSA.test_unhandled_undefinedœ   s@   € ò*	ñ\ ˜1˜a  A qÓ)ˆÜ�9Œo˜a  A q¨!Ó,ˆØ×Ñ˜Õ%r%   r&   N)r'   r(   r)   r*   Ú__doc__r:   rC   rO   rU   r[   rj   ro   rz   r’   r+   r&   r%   r"   r-   r-   %   s4   † ñò"ò#ò	!ò!ò!òò07ò/õ41&r%   r-   c                   óh   • \ 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)ÚTestReportedSSAIssueséÐ   c                 ó>   • [         S 5       nU R                  U5        g )Nc                  ó®   • [         R                  " S5      n [         R                  " S5      n[        U5       H  nSX'   M	     [        US5       H  nM     g r1   )rx   ÚemptyÚuint32rI   )ÚVÚsrL   s      r"   r5   Ú1TestReportedSSAIssues.test_issue2194.<locals>.fooÖ   sD   € ä—’˜“ˆAÜ—	’	˜!“ˆAä˜1–X�Ø�“ñ ä˜1˜a–[�Ùò !r%   r8   r9   s     r"   Útest_issue2194Ú$TestReportedSSAIssues.test_issue2194Ô   s"   € ä	ñ	ó 
ð	ð 	�‰˜Õr%   c                 ó`   ^• [         S 5       m[         U4S j5       nU R                  US5        g )Nc                 ó   • U $ r   r&   r3   s    r"   ÚdoitÚ2TestReportedSSAIssues.test_issue3094.<locals>.doitä   s   € àˆHr%   c                 ó,   >• U (       a  SnOSnT" U5      $ )NTFr&   )Úpredr4   r£   s     €r"   r5   Ú1TestReportedSSAIssues.test_issue3094.<locals>.fooè   s   ø€ æØ‘à�á˜“7ˆNr%   Fr8   )r   r5   r£   s     @r"   Útest_issue3094Ú$TestReportedSSAIssues.test_issue3094â   s9   ø€ ä	ñ	ó 
ð	ô 
ô	ó 
ð	ð 	�‰˜˜UÕ#r%   c                 óÖ   • [         S 5       n[        R                  R                  U" [        R                  " S5      5      UR                  [        R                  " S5      5      5        g )Nc                 óp   • [        S5       H&  nU R                  S5      n U R                  SS5      n M(     U $ )Nr2   r�   rA   rB   )rI   Úreshape)ÚarrrL   s     r"   r5   Ú1TestReportedSSAIssues.test_issue3931.<locals>.fooõ   s5   € ä˜1–X�Ø—k‘k %Ó(�Ø—k‘k ! QÓ'’ñ ð ˆLr%   )rA   rB   )r   rx   ÚtestingÚassert_allcloseÚzerosr   r9   s     r"   Útest_issue3931Ú$TestReportedSSAIssues.test_issue3931ó   sN   € ä	ñ	ó 
ð	ô 	�
‰
×"Ñ"¡3¤r§x¢x°Ó'7Ó#8Ø#&§;¡;¬r¯xªx¸Ó/?Ó#@õ	Br%   c                 óv   ^• S m[         U4S j5       n[        T5      U4S j5       nU R                  US5        g )Nc                 ó   • g)NÚdummyr&   )Úas    r"   Úoverload_thisÚ;TestReportedSSAIssues.test_issue3976.<locals>.overload_this  s   € Ør%   c                 ó2   >• U (       a  SnT" U5      nU$ SnU$ )Né   Úbr&   )r·   r�   r¸   s     €r"   r5   Ú1TestReportedSSAIssues.test_issue3976.<locals>.foo  s(   ø€ æØ�Ù! !Ó$�ð ˆHð �àˆHr%   c                 ó   >• T$ r   r&   )r·   r¸   s    €r"   ÚolÚ0TestReportedSSAIssues.test_issue3976.<locals>.ol  s	   ø€ à Ð r%   T)r   r   r#   )r   r5   r¿   r¸   s      @r"   Útest_issue3976Ú$TestReportedSSAIssues.test_issue3976ÿ   sE   ø€ ò	ô 
ô	ó 
ð	ô 
�-Ó	 ô	!ó 
!ð	!ð 	�‰˜˜TÕ"r%   c                 óB   • [         S 5       nU R                  USS5        g )Nc                 óH   • U S   nUS   nU  H  nUnM     U H  nUnM     X#4$ rG   r&   )ÚAÚBr4   r>   rL   s        r"   r5   Ú1TestReportedSSAIssues.test_issue3979.<locals>.foo  s9   € à�!‘ˆAØ�!‘ˆAÛ�Ø’ñ ã�Ø’ñ à�4ˆKr%   )r2   rB   )rÅ   rÆ   r8   r9   s     r"   Útest_issue3979Ú$TestReportedSSAIssues.test_issue3979  s&   € ä	ñ	ó 
ð	ð 	�‰˜˜V ZÕ0r%   c                 óz   ^• SS jm[        T5      SS j5       n[        U4S j5       nU R                  USS5        g )Nc                 ó:   • [        U[        5      (       a  US   nU$ rG   )Ú
isinstanceÚtuple)r·   r¼   s     r"   r¸   Ú;TestReportedSSAIssues.test_issue5219.<locals>.overload_this$  s   € Ü˜!œU×#Ñ#Ø�a‘D�ØˆHr%   c                 ól   ^• [        U[        R                  [        R                  45      mSU4S jjnU$ )Nc                 ó   >• TSL a  US   nU$ )NTr   r&   )r·   r¼   Ú
b_is_tuples     €r"   ÚimplÚ>TestReportedSSAIssues.test_issue5219.<locals>.ol.<locals>.impl-  s   ø€ Ø Ò%Ø˜!™�AØ�r%   r   )rÌ   r   ÚTupleÚUniTuple)r·   r¼   rÒ   rÑ   s      @r"   r¿   Ú0TestReportedSSAIssues.test_issue5219.<locals>.ol)  s(   ø€ ä# A¬¯©´U·^±^Ð'DÓEˆJ÷ð ˆKr%   c                 ó   >• T" X5        g r   r&   )r·   r¼   r¸   s     €r"   Ú
test_tupleÚ8TestReportedSSAIssues.test_issue5219.<locals>.test_tuple3  s   ø€ á˜!Õr%   r2   )rB   r   )r   r   r#   )r   r¿   rØ   r¸   s      @r"   Útest_issue5219Ú$TestReportedSSAIssues.test_issue5219"  sG   ø€ ô	ô
 
�-Ó	 ó	ó 
!ð	ô 
ô	 ó 
ð	 ð 	�‰˜
 A uÕ-r%   c                 óÔ   • [         S 5       n[        R                  " S5      nSUR                  l        [        R
                  R                  U" U5      UR                  U5      5        g )Nc                 ó–   • [        U 5      S:X  a  U $ U R                  5       n [        [        U 5      5       H  nX==   S-  ss'   M     U $ )Nr»   r2   )rt   r   rI   )r4   rL   s     r"   ÚbarÚ1TestReportedSSAIssues.test_issue5223.<locals>.bar;  s?   € ä�1‹v˜‹{Ø�Ø—‘“ˆAÜœ3˜q›6–]�Ø“˜‘	•ñ #àˆHr%   r»   F)r   rx   ÚonesÚflagsÚ	writeabler¯   r°   r   )r   rÞ   r·   s      r"   Útest_issue5223Ú$TestReportedSSAIssues.test_issue52239  sO   € ä	ñ	ó 
ð	ô �GŠG�A‹JˆØ!ˆ�‰Ôä
�
‰
×"Ñ"¡3 q£6¨3¯;©;°q«>Õ:r%   c                 óh   • [         S 5       nU R                  U[        R                  " S5      5        g )Nc                 ót   • [         R                  " S5      n[         R                  " S5      nU S   US'   US   $ )N)gš™™™™™¹?g333333ã?g333333Ó?)rA   rA   )r   r   r   )rx   ry   r±   )ÚqÚlinÚstencils      r"   r5   Ú1TestReportedSSAIssues.test_issue5243.<locals>.fooK  s4   € ä—(’(˜?Ó+ˆCÜ—h’h˜vÓ&ˆGØ˜d™GˆG�D‰MØ�q‘6ˆMr%   )rB   rB   )r   r#   rx   r±   r9   s     r"   Útest_issue5243Ú$TestReportedSSAIssues.test_issue5243I  s-   € ä	ñ	ó 
ð	ð 	�‰˜œRŸXšX fÓ-Õ.r%   c                 ó&   • [        S5      S 5       ng )Nú(intp, intp, intp)c                 ód   • [        U5       H   nUS:X  a  X0:X  a  M  UnM  X0:X  a  M  WU-   nM"     W$ rG   rH   ©r4   ÚvrJ   rL   Úproblematics        r"   r5   ÚGTestReportedSSAIssues.test_issue5482_missing_variable_init.<locals>.fooW  s=   € ä˜1–X�Ø˜“6Ø“vÙà&'šà“vÙà&1°A¡ošñ ð Ðr%   )r   r9   s     r"   Ú$test_issue5482_missing_variable_initÚ:TestReportedSSAIssues.test_issue5482_missing_variable_initT  s   € ô 
Ð"Ó	#ñ	ó 
$ñ	r%   c                 ó|   ^^^^• SSK JnJm  SSKJmJm  SSKJm   " UUUU4S jSU5      n[        SSUS	9S
 5       ng )Nr   ©r   r
   )r   ÚIRProcessing)ÚPreLowerStripPhisc                   ó(   >• \ rS rSrU UUU4S jrSrg)ÚWTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipelinein  c                 óª   >• TR                   " U R                  5      nUR                  TT5        UR                  TT5        UR                  5         U/$ r   )Údefine_objectmode_pipelineÚstateÚadd_pass_afterÚfinalize)r   Úpmr
   rø   rù   r   s     €€€€r"   Údefine_pipelinesÚhTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.CustomPipeline.define_pipelineso  sH   ø€ Ø'×BÒBÀ4Ç:Á:ÓN�à×!Ñ! .°,Ô?Ø×!Ñ!Ð"3°^ÔDØ—‘”Ø�t�r%   r&   N©r'   r(   r)   r*   r  r+   )r
   rø   rù   r   s   €€€€r"   ÚCustomPipelinerû   n  s   ø† ÷ó r%   r  rî   F)ÚloopliftÚpipeline_classc                 ób   • [        U5       H  nX2:X  a  X0:X  a  M  UnM  X0:X  a  M  WU-   nM!     W$ r   rH   rð   s        r"   r5   ÚLTestReportedSSAIssues.test_issue5482_objmode_expr_null_lowering.<locals>.foow  s=   € ô ˜1–X�Ø“6Ø“vÙà&'šà“vÙà&1°A¡ošñ ð Ðr%   )	Únumba.core.compilerr   r
   Únumba.core.untyped_passesr   rø   Únumba.core.typed_passesrù   r   )r   r   r  r5   r
   rø   rù   r   s       @@@@r"   Ú)test_issue5482_objmode_expr_null_loweringÚ?TestReportedSSAIssues.test_issue5482_objmode_expr_null_loweringf  sA   û€ ÷ 	IßJÝ=÷	ò 	˜\ô 	ô 
Ð!¨EØ*ñ
,ñ	ó
,ñ	r%   c                 ó¬  ^^• [         R                  " S5      [         R                  " S5      4n[         R                  " S5      m[         R                  " S5      mUU4S jnU" SSU5      n[        U5      " SSU5      n[        SSS9" U5      " SSU5      n[         R                  R                  X45        [         R                  R                  X55        g )	NrB   r2   )r2   r2   c                 ó  >• [        U5      S:X  a  US   nO&US   n[        S[        U5      5       H  nUT-  nM
     [        SU 5       H:  n[        U5       H(  nT	nUS:X  a  XaS-
  :X  a  M  UnM  XaS-
  :X  a  M#  WU-   nM*     M<     W$ )Nr2   r   )rt   rI   )
ÚmrJ   ÚdataÚv0Ú_ÚtÚidxrò   rÅ   rÆ   s
           €€r"   r5   Ú>TestReportedSSAIssues.test_issue5493_unneeded_phi.<locals>.fooŽ  s˜   ø€ Ü�4‹y˜A‹~Ø˜!‘W‘à˜!‘W�ä˜q¤# d£)Ö,�AØ˜!‘G’Bñ -ô ˜1˜a–[�Ü  ž8�CØ�Aà˜a“xØ a¡%›<Ù à*+šKà a¡%›<Ù à*5¸©/šKó $ñ !ð Ðr%   rN   TF)Úforceobjr  )rx   rà   r   r   r¯   Úassert_array_equal)r   r  r5   r‘   Úres1Úres2rÅ   rÆ   s         @@r"   Útest_issue5493_unneeded_phiÚ1TestReportedSSAIssues.test_issue5493_unneeded_phi‡  sž   ù€ ô —’˜“
œBŸGšG A›JÐ'ˆÜ�GŠG�A‹JˆÜ�GŠG�E‹Nˆö	ñ2 �R˜˜TÓ"ˆÜ�CŒy˜˜R Ó&ˆÜ˜D¨5Ò1°#Ô6°r¸2¸tÓDˆÜ
�
‰
×%Ñ% fÔ3Ü
�
‰
×%Ñ% fÕ3r%   c                 óL  • S n[         R                  " SS/5      nU" SU5        [         R                  " SS/5      n[        U5      " SU5        [         R                  " SS/5      n[         R                  R	                  X$5        [         R                  R	                  X45        g )Nc                 ó<   • SnSnU SL a  X1U'   US-  nX1U'   US-  ng g )Nr   r2   Tr&   )r¦   ÚstackrL   rK   s       r"   r5   ÚMTestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb.<locals>.foo¯  s8   € ØˆAØˆAà�tŠ|Ø�a‘Ø�Q‘�Ø�a‘Ø�Q‘‘ð	 r%   r   iš  Tr2   )rx   ry   r   r¯   r  )r   r5   ÚpythonÚnbr‘   s        r"   Ú*test_issue5623_equal_statements_in_same_bbÚ@TestReportedSSAIssues.test_issue5623_equal_statements_in_same_bb­  s{   € ò	ô —’˜1˜c˜(Ó#ˆÙˆD�&Ôä�XŠX�q˜#�hÓˆÜˆSŒ	�$˜Ôä—’˜1˜a˜&Ó!ˆä
�
‰
×%Ñ% fÔ5Ü
�
‰
×%Ñ% bÕ1r%   c                 ó  ^ ^^^^	• SSK JnJm  SSKJmJnJn  / m	U" SSS9 " U	U 4S jSU5      5       m " UUU4S	 jS
U5      n[        US9SS j5       nT R                  U" S5      UR                  S5      5        T R                  T	S/5        g )Nr   r÷   )r   r   r	   FT©Úmutates_CFGÚanalysis_onlyc                   ój   >^ • \ rS rSr YR                  R                  S-   rU 4S jrU4S jrSrU =r	$ )ÚMTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimaliÎ  z.CheckSSAMinimalc                 ó$   >• [         TU ]  U 5        g r   )ÚsuperÚ__init__)r   Ú	__class__s    €r"   r.  ÚVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.__init__Ô  s   ø€ Ü‘Ñ  Õ&r%   c           	      óÎ   >• SnUR                   R                  R                  5        H)  nU[        [	        UR                  S5      5      5      -  nM+     TR                  U5        g)Nr   ÚphiT)Úfunc_irÚblocksÚvaluesrt   ÚlistÚ
find_exprsÚappend)r   rþ   rv   ÚblkÚphi_counters       €r"   Úrun_passÚVTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CheckSSAMinimal.run_pass×  sS   ø€ Ø�Ø Ÿ=™=×/Ñ/×6Ñ6Ö8�CØœ#œd 3§>¡>°%Ó#8Ó9Ó:Ñ:’Bñ 9à×"Ñ" 2Ô&Ør%   r&   )
r'   r(   r)   r*   r/  Ú_namer.  r;  r+   Ú__classcell__)r/  r:  r   s   @€€r"   ÚCheckSSAMinimalr+  Î  s)   ù† ñ —N‘N×/Ñ/Ð2DÑDˆEõ'÷ó r%   r?  c                   ó&   >• \ rS rSrU UU4S jrSrg)ÚLTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipelineiÞ  c                 ó†   >• TR                   " U R                  5      nUR                  TT5        UR                  5         U/$ r   )Údefine_nopython_pipelinerþ   rÿ   r   )r   r  r?  r
   r   s     €€€r"   r  Ú]TestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.CustomPipeline.define_pipelinesß  s7   ø€ Ø'×@Ò@ÀÇÁÓL�Ø×!Ñ! /°>ÔBØ—‘”Ø�t�r%   r&   Nr  )r?  r
   r   s   €€€r"   r  rA  Þ  s   ø† ÷ò r%   r  ©r  r2   c                 óÖ   • [         R                  " X 45      nSnX1::  aJ  [        [        U5      5       H&  n[        [        U5      5       H  nXE-   X$U4'   M     M(     US-  nX1::  a  MJ  U$ r_   )rx   rš   rI   rt   )rJ   Úmax_iterr·   rL   rY   Úks         r"   Ú	while_forÚGTestReportedSSAIssues.test_issue5678_non_minimal_phi.<locals>.while_forå  se   € ä—’˜!˜“ˆAØˆAØ“-Üœs 1›vž�AÜ"¤3 q£6ž]˜Ø!"¡˜˜A˜#›ó +ñ 'ð �Q‘�ð	 •-ð
 ˆHr%   rN   )r2   )r
  r   r
   r  r   r   r	   r   ÚassertPreciseEqualr   r   )
r   r   r   r	   r  rI  r?  r
   r   r:  s
   `     @@@@r"   Útest_issue5678_non_minimal_phiÚ4TestReportedSSAIssues.test_issue5678_non_minimal_phiÄ  sœ   ü€ ÷ 	I÷	
ñ 	
ð ˆá	 5¸Ñ	=÷	ð 	˜ló 	ó 
>ð	÷	ñ 	˜\ô 	ô 
˜^Ñ	,ó	ó 
-ð	ð 	×Ñ¡	¨"£¨y×/@Ñ/@ÀÓ/DÔEà×Ñ˜ q cÕ*r%   c                 óÀ   ^ ^^^• SSK Jn  SSKJmJn  SU4U 4S jjmU" SSS9 " UU4S	 jS
T5      5       m " U4S jS[
        5      n[        US9S 5       nU" S5        g )Nr   )Ú
FunctionIR)ÚAnalysisPassr	   Úfirc                 ó   >• U R                   R                  5       tpUR                  R                  S5      nU R	                  U5      nTR                  UR                  S5        TR                  [        R                  UR                  5        g )NrS   r2  )r4  r5  ÚscopeÚgetÚget_definitionr   Úoprc   r   Ú	UNDEFINEDÚincoming_values)rQ  r9  r  ÚvarÚdefnr   s        €r"   ÚcheckÚCTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.checkü  se   ø€ ØŸ
™
×)Ñ)Ó+ˆIˆSØ—)‘)—-‘- Ó$ˆCØ×%Ñ% cÓ*ˆDØ×Ñ˜TŸW™W eÔ,Ø�M‰Mœ"Ÿ,™,¨×(<Ñ(<Õ=r%   FTr'  c                   ó6   >• \ rS rSrSrSrU 4S jrU4S jrSrg)ÚFTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSAChecki  z
Check SSA on variable `d`
Ú	SSA_Checkc                 ó(   >• TR                  U 5        g r   )r.  )r   rP  s    €r"   r.  ÚOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.__init__  s   ø€ Ø×%Ñ% dÕ+r%   c                 ó*   >• T" UR                   5        g)NF)r3  )r   rþ   r[  s     €r"   r;  ÚOTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheck.run_pass  s   ø€ Ù�e—m‘mÔ$Ør%   r&   N)	r'   r(   r)   r*   r”   r=  r.  r;  r+   )rP  r[  s   €€r"   ÚSSACheckr^    s   ø† ñð  ˆEõ,÷ð r%   rd  c                   ó&   >• \ rS rSrSrU 4S jrSrg)ÚNTestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipelinei  zFInject SSACheck pass into the default pipeline following the SSA
pass
c                 ó¦   >• [         R                  " U R                  S5      nSUl        UR	                  T[
        5        UR                  5         U/$ )NÚssa_check_custom_pipelineF)r
   rC  rþ   Ú
_finalizedrÿ   r   r   )r   Úpipelinerd  s     €r"   r  Ú_TestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.SSACheckPipeline.define_pipelines  sK   ø€ Ü-×FÒFØ—J‘JÐ ;ó=�ð ',�Ô#Ø×'Ñ'¨´.ÔAà×!Ñ!Ô#Ø �zÐ!r%   r&   N)r'   r(   r)   r*   r”   r  r+   )rd  s   €r"   ÚSSACheckPipelinerf    s   ø† ñ÷"ð "r%   rl  rE  c                 ó@   • U S:„  nU(       a  U S-   nU=(       a    WS:„  $ )Nr   r»   r&   )r·   rK   rS   s      r"   r   ÚETestReportedSSAIssues.test_issue9242_use_not_dom_def.<locals>.py_func!  s%   € à�A‘ˆAÞØ˜‘E�à—;˜˜Q™Ðr%   rN   )Únumba.core.irrO  Únumba.core.compiler_machineryrP  r	   r   r   )r   rO  r	   rl  r   rP  rd  r[  s   `    @@@r"   Útest_issue9242_use_not_dom_defÚ4TestReportedSSAIssues.test_issue9242_use_not_dom_defõ  sm   û€ Ý,÷	
ð
	>�z÷ 	>ñ 
 5¸Ñ	=÷	ð 	�|ó 	ó 
>ð	÷	"œ|ô 	"ô 
Ð-Ñ	.ñ	ó 
/ð	ñ 	��r%   r&   N)r'   r(   r)   r*   rŸ   r¨   r²   rÁ   rÈ   rÚ   rã   rë   rô   r  r  r$  rL  rq  r+   r&   r%   r"   r–   r–   Ð   sL   † òò$ò"
Bò#ò*1ò.ò.;ò 	/òò$òB$4òL2ò./+õb4r%   r–   c                   ó   • \ rS rSrS rSrg)ÚTestSROAIssuesi,  c                 óZ  ^	^
• / m
[        SSS9 " U
4S jS[        5      5       m	 " U	4S jS[        5      n[        US9S	 5       n[        R
                  " S
5      nU R                  U" U5      US-   5        U R                  [        T
5      S5        U R                  T
S   R                  R                  S5        UR                  UR                  S      R                  S   nU R                  [        UR                  5      SS5        UR                  R                  5       u  nUR!                  ["        R$                  5      nU Vs/ s H!  nUR                  R                  S:X  d  M  UPM#     nnU R                  [        U5      SS5        U R                  US   US   S5        g s  snf )NFT)r)  r(  c                   ó,   >• \ rS rSrSrS rU 4S jrSrg)ÚZTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignmentsi7  Úclone_foobar_assignments_passc                 ó0   • [         R                  " U 5        g r   )r   r.  rn   s    r"   r.  ÚcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.__init__<  s   € Ü×%Ò% dÕ+r%   c                 ó’  >• SnUR                   R                  R                  5        H›  n/ nUR                  [        R
                  5       H0  nUR                  R                  S:X  d  M  UR                  U5        M2     U H=  n[        R                  " U5      nUR                  Xe5        SnTR                  U5        M?     M�     U$ )NFÚfoobarT)r3  r4  r5  Ú
find_instsr   ÚAssignÚtargetÚnamer8  r   r   Úinsert_after)r   rþ   Úmutatedr9  Úto_cloneÚassignÚcloneÚcloneds          €r"   r;  ÚcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CloneFoobarAssignments.run_pass?  sŸ   ø€ Ø�Ø Ÿ=™=×/Ñ/×6Ñ6Ö8�CØ!�Hà"%§.¡.´·±Ö";˜Ø!Ÿ=™=×-Ñ-°Õ9Ø$ŸO™O¨FÖ3ñ #<ó #+˜Ü $§¢¨fÓ 5˜Ø×(Ñ(¨Ô7Ø"&˜àŸ™ eÖ,ó #+ñ 9ð �r%   r&   N)r'   r(   r)   r*   r=  r.  r;  r+   )r†  s   €r"   ÚCloneFoobarAssignmentsrw  7  s   ø† ð 4ˆEò,÷ð r%   rˆ  c                   ó"   >• \ rS rSrU 4S jrSrg)ÚRTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompileriP  c                 óÚ   >• [         R                  " U R                  S5      nSUl        UR	                  T[
        5        UR	                  [        [        5        UR                  5         U/$ )NÚcustom_pipelineF)	r
   rC  rþ   ri  rÿ   r   r   r   r   )r   r  rˆ  s     €r"   r  ÚcTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.CustomCompiler.define_pipelinesQ  sW   ø€ Ü'×@Ò@Ø—J‘JÐ 1ó�ð !&�”à×!Ñ!Ð"8¼.ÔIà×!Ñ!¤*¬nÔ=Ø—‘”Ø�t�r%   r&   Nr  )rˆ  s   €r"   ÚCustomCompilerrŠ  P  s   ø† ÷
ð 
r%   rŽ  rE  c                 ó   • U S-   nU$ r1   r&   )r­   r|  s     r"   ÚudtÚGTestSROAIssues.test_issue7258_multiple_assignment_post_SSA.<locals>.udt]  s   € à˜1‘WˆFØˆMr%   rN   r2   r   r|  Úpreserved_irzonly one blockrB   z0expected two assignment statements into 'foobar'z5expected the two assignment statements to be the same)r	   r   r   r   rx   ÚarangerK  r   rt   r  r€  Ú	overloadsÚ
signaturesÚmetadatar4  r5  r}  r   r~  )r   rŽ  r�  r­   Únirr9  ÚassignsÚstmtÚfoobar_assignsrˆ  r†  s            @@r"   Ú+test_issue7258_multiple_assignment_post_SSAÚ:TestSROAIssues.test_issue7258_multiple_assignment_post_SSA1  s~  ù€ ð ˆä	 U¸Ñ	=÷	¤\ó 	ó 
>ð	÷0	œ\ô 	ô 
˜^Ñ	,ñ	ó 
-ð	ô �iŠi˜‹mˆà×Ñ¡ C£¨#°©'Ô2à×Ñœ˜V› aÔ(Ø×Ñ˜ ™×)Ñ)×.Ñ.°Ô9à�m‰m˜CŸN™N¨1Ñ-Ñ.×7Ñ7¸ÑGˆØ×Ñœ˜SŸZ™Z›¨!Ø)ô	+à—
‘
×!Ñ!Ó#‰ˆØ—.‘.¤§¡Ó+ˆÙ+2ó ;ª7 4Ø!Ÿ[™[×-Ñ-°Ñ9÷ ©7ˆð ;à×ÑÜ�Ó Ø>ô	
ð 	×ÑØ˜1Ñ˜~¨aÑ0ØCõ	
ùò;s   ÅF(Å*F(r&   N)r'   r(   r)   r*   r›  r+   r&   r%   r"   rt  rt  ,  s   † õ
F
r%   rt  )*r”   Úsysr   ÚloggingÚnumpyrx   Únumbar   r   r   Ú
numba.corer   r   rp  r   r	   r
  r
   r   r  r   r   r  r   Únumba.extendingr   Únumba.tests.supportr   r   r   Ú_DEBUGÚ	getLoggerÚ
ssa_loggerÚsetLevelÚDEBUGÚ
addHandlerÚStreamHandlerÚstderrr   r-   r–   rt  r&   r%   r"   Ú<module>r¬     s½   ðñó Û Û ã ç "Ñ "ß !ß Eß @ß @Ý 2Ý $ß JÑ Jð 
€æ	à×"Ò"Ð#3Ó4€JØ×Ñ˜gŸm™mÐÑ,Ø×Ñ˜'×/Ò/°·
±
Ó;Ô<ô#�(ô #ôh&ˆkô h&ôVY˜Kô Yôx
K
�_ hõ K
r%   