
    sh\                     j   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   " 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  \RL                  " 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_py313c                       \ rS rSrSrg)MyError    N)__name__
__module____qualname____firstlineno____static_attributes__r       o/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/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   zDTest the following pattern:

try:
    <body>
except:
    <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.   Tr/   r   assertEqual)selfr0   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.   r/   r   r;   r   )r*   resr+   s     r!   r0   3TestTryBareExcept.test_try_state_reset.<locals>.udt9   s5    a" AvaJ	s   
 #r   r<   r9   r/   r.   )r   assertRaisesr   r3   str	exception)r4   r0   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 )Nr9   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   )r4   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)rQ   )r*   yzr+   s      r!   r0   .TestTryBareExcept.test_nested_try.<locals>.udt^   sY    #J!H#J#J!H#Jc
ac
s   #  AA A  A*r9   r;   rL   )rW   rJ   rY   rK   r[   rM   rN   r   )rW   rJ   rY   rO   rZ   )rW   rJ   rY   rK   r[   rO   r\   )
rS   r   rB   r   r   r3   getvaluesplitrC   rD   )r4   r0   rE   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)NrW   rX   )rQ   range)r*   nir+   s      r!   r0   /TestTryBareExcept.test_loop_in_try.<locals>.udt   sJ    c
qA!Hva " Hc
Hs   '< < ArL      )rW   0123rM   rX   r9   )rW   rl   rm   rJ   rX   r   )rW   rl   rO   rm   rn   r;   )rS   r   r   r3   r`   ra   )r4   r0   rb   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)NrW   my_errorrX   rY   A  {   rP   r)   s    r!   r0   0TestTryBareExcept.test_raise_in_try.<locals>.udt   s9    c
!*--c
 c
s   (+ :TrW   rY   ru   FrX   rv   r   r   r3   r`   ra   r4   r0   rb   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   r9   CAUGHT   rD   )rQ   
ValueError)r*   foos    r!   r   -TestTryBareExcept.test_recursion.<locals>.foo   sD    1uAJ Av -- (Os   & 5
   r   )r   r   assertIsNoner3   r`   ra   )r4   rb   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      rD   r   )r   	ExceptionrQ   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   rx   )r4   r   rb   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)NrD   r   r   r   rQ   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   rx   r4   r   rb   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)NrD   r   r   r^   s    r!   r   9TestTryBareExcept.test_closure3.<locals>.foo.<locals>.bar  s%    $[11(OHs    r9   r;   rL   )mapr   s     r!   r   ,TestTryBareExcept.test_closure3.<locals>.foo
  s*      #3	232!A2333s   "r   r   r   rL   rx   r4   r   rb   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   rD   r   r   s    r!   r   9TestTryBareExcept.test_closure4.<locals>.foo.<locals>.bar  s    q5$[11r    r9   r;   rL   r   )r   rQ   r   s     r!   r   ,TestTryBareExcept.test_closure4.<locals>.foo  sC    
 #&sQ1aL#9:#9a#9::: hs   * %* * 9rA   r       )r9   r;   rL   r   )r   r   r3   r`   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choleskyrQ   )achols     r!   r   0TestTryBareExcept.test_real_problem.<locals>.foo4  s<     Ayy))!,hs	   8 A	r   rx   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)Nrk   r   CAUGHT1CAUGHT2CAUGHT3)rg   r   rQ   )rh   ri   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   r9   zCAUGHT%s)r   r   r3   r`   ra   rg   )r4   r   rb   ri   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   
rv   r2   )r4   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!   r0   6TestTryBareExcept.test_try_except_reraise.<locals>.udtp  s     ))s    4The re-raising of an exception is not yet supported.r   rB   r   assertInrC   rD   r4   r0   rE   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__r5   rF   rS   rc   rp   rz   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)NrW   321rX   rY   rZ   rQ   ZeroDivisionErrorr   r)   s    r!   r0   5TestTryExceptCaught.test_catch_exception.<locals>.udt  sD    c
+E22c
 #J  c
s   (6 AAT)rW   rY   rZ   FrW   rX   rZ   rx   )r4   r0   rb   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)NrW   rX   rv   rY   ru   rZ   r   )r*   rs     r!   r0   5TestTryExceptCaught.test_return_in_catch.<locals>.udt  sS    	c
++c

 #JH  c
s   %4 AATrW   rY   ru   Fr   rv   rx   ry   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)Nrv   ru   )r   r   )r*   r   es      r!   r0   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!   r0   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!   r0   >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)Nr9     )r   r]   s    r!   r0   7TestTryExceptCaught.test_division_operator.<locals>.udt  s-    A 1u  s    
r   r   r;   g      ?r2   r4   r0   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   r`   r3   format)r4   cfuncpyfuncargskwargsrb   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)NrW   rX   rY   rZ   r]   r[   Gr\   HIJr^   KMLONPQRrQ   r   r   r*   r]   r^   ps       r!   r0   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)r4   r0   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)
NrW   rX   rY   rZ   r[   r\   r  r  r  r  r  qs     r!   r0   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#  )r4   r0   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(  r/  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   Listrg   
IndexErrorappendr   )rh   raise_atlstri   s       r!   r0   6TestTryExceptRefct.test_list_direct_raise.<locals>.udte  sS    **,CqA}((JJqM " 
  
s   .A AAr   rk   r8  r   r3   r$  rg   )r4   r0   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'   )rg   r6  r7  )r9  rh   r8  ri   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   r5  r7  r   )rh   r8  r9  rB  s      r!   r0   8TestTryExceptRefct.test_list_indirect_raise.<locals>.udt  sF    **,CJJv* 
  
s   	4 AAr   rk   r;  rE  r<  )r4   r0   r=  rB  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)NrW   r   rX   fdarY   rZ   )r   r5  rQ   r7  r   )r9  s    r!   r0   <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   rB   r   assertRegexrC   rD   r   s      r!   test_incompatible_refinement/TestTryExceptRefct.test_incompatible_refinement  sX    	
	 

	 {+vE ,  !O	
 ,+r   r   N)r   r   r   r   r>  rG  rN  r   r   r    r!   r2  r2  c  s    5&@2
r    r2  c                   h    \ rS rSrS r\\\S 5       5       5       r\\\S 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'   )rg   r   r   )rh   r*   ri   s      r!   r0   5TestTryExceptOtherControlFlow.test_yield.<locals>.udt  s;     1Xv((G	 
 ! s   7&7
4747r   rk   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   rQ   objectr   r   r    r!   r0   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   rB   r
   r   rC   rD   )r4   r0   rE   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)Nrk   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.rZ  r[  )r4   r\  rE   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)	r4   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\  rh  r  r   r   r    r!   rQ  rQ    sU    = 
   
$ 
   
2Hr    rQ  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   r9   r   r   rh   cri   s      r!   r0   >TestTryExceptParfors.test_try_in_prange_reduction.<locals>.udt  sD    AAYFA 
 H ! FAs   00r   FparallelT)r3   r   r4   r0   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   r9   r   r  r  s      r!   r0   CTestTryExceptParfors.test_try_outside_prange_reduction.<locals>.udt  s>    AAFA #
   s    
**r   Fr  T)recordalwaysr9   z5no transformation for parallel execution was possibler   )	r3   r   warningscatch_warningssimplefilterr   lenr   rC   )r4   r0   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NrA   copyr   sizer   r   arrr*   r=  ri   s       r!   r0   8TestTryExceptParfors.test_try_in_prange_map.<locals>.udt.  s\    ((*CCHH% v(( VaZCF	 & J !  CF s   AAAr      Fr  Tr   re  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!   r0   =TestTryExceptParfors.test_try_outside_prange_map.<locals>.udt?  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  rn  	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  r2  rQ  r  r   mainr   r    r!   <module>r     s     
   . . #   	i 	d
 d
ND&( D&NZ( Zz@
( @
FZHH ZHz II8 II IIX zMMO r    