
    "
3jO]                     n   S SK r S SKrS SKJr  S SKrS SKJrJrJ	r	J
r
  S SKJrJr  S SKJrJrJrJr  S SKJrJrJrJrJrJrJrJrJrJr   " S S\5      r " S	 S
\5      r  " S S\5      r! " S S\5      r" " S S\\5      r# " S S\5      r$\ " S S\5      5       r%\&S:X  a  \RN                  " 5         gg)    N)product)njittypedobjmodeprange)ir_utilsir)CompilerErrorNumbaPerformanceWarningTypingErrorUnsupportedBytecodeError)
TestCaseunittestcaptured_stdoutMemoryLeakMixinskip_parfors_unsupportedskip_unless_scipyexpected_failure_py311expected_failure_py312expected_failure_py313expected_failure_py314c                       \ rS rSrSrg)MyError    N)__name__
__module____qualname____firstlineno____static_attributes__r       U/home/wildlama/miniconda3/lib/python3.13/site-packages/numba/tests/test_try_except.pyr   r      s    r!   r   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 5       rS rS rS rSrg)TestTryBareExcept   zNTest the following pattern:

try:
    <body>
except Exception:
    <handling>
c                    ^ [         S 5       m[         U4S j5       nU R                  U" S5      S5        U R                  U" S5      S5        g )Nc                     U (       a  [         eg Nr   xs    r"   inner5TestTryBareExcept.test_try_inner_raise.<locals>.inner!   s     r!   c                 &   >  T" U 5        g!    g= f)N
not raisedcaughtr   )r+   r,   s    r"   udt3TestTryBareExcept.test_try_inner_raise.<locals>.udt&   s     a# s    Fr/   Tr0   r   assertEqual)selfr1   r,   s     @r"   test_try_inner_raise&TestTryBareExcept.test_try_inner_raise    sS    		 
	 
	  
	  	U\2TH-r!   c                 T  ^ [         S 5       m[         U4S j5       nU R                  [        5       nU" S5        S S S 5        U R                  [	        WR
                  5      S5        U R                  U" S5      S5        U R                  U" S5      S5        g ! , (       d  f       Nd= f)	Nc                 H    U S:X  a  [        S5      eU S:X  a  [        S5      eg )N   one   twor)   r*   s    r"   r,   5TestTryBareExcept.test_try_state_reset.<locals>.inner2   s)    Aven$aen$ r!   c                 L   >  T" U 5        SnU S:X  a  T" S5        U$ !   Sn N= f)Nr/   r0   r   r<   r   )r+   resr,   s     r"   r1   3TestTryBareExcept.test_try_state_reset.<locals>.udt9   s5    a" AvaJ	s   
 #r   r=   r:   r0   r/   )r   assertRaisesr   r4   str	exception)r5   r1   raisesr,   s      @r"   test_try_state_reset&TestTryBareExcept.test_try_state_reset1   s    		% 
	% 
	 
	 w'6F (V--.6Q*R,/	 ('s   	B
B'c                     [         S 5       nU$ )Nc                     U S:X  a  [        S5        [        S5      eU S:X  a  [        S5        [        S5      eU S:X  a  [        S5        [        S	5      e[        S
5        g )Nr:   call_oner;   r<   call_twor=      
call_threethree
call_otherprintr   r*   s    r"   r,   -TestTryBareExcept._multi_inner.<locals>.innerK   sV    Avj!en$aj!en$al#g&&l#r!   )r   )r5   r,   s     r"   _multi_innerTestTryBareExcept._multi_innerJ   s    		$ 
	$ r!   c                 $  ^ U R                  5       m[        U4S j5       nU R                  [        5       n[	        5        nU" SSS5        S S S 5        S S S 5        U R                  WR                  5       R                  5       / SQ5        U R                  [        WR                  5      S5        [	        5        nU" SSS5        S S S 5        U R                  UR                  5       R                  5       / SQ5        [	        5        nU" SSS5        S S S 5        U R                  UR                  5       R                  5       / S	Q5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nt= f)
Nc                    >   [        S5        T" U 5        [        S5        g !   [        S5        T" U5        [        S5         g = f!   [        S5        T" U5        [        S5         g = f)NABCDEF)rR   )r+   yzr,   s      r"   r1   .TestTryBareExcept.test_nested_try.<locals>.udt^   sY    #J!H#J#J!H#Jc
ac
s   #  AA A  A*r:   r<   rM   )rX   rK   rZ   rL   r\   rN   rO   r   )rX   rK   rZ   rP   r[   )rX   rK   rZ   rL   r\   rP   r]   )
rT   r   rC   r   r   r4   getvaluesplitrD   rE   )r5   r1   rF   stdoutr,   s       @r"   test_nested_try!TestTryBareExcept.test_nested_try[   s5   !!#		 
	  w'6 "fAq! # ( 	OO##%A	
 	V--.8 &1aL OO##%5	
 &1aL OO##%F	
' #" ('  s;   EEE;E0F
E	E
E-0
E>
Fc                   ^ U R                  5       m[        U4S j5       n[        5        nU" SS5      nS S S 5        U R                  WR	                  5       R                  5       / SQ5        U R                  WS5        [        5        nU" SS5      nS S S 5        U R                  UR	                  5       R                  5       / SQ5        U R                  US5        [        5        nU" SS5      nS S S 5        U R                  UR	                  5       R                  5       / SQ5        U R                  US	5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nt= f)
Nc                    >  [        S5        [        U5       H  n[        U5        X :X  d  M  T" U5        M     W$ !   [        S5         W$ = f)NrX   rY   )rR   range)r+   nir,   s      r"   r1   /TestTryBareExcept.test_loop_in_try.<locals>.udt   sJ    c
qA!Hva " Hc
Hs   '< < ArM      )rX   0123rN   rY   r:   )rX   rm   rn   rK   rY   r   )rX   rm   rP   rn   ro   r<   )rT   r   r   r4   ra   rb   )r5   r1   rc   r@   r,   s       @r"   test_loop_in_try"TestTryBareExcept.test_loop_in_try   s.   !!#			 
		 &a)C OO##%8	
 	a  &a)C OO##%,	
 	a  &a)C OO##%.	
 	a 1   s#   
D<	
E'
E<
E
E
E-c                    [         S 5       n[        5        nU" S5      nS S S 5        U R                  WR                  5       R	                  5       SS/5        U R                  WS5        [        5        nU" S5      nS S S 5        U R                  UR                  5       R	                  5       SS/5        U R                  US5        g ! , (       d  f       N= f! , (       d  f       Nb= f)	Nc                 z     [        S5        U (       a  [        S5      e[        S5        g!   [        S5         g= f)NrX   my_errorrY   rZ   A  {   rQ   r*   s    r"   r1   0TestTryBareExcept.test_raise_in_try.<locals>.udt   s9    c
!*--c
 c
s   (+ :TrX   rZ   rv   FrY   rw   r   r   r4   ra   rb   r5   r1   rc   r@   s       r"   test_raise_in_try#TestTryBareExcept.test_raise_in_try   s    			 
		 &d)C  	OO##%#J	
 	c" &e*C  	OO##%#J	
 	c"#     	C4	C
C
C'c                    ^ [         U4S j5       m[        5        nT" S5      nS S S 5        U R                  W5        U R                  WR	                  5       R                  5       S/5        g ! , (       d  f       NO= f)Nc                 p   > U S:  a   T" U S-
  5        U S:X  a  [        S5      eg !   [        S5         g= f)Nr   r:   CAUGHT   rE   )rR   
ValueError)r+   foos    r"   r   -TestTryBareExcept.test_recursion.<locals>.foo   sD    1uAJ Av -- (Os   & 5
   r   )r   r   assertIsNoner4   ra   rb   )r5   rc   r@   r   s      @r"   test_recursion TestTryBareExcept.test_recursion   sh    		. 
	. &b'C  	#*002XKA	 s   	A--
A;c                   ^ [         S 5       m[         U4S j5       n[        5        nU" S5      nS S S 5        U R                  WS5        U R                  WR                  5       R	                  5       / 5        g ! , (       d  f       NO= f)Nc              3   n   #    U S:  a   Sv   [        S5      eg ! [         a    [        S5         g f = f7f)Nr      rE   r   )r   	ExceptionrR   r*   s    r"   r   )TestTryBareExcept.test_yield.<locals>.foo   s=     1u$G$[11  ! $(O$s   5 52525c                 &   > [        T" U 5      5      $ r(   )next)r_   r   s    r"   bar)TestTryBareExcept.test_yield.<locals>.bar   s    A<r!   r   r   ry   )r5   r   rc   r@   r   s       @r"   
test_yieldTestTryBareExcept.test_yield   s|    		$ 
	$ 
	  
	  &b'C  	a *002B7	 s   	A99
Bc                     [         S 5       n[        5        nU" S5        S S S 5        U R                  WR                  5       R	                  5       S/5        g ! , (       d  f       N>= f)Nc                     S nU" 5         g )Nc                  >     [        S5      e!   [        S5         g= f)NrE   r   r   r   rR   r   r!   r"   r   9TestTryBareExcept.test_closure2.<locals>.foo.<locals>.bar   s#    $[11(Os    r   r+   r   s     r"   r   ,TestTryBareExcept.test_closure2.<locals>.foo   s     Er!   r   r   ry   r5   r   rc   s      r"   test_closure2TestTryBareExcept.test_closure2   sW    		 
	 &G  	*002XKA s   	A
A&c                     [         S 5       n[        5        nU" S5      nS S S 5        U R                  W/ SQ5        U R                  WR                  5       R	                  5       S/S-  5        g ! , (       d  f       NU= f)Nc                 N    S n[        U/ SQ5       V s/ s H  o PM     sn $ s  sn f )Nc                 B     [        S5      e!   [        S5        U s $ = f)NrE   r   r   r_   s    r"   r   9TestTryBareExcept.test_closure3.<locals>.foo.<locals>.bar  s%    $[11(OHs    r:   r<   rM   )mapr   s     r"   r   ,TestTryBareExcept.test_closure3.<locals>.foo
  s*      #3	232!A2333s   "r   r   r   rM   ry   r5   r   rc   r@   s       r"   test_closure3TestTryBareExcept.test_closure3	  sm    		4 
	4 &b'C  	i(*002XK!OE	 s   	A//
A=c                    [         S 5       n[        5        nU" S5      nS S S 5        U R                  WR                  5       R	                  5       S5        U R                  W5        [        5        nU" S5      nS S S 5        U R                  UR                  5       S5        U R                  U/ SQ5        g ! , (       d  f       N= f! , (       d  f       NT= f)Nc                 x    S n [        USSSU /5       V s/ s H  o PM     sn $ s  sn f !   [        S5         g = f)Nc                 (    U S:  a  [        S5      eU $ )Nr   rE   r   r   s    r"   r   9TestTryBareExcept.test_closure4.<locals>.foo.<locals>.bar  s    q5$[11r!   r:   r<   rM   r   )r   rR   r   s     r"   r   ,TestTryBareExcept.test_closure4.<locals>.foo  sC    
 #&sQ1aL#9:#9a#9::: hs   * %* * 9rB   r       )r:   r<   rM   r   )r   r   r4   ra   stripr   r   s       r"   test_closure4TestTryBareExcept.test_closure4  s    			  
		  &b'C  	*002H=#&a&C *B/l+  s   	B71	C7
C
Cc                     [         S 5       n[        5        nU" 5         S S S 5        U R                  WR                  5       R	                  5       S/5        g ! , (       d  f       N>= f)Nc                      [         R                  " S5      n  [         R                  R                  U 5      ng !   [	        S5        Ws $ = f)N)r   r   r   )npzeroslinalgcholeskyrR   )achols     r"   r   0TestTryBareExcept.test_real_problem.<locals>.foo4  s<     Ayy))!,hs	   8 A	r   ry   r   s      r"   test_real_problem#TestTryBareExcept.test_real_problem2  sU    		 
	 &E  	*002XK@ s   A
A%c           	      $   [         S 5       n[        5        nU" S5        S S S 5        U R                  WR                  5       R	                  5       S/S-  [        SS5       Vs/ s H  nSU-  PM
     sn-   5        g ! , (       d  f       Nb= fs  snf )Nc                    [        U 5       H  n US:  a  [        eM        WS:  a  [        eg !   [        S5         M4  = f!   [        S5        [        e= f!   [        S5        [        e= f!   [        S5         g = f)Nrl   r   CAUGHT1CAUGHT2CAUGHT3)rh   r   rR   )ri   rj   s     r"   r   ,TestTryBareExcept.test_for_loop.<locals>.fooC  s     1X$1u((  %	)- 1u&0 0  %$(O-!),",,)i(((%)$s,   0A A AA A,,A/ /A>r   r   r   r:   zCAUGHT%s)r   r   r4   ra   rb   rh   )r5   r   rc   rj   s       r"   test_for_loopTestTryBareExcept.test_for_loopB  s    		% 
	%. &G  	OO##%K!OuQ{C{!zA~{CC	
 
 Ds   	A<#B<
B
c                 P    [         S 5       nU" S5      nU R                  US5        g )Nc                       U $ !    U $ = fr(   r   r*   s    r"   r   ,TestTryBareExcept.test_try_pass.<locals>.food  s      HHs   
rw   r3   )r5   r   r@   s      r"   test_try_passTestTryBareExcept.test_try_passc  s/    		 
	 #hc"r!   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  &     [        S5      e!   e = fNERRORr   r   r!   r"   r1   6TestTryBareExcept.test_try_except_reraise.<locals>.udtp  s     ))s    4The re-raising of an exception is not yet supported.r   rC   r   assertInrD   rE   r5   r1   rF   s      r"   test_try_except_reraise)TestTryBareExcept.test_try_except_reraiseo  W    		 
	 78FE 9B  !	
 98   A
A&r   N)r   r   r   r   __doc__r6   rG   rT   rd   rq   r{   r   r   r   r   r   r   r   r   r   r   r    r   r!   r"   r$   r$      sj    ."02"+
Z(!T#BB$8(B F",0 A A
B
#
r!   r$   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestTryExceptCaughti  c                    [         S 5       n[        5        nU" S5        S S S 5        U R                  WR                  5       R	                  5       / SQ5        [        5        nU" S5        S S S 5        U R                  UR                  5       R	                  5       / SQ5        g ! , (       d  f       N= f! , (       d  f       NP= f)Nc                      [        S5        U (       a  [        S5      e[        S5        [        S5        g ! [         a    [        S5         N#f = f)NrX   321rY   rZ   r[   rR   ZeroDivisionErrorr   r*   s    r"   r1   5TestTryExceptCaught.test_catch_exception.<locals>.udt  sD    c
+E22c
 #J  c
s   (6 AAT)rX   rZ   r[   FrX   rY   r[   ry   )r5   r1   rc   s      r"   test_catch_exception(TestTryExceptCaught.test_catch_exception  s    		 
	 &I  	OO##%	
 &J  	OO##%	
  s   	B$"	B5$
B25
Cc                    [         S 5       n[        5        nU" S5      nS S S 5        U R                  WR                  5       R	                  5       SS/5        U R                  WS5        [        5        nU" S5      nS S S 5        U R                  UR                  5       R	                  5       / SQ5        U R                  US5        g ! , (       d  f       N= f! , (       d  f       Nb= f)	Nc                      [        S5        U (       a  [        e[        S5        Sn[        S5        U$ ! [         a    [        S5        SnUs $ f = f)NrX   rY   rw   rZ   rv   r[   r   )r+   rs     r"   r1   5TestTryExceptCaught.test_return_in_catch.<locals>.udt  sS    	c
++c

 #JH  c
s   %4 AATrX   rZ   rv   Fr   rw   ry   rz   s       r"   test_return_in_catch(TestTryExceptCaught.test_return_in_catch  s    		 
	 &d)C  	OO##%#J	
 	c" &e*C  	OO##%	
 	c"#  r}   c                     [         S 5       nU R                  [        5       nU" S5        S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                 \     U (       a  [         eSnU$ ! [         a  nSnUs S nA$ S nAff = f)Nrw   rv   )r   r   )r+   r   es      r"   r1   1TestTryExceptCaught.test_save_caught.<locals>.udt  s8    ++ H  s    
+&++Tz3Exception object cannot be stored into variable (e)r   r   s      r"   test_save_caught$TestTryExceptCaught.test_save_caught  sY    		 
	 78FI 9A  !	
 98s   	A
A'c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  8     [        S5      e! [         a    e f = fr   r   r   r   r!   r"   r1   8TestTryExceptCaught.test_try_except_reraise.<locals>.udt  s$     )) s    r   r   r   s      r"   r   +TestTryExceptCaught.test_try_except_reraise  r   r   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)Nc                  X     [        S5      e! [         a     e ! [         a    e f = ff = fr   r   r   r!   r"   r1   >TestTryExceptCaught.test_try_except_reraise_chain.<locals>.udt  s;     ))   s    
)%)r   r   r   s      r"   test_try_except_reraise_chain1TestTryExceptCaught.test_try_except_reraise_chain  sW    		 
	 78FE 9B  !	
 98r   c                 |    [         S 5       nU R                  U" S5      S5        U R                  U" S5      S5        g )Nc                 8     SU -    SU -  $ ! [          a     gf = f)Nr:     )r   r^   s    r"   r1   7TestTryExceptCaught.test_division_operator.<locals>.udt  s-    A 1u  s    
r   r   r<   g      ?r3   r5   r1   s     r"   test_division_operator*TestTryExceptCaught.test_division_operator  s@     
	 
	 	Q(Q%r!   r   N)r   r   r   r   r   r   r   r   r   r  r    r   r!   r"   r   r     s!    
<"#H
&

$&r!   r   c                   *    \ rS rSrSrS rS rS rSrg)TestTryExceptNestedi  zTests for complicated nestingc                 2   [        5        nU" U0 UD6  S S S 5        WR                  5       n[        5        nU" U0 UD6  S S S 5        UR                  5       nU R                  XgSR                  X45      S9  g ! , (       d  f       Ni= f! , (       d  f       NO= f)Nzargs={} kwargs={})msg)r   ra   r4   format)r5   cfuncpyfuncargskwargsrc   expectgots           r"   check_compare!TestTryExceptNested.check_compare	  s    &D#F# "&4"6" oo#**48 	 	
  s   	A7	B7
B
Bc           
          [         S 5       n[        [        SS/SS95      nU R                  U5        U H!  u  p4pVU R	                  XR
                  X4XVS9  M#     g )Nc                 P   [        S5        U (       aU  [        S5         [        S5        U(       a  [        S5        [        S5      e[        S5        [        S5        [        S5        [        S5        g ! [         a    [        S5         [        S	5         [        S
5        U(       a  [        S5        [        S5      e[        S5        [        S5        O! [         a    [        S5         Of = f[        S5        O! [         a    [        S5         Of = f[        S5         Nf = f)NrX   rY   rZ   r[   r^   r\   Gr]   HIJr_   KMLONPQRrR   r   r   r+   r^   r_   ps       r"   r1   5TestTryExceptNested.test_try_except_else.<locals>.udt  s    #Jc
#Jc
%cl*#J* #Jc
#J- ! #J#c
	'!#J  %c
&-cl 2!#J "#J  ) '!#J' c
 % #c
# #J%sY   3A4 4D%
C<3C	C<C-*C<,C--C<0D%<DD%DD%$D%TFr   repeatr  r   listr   
assertTruer  py_func)r5   r1   casesr+   r^   r_   r   s          r"   test_try_except_else(TestTryExceptNested.test_try_except_else  se    	 	 
 	D WdE]156JA![[A    r!   c                     [         S 5       n[        [        SS/SS95      nU R                  U5        U H  u  p4U R	                  XR
                  X4S9  M!     g )Nc                 *    [        S5        U (       a  [        S5        [        e[        S5         [        S5        U(       a  [        S5        [        e [        S5        [        S	5        g !   [        S5         NK= f! [         a    [        S5         N5f = f! [        S	5        f = f!  [        S5        U(       a  [        S5        [        e [        S5        O! [         a    [        S5         Of = f[        S	5        f ! [        S	5        f = f= f)
NrX   rY   rZ   r[   r\   r]   r  r  r  r  r   qs     r"   r1   8TestTryExceptNested.test_try_except_finally.<locals>.udtC  s    c
#J!Mc

#Jc
%  #J#Jc
 ! #J
 #J
#Jc
%  #J ! #J
 #JE#Jsv   .A, #A> B ,A;9B) >BB BB B&)D+#CDC30D2C33D6DDDTFr<   r"  r-  r$  )r5   r1   r(  r   r.  s        r"   test_try_except_finally+TestTryExceptNested.test_try_except_finallyB  s`    		 
	, WdE]156DA[[   r!   r   N)	r   r   r   r   r   r  r)  r0  r    r   r!   r"   r  r    s    #
*Xr!   r  c                   &    \ rS rSrS rS rS rSrg)TestTryExceptRefctic  c                     [         S 5       nU" SSS9nU R                  [        U5      [        [        S5      5      5        U" SSS9nU R                  [        U5      [        [        S5      5      5        g )Nc                     [         R                  " 5       n [        U 5       H  nX1:X  a  [        eUR	                  U5        M!     U$ ! [
         a    Us $ f = fr(   )r   Listrh   
IndexErrorappendr   )ri   raise_atlstrj   s       r"   r1   6TestTryExceptRefct.test_list_direct_raise.<locals>.udte  sS    **,CqA}((JJqM " 
  
s   .A AAr   rl   r9  r   r4   r%  rh   )r5   r1   outs      r"   test_list_direct_raise)TestTryExceptRefct.test_list_direct_raised  sf    	
	 

	 "q!cDqN3"r"cDrO4r!   c           	        ^ [         S 5       m[         U4S j5       nU" SSS9nU R                  [        U5      S/[        [        S5      5      -   5        U" SSS9nU R                  [        U5      S/[        [        S5      5      -   5        g )Nc                 b    [        U5       H  nX2:X  a  [        eU R                  U5        M!     U $ r(   )rh   r7  r8  )r:  ri   r9  rj   s       r"   appender=TestTryExceptRefct.test_list_indirect_raise.<locals>.appenderx  s-    1X=$$

1  Jr!   c                    > [         R                  " 5       nUR                  S5         T" X U5        U$ ! [         a    Us $ f = f)N  )r   r6  r8  r   )ri   r9  r:  rC  s      r"   r1   8TestTryExceptRefct.test_list_indirect_raise.<locals>.udt  sF    **,CJJv* 
  
s   	4 AAr   rl   r<  rF  r=  )r5   r1   r>  rC  s      @r"   test_list_indirect_raise+TestTryExceptRefct.test_list_indirect_raisew  s    		 
	 
	 
	 "q!cVHtE!H~$=>"r"cVHtE"I$>?r!   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        U R                  [	        WR
                  5      S5        g ! , (       d  f       N4= f)Nc                       [         R                  " 5       n [        S5        U R                  S5        [        S5        U R                  S5        [        S5        U $ ! [         a    [        S5         g f = f)NrX   r   rY   fdarZ   r[   )r   r6  rR   r8  r   )r:  s    r"   r1   <TestTryExceptRefct.test_incompatible_refinement.<locals>.udt  sY    	jjlc


1c


5!c

 c
s   AA A43A4z@Cannot refine type|cannot safely cast unicode_type to int(32|64))r   rC   r   assertRegexrD   rE   r   s      r"   test_incompatible_refinement/TestTryExceptRefct.test_incompatible_refinement  sX    	
	 

	 {+vE ,  !O	
 ,+r   r   N)r   r   r   r   r?  rH  rO  r    r   r!   r"   r3  r3  c  s    5&@2
r!   r3  c                   |    \ rS rSrS r\\\\S 5       5       5       5       r	\\\\S 5       5       5       5       r
S rSrg)TestTryExceptOtherControlFlowi  c                     [         S 5       nU R                  [        U" SS5      5      [        [        S5      5      5        U R                  [        U" SS5      5      [        [        S5      5      5        g )Nc              3   r   #    [        U 5       H  n X!:X  a  [        eUv   M     g ! [         a       g f = f7fr(   )rh   r   r   )ri   r+   rj   s      r"   r1   5TestTryExceptOtherControlFlow.test_yield.<locals>.udt  s;     1Xv((G	 
 ! s   7&7
4747r   rl   r=  r   s     r"   r   (TestTryExceptOtherControlFlow.test_yield  s\    		 
	 	c"aj)4a>:c"bk*DrO<r!   c                     [         S 5       nU R                  [        5       nU" 5         S S S 5        SnU R                  U[	        WR
                  5      5        g ! , (       d  f       N6= f)Nc                       [        5          [        [        5       5        S S S 5        g ! , (       d  f       g = f! [         a     g f = fr(   )r   rR   objectr   r   r!   r"   r1   7TestTryExceptOtherControlFlow.test_objmode.<locals>.udt  s0    Y&(O YY s#   
: ): 
7: : 
AAlunsupported control flow: with-context contains branches (i.e. break/return/raise) that can leave the block r   rC   r
   r   rD   rE   )r5   r1   rF   r  s       r"   test_objmode*TestTryExceptOtherControlFlow.test_objmode  s`    
 
	 
	 }-E .E  !	
	 .-s   A
A(c                    ^ S m[         U4S j5       nU R                  [        5       nU" 5         S S S 5        SnU R                  U[	        WR
                  5      5        g ! , (       d  f       N6= f)Nc                 n    [         R                  " [        [        U R	                  5       5      5      5      $ r(   )r   asarrayr%  reversedtolistr*   s    r"   r   CTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.bar  s!    ::d8AHHJ#7899r!   c                     > [         R                  " S5      n [         R                  " U 5      n [        SS9   UT" U 5      -  nS S S 5        U$ ! , (       d  f       U$ = f! [         a     U$ f = f)Nrl   zintp[:]r   )r   arange
zeros_liker   r   )r+   r^   r   s     r"   r]  LTestTryExceptOtherControlFlow.test_objmode_output_type.<locals>.test_objmode  sl    		!Aa Ay)QKA *
 H *)
 H  Hs.   	A  AA  
AA  A   
A.-A.r[  r\  )r5   r]  rF   r  r   s       @r"   test_objmode_output_type6TestTryExceptOtherControlFlow.test_objmode_output_type  sf    
	: 
		 
		 }-N .E  !	
	 .-s   A!!
A/c                    S n[         R                  " U5       H  nUR                  S:X  d  M    O   U R                  S5        [        R
                  " 0 UR                  5      nSnUR                  R                  5        HV  u  pVUR                  [        R                  5       H.  nSnUR                  (       d  M  XR                  S   ;   d  M,  SnM0     MX     U(       d  U R                  S5        g g )	Nc                  B     [         e! [          a    [        S5      ef = fr   )r   r   r   r!   r"   r	  MTestTryExceptOtherControlFlow.test_reraise_opcode_unreachable.<locals>.pyfunc  s&    * * ))*s    RERAISEz!expected RERAISE opcode not foundFz8Unreachable condition reached (op code RERAISE executed)r   Tz.expected RERAISE unreachable message not found)disget_instructionsopnamefailr   get_ir_of_code__code__blocksitems
find_instsr	   StaticRaiseexc_args)	r5   r	  instfunc_irfoundlblblkstmtr  s	            r"   test_reraise_opcode_unreachable=TestTryExceptOtherControlFlow.test_reraise_opcode_unreachable  s    
	*
 ((0D{{i' 1 II9:))"foo>,,.HCr~~6 Q===SMM!,<%< E 7 / IIFG r!   r   N)r   r   r   r   r   r   r   r   r   r]  ri  r  r    r   r!   r"   rR  rR    se    = 
    
$ 
    
2Hr!   rR  c                   ,    \ rS rSrS rS rS rS rSrg)TestTryExceptParforsi  c                     S nS/nU" U6 nU R                  [        SS9" U5      " U6 U5        U R                  [        SS9" U5      " U6 U5        g )Nc                 f    Sn[        U 5       H	  n US-  nM     U$ ! [         a	    US-  n M!  f = f)Nr   r:   r   r   ri   crj   s      r"   r1   >TestTryExceptParfors.test_try_in_prange_reduction.<locals>.udt
  sD    AAYFA 
 H ! FAs   00r   FparallelT)r4   r   r5   r1   r
  r  s       r"   test_try_in_prange_reduction1TestTryExceptParfors.test_try_in_prange_reduction  sW    	 tdu-c2D96Bt,S148&Ar!   c                    S nS/nU" U6 nU R                  [        SS9" U5      " U6 U5        [        R                  " SS9 n[        R                  " S[
        5        U R                  [        SS9" U5      " U6 U5        S S S 5        U R                  [        W5      S5        U R                  S	[        US
   5      5        g ! , (       d  f       NH= f)Nc                 Z    Sn [        U 5       H  nUS-  nM
     U$ ! [         a     gf = f)Nr   r:   r   r  r  s      r"   r1   CTestTryExceptParfors.test_try_outside_prange_reduction.<locals>.udt  s>    AAFA #
   s    
**r   Fr  T)recordalwaysr:   z5no transformation for parallel execution was possibler   )	r4   r   warningscatch_warningssimplefilterr   lenr   rD   )r5   r1   r
  r  ws        r"   !test_try_outside_prange_reduction6TestTryExceptParfors.test_try_outside_prange_reduction  s    	 tdu-c2D96B$$D1Q!!(,CDT405t<fE 2 	Q#M!A$i	!	 21s   >C
Cc                     S n[         R                  " S5      S/nU" U6 nU R                  [        SS9" U5      " U6 U5        U R                  [        SS9" U5      " U6 U5        g )Nc                     U R                  5       n[        U R                  5       H  n X1:X  a  [        eX   U-   X#'   M     U$ ! [         a    SX#'    M/  f = fNrB   copyr   sizer   r   arrr+   r>  rj   s       r"   r1   8TestTryExceptParfors.test_try_in_prange_map.<locals>.udt0  s\    ((*CCHH% v(( VaZCF	 & J !  CF s   AAAr      Fr  Tr   rf  assertPreciseEqualr   r  s       r"   test_try_in_prange_map+TestTryExceptParfors.test_try_in_prange_map/  b    		 		"q!de 4S 94 @&Id 3C 8$ ?Hr!   c                     S n[         R                  " S5      S/nU" U6 nU R                  [        SS9" U5      " U6 U5        U R                  [        SS9" U5      " U6 U5        g )Nc                     U R                  5       n [        U R                  5       H  nX1:X  a  [        eX   U-   X#'   M     U$ ! [         a	    SUW'    U$ f = fr  r  r  s       r"   r1   =TestTryExceptParfors.test_try_outside_prange_map.<locals>.udtA  sc    ((*C)Av(( VaZCF * J  AJs   0A AAr   r  Fr  Tr  r  s       r"   test_try_outside_prange_map0TestTryExceptParfors.test_try_outside_prange_map@  r  r!   r   N)	r   r   r   r   r  r  r  r  r    r   r!   r"   r  r    s    B !.I"Ir!   r  __main__)(r  ro  	itertoolsr   numpyr   numbar   r   r   r   
numba.corer   r	   numba.core.errorsr
   r   r   r   numba.tests.supportr   r   r   r   r   r   r   r   r   r   r   r   r$   r   r  r3  rR  r  r   mainr   r!   r"   <module>r     s     
   . . #   	i 	d
 d
ND&( D&NZ( Zz@
( @
F\HH \H~ II8 II IIX zMMO r!   