
     i                     t   S SK r S SKrS SKrS SKrS SKJrJr  S SKJ	r	J
r
Jr  S SKJrJr  S SKJr  S SKJr  S SK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  S SKJrJ r J!r!J"r"J#r#J$r$J%r%J&r&J'r'J(r(J)r)  S SK*J+r+  S SK,J-r-  S SK.r.S r/S r0S r1S r2S r3S r4S r5S r6S r7S r8S r9S r:\;" 5       r<S r=\R|                  r? " S S\ 5      r@ " S S\ 5      rA " S S \A5      rB " S! S"\A5      rCS# rDS$ rE " S% S&\\ 5      rFS' rGS( rH " S) S*\\ 5      rI " S+ S,\A5      rJ " S- S.\ 5      rK\LS/:X  a  \.R                  " 5         gg)0    N)find_setupwithswith_lifting)bypass_contextcall_contextobjmode_context)FunctionIdentityByteCode)Interpreter)errors)
cpu_target)
compile_irDEFAULT_FLAGS)njittypeofobjmodetypes)overload)
MemoryLeakTestCasecaptured_stdoutskip_unless_scipy
linux_onlystrace_supportedstraceexpected_failure_py311expected_failure_py312expected_failure_py313expected_failure_py314)	PYVERSION)jitclassc                 |    [         R                  " U 5      n[        US9n[        U5      nUR	                  U5      nU$ )N)func_id)r   from_functionr	   r
   	interpret)funcr"   bcinterpfunc_irs        S/mnt/rpi/venvs/whisper/lib/python3.13/site-packages/numba/tests/test_withlifting.pyget_func_irr*      s;    ,,T2G	'	"B!Fr"GN    c                      [        S5        [           [        S5        [        5         S S S 5        [        S5        g ! , (       d  f       N= f)NABCprintr   b r+   r)   lift1r4   $   s.    	#J	c
	 
 
#J 
s	   <
A
c                  <   Sn [        SU 5        Sn [           [        SU 5        U S-  n [        5         S S S 5        U S-  n [           [        SU 5        [        5         U S-  n S S S 5        U S-  n [        SU 5        g ! , (       d  f       NO= f! , (       d  f       N1= f)N   r-   r.   d   r/   
   Dr0   xs    r)   lift2r<   ,   s    	A	#qM	A	c1	S	 
 FA	c1		R 
 FA	#qM 

 
s   A<B<
B

Bc                  8   Sn Sn[        SX5        [           [        S5        [        5         U S-  n [           [        S5        US-  n[        5         S S S 5        S S S 5        U S-  n US-  n[        SX5        g ! , (       d  f       N-= f! , (       d  f       N6= f)Nr6   r7   r-   r.   r/   i r9   r0   r;   ys     r)   lift3r@   =   s~    	AA	#q	c
		S#JKAC 	 
 FAFA	#q ^	 
s"   !BA:B:
B	B
Bc                     Sn [        SU 5        U S-  n [           [        S5        [        5         U S-  n [        S5       H+  n[           [        S5        [        5         X-  n S S S 5        M-     S S S 5        [           [        S5        [        5         U (       a  U S-  n S S S 5        U S-  n [        SU 5        g ! , (       d  f       M  = f! , (       d  f       Nb= f! , (       d  f       NC= f)	Nr   r-   r8   r.   r6   r/   r9   E)r1   r   r2   ranger;   is     r)   lift4rF   N   s    	A	#qMGA	c
		QrAc
   	 
 
c
	GA	 

 FA	#qM   
 
s/   /C	B9#C="C9
CC
C
C*c                      [        S5        g )Nr-   r1   r3   r+   r)   lift5rI   d   s	    	#Jr+   c                      Sn [        SU 5        [           U S-  n S S S 5        [        SU 5        U $ ! , (       d  f       N= f)Nr6   r-   r.   r1   r   r:   s    r)   	liftcall1rL   h   s7    	A	#qM		Q 
	#qMH 
s   1
?c                      Sn [        SU 5        [           U S-  n S S S 5        [        SU 5        [           U S-  n S S S 5        [        SU 5        U $ ! , (       d  f       N<= f! , (       d  f       N-= f)Nr6   r-   r.   r8   r/   rK   r:   s    r)   	liftcall2rN   q   sY    	A	#qM		Q 
	#qM		R 
	#qMH 
 
s   AA"
A"
A0c                     Sn [        SU 5        [           U S:  a  U S-  n S S S 5        [        SU 5        [           [        S5       H  nX-  n M	     S S S 5        [        SU 5        U $ ! , (       d  f       NM= f! , (       d  f       N-= f)Nr6   r-   r   r.   r8   r/   )r1   r   rC   rD   s     r)   	liftcall3rP   }   sp    	A	#qM	q5FA 
 
#qM	rAFA  
 
#qMH 
 
s   A(A9(
A69
Bc                      [            [             S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = fN)r   r3   r+   r)   	liftcall4rS      s%    	  
\ 
s   2!2
/	2
A c                      [        S5       H;  n [           [        U 5        U S:X  a  [        S5         S S S 5          U $  S S S 5        M=     W $ ! , (       d  f       MP  = f)Nr8      r-   )rC   r   r1   )rE   s    r)   	liftcall5rV      sT    2Y!HAvc
	 \
 H  \  H \s   A
A	c                  F    [             S S S 5        g ! , (       d  f       g = frR   )undefined_global_varr3   r+   r)   lift_undefiendrY          	 
		   
 c                  F    [             S S S 5        g ! , (       d  f       g = frR   )bogus_contextmanagerr3   r+   r)   lift_invalidr^      rZ   r[   c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestWithFinding   c                 j    [        U5      n[        [        U5      S   5      nU R                  XB5        g Nr   )r*   lenr   assertEqual)selfr%   expect_countthe_ircts        r)   check_num_of_with!TestWithFinding.check_num_of_with   s.    T"(+,*r+   c                 ,    U R                  [        SS9  g Nr6   rg   )rj   r4   rf   s    r)   
test_lift1TestWithFinding.test_lift1       u15r+   c                 ,    U R                  [        SS9  g N   rn   )rj   r<   ro   s    r)   
test_lift2TestWithFinding.test_lift2   rr   r+   c                 ,    U R                  [        SS9  g rm   )rj   r@   ro   s    r)   
test_lift3TestWithFinding.test_lift3   rr   r+   c                 ,    U R                  [        SS9  g rt   )rj   rF   ro   s    r)   
test_lift4TestWithFinding.test_lift4   rr   r+   c                 ,    U R                  [        SS9  g )Nr   rn   )rj   rI   ro   s    r)   
test_lift5TestWithFinding.test_lift5   rr   r+   r3   N)__name__
__module____qualname____firstlineno__rj   rp   rv   ry   r|   r   __static_attributes__r3   r+   r)   r`   r`      s     +
66666r+   r`   c                   8   ^  \ rS rSrU 4S jrS rSS jrSrU =r$ )BaseTestWithLifting   c                    > [         [        U ]  5         [        R                  U l        [        R                  U l        [        U l	        g rR   )
superr   setUpr   typing_context	typingctxtarget_context	targetctxr   flags)rf   	__class__s    r)   r   BaseTestWithLifting.setUp   s2    !4.0#22#22"
r+   c                 r   [        U5      n[        X@R                  U R                  U R                  0 S9u  pVU R                  [        U5      U5        U R                  U5      n[        5        nUR                  5         S S S 5        U R                  WR                  5       U5        g ! , (       d  f       N/= fNlocals)r*   r   r   r   r   re   rd   r   r   entry_pointgetvalue)	rf   r%   rg   expected_stdoutrh   new_ir	extractedcresouts	            r)   check_extracted_with(BaseTestWithLifting.check_extracted_with   s    T"(NNDNNDJJ
 	Y6v&#  	9 s   .B((
B6c           
      b    U R                   nU R                  nU R                  n[        XEXX60 S9$ r   )r   r   r   r   )rf   rh   argsreturn_typer   r   r   s          r)   r   BaseTestWithLifting.compile_ir   s3    NN	NN	

)'r; 	;r+   )r   r   r   )r3   N)	r   r   r   r   r   r   r   r   __classcell__)r   s   @r)   r   r      s    #:; ;r+   r   c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestLiftByPass   c                 .    U R                  [        SSS9  g )Nr6   zA
C
rg   r   )r   r4   ro   s    r)   rp   TestLiftByPass.test_lift1   s    !!%a2: 	" 	<r+   c                 .    U R                  [        SSS9  g )Nru   zA 1
D 3
r   )r   r<   ro   s    r)   rv   TestLiftByPass.test_lift2   s    !!%a2> 	" 	@r+   c                 .    U R                  [        SSS9  g )Nr6   zA 1 100
D 2 101
r   )r   r@   ro   s    r)   ry   TestLiftByPass.test_lift3   s    !!%a2F 	" 	Hr+   c                 .    U R                  [        SSS9  g )Nru   z	A 0
E 11
r   )r   rF   ro   s    r)   r|   TestLiftByPass.test_lift4   s    !!%a2? 	" 	Ar+   c                 .    U R                  [        SSS9  g )Nr   zA
r   )r   rI   ro   s    r)   r   TestLiftByPass.test_lift5   s    !!%a27 	" 	9r+   r3   N)
r   r   r   r   rp   rv   ry   r|   r   r   r3   r+   r)   r   r      s    <@HA9r+   r   c                   `    \ rS rSrS rS rS rS rS r\	\
\\S 5       5       5       5       rSrg	)
TestLiftCall   c                 "   [        U5      n[        5        nU" 5         SSS5        [        5        nU" 5         SSS5        U R                  WR                  5       WR                  5       5        g! , (       d  f       NW= f! , (       d  f       NN= f)z2Ensure same semantic with non-jitted code
        N)r   r   re   r   )rf   r%   jittedgotexpects        r)   check_same_semantic TestLiftCall.check_same_semantic   sd     d#H  &F  	):;  s   A/B /
A= 
Bc                 X    U R                  [        SSS9  U R                  [        5        g )Nr6   zA 1
B 2
r   )r   rL   r   ro   s    r)   test_liftcall1TestLiftCall.test_liftcall1  s+    !!)!2> 	" 	@  +r+   c                 X    U R                  [        SSS9  U R                  [        5        g )Nru   zA 1
B 2
C 12
r   )r   rN   r   ro   s    r)   test_liftcall2TestLiftCall.test_liftcall2  +    !!)!2D 	" 	F  +r+   c                 X    U R                  [        SSS9  U R                  [        5        g )Nru   zA 1
B 2
C 47
r   )r   rP   r   ro   s    r)   test_liftcall3TestLiftCall.test_liftcall3  r   r+   c                 L   [         R                  [         R                  [         R                  [         R                  4nU R                  U5       n[        [        5      " 5         S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nz2compiler re-entrant to the same function signature)r   TypingErrorNumbaRuntimeErrorNumbaValueErrorCompilerErrorassertRaisesr   rS   assertInstr	exception)rf   acceptraisesmsgs       r)   test_liftcall4TestLiftCall.test_liftcall4  su    $$f&>&>((&*>*>@v&&O ' Dc3v//01 '&s   B
B#c                 X    U R                  [        SSS9  U R                  [        5        g )Nr6   z0
1
2
3
4
5
A
r   )r   rV   r   ro   s    r)   test_liftcall5TestLiftCall.test_liftcall5  s-    
 	!!)!2I 	" 	K  +r+   r3   N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r3   r+   r)   r   r      sG    
<,
,
,
2 ,    ,r+   r   c                    ^  U 4S jnU$ )Nc                    > U R                  [        R                  5       nT" U /UQ70 UD6  S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)NzDoes not support list typer   r   r   r   r   r   rf   r   kwargsr   fns       r)   core+expected_failure_for_list_arg.<locals>.core'  sV    v112ft%d%f% 32&**+	- 32   A
A*r3   r   r   s   ` r)   expected_failure_for_list_argr   &      -
 Kr+   c                    ^  U 4S jnU$ )Nc                    > U R                  [        R                  5       nT" U /UQ70 UD6  S S S 5        U R                  S[	        WR
                  5      5        g ! , (       d  f       N4= f)NzDoes not support function typer   r   s       r)   r   /expected_failure_for_function_arg.<locals>.core0  sV    v112ft%d%f% 36&**+	- 32r   r3   r   s   ` r)   !expected_failure_for_function_argr   /  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
 5       rS r\S 5       rS r\S 5       rS rS rS rS rS rS r\S 5       rS rS rS rS r\R<                  S 5       r\ S 5       r!S r"\#S 5       r$\%\&\'\(S 5       5       5       5       r)\R<                  S 5       r*S  r+S! r,S" r-S# r.S$ r/S% r0S& r1S' r2S( r3S) r4S* r5S+ r6S, r7\8S- 5       r9S. r:S/ r;S0 r<S1 r=S2 r>S3r?g4)5TestLiftObji8  c                 N    [         R                  " S[        R                  5        g Nerrorwarningssimplefilterr   NumbaWarningro   s    r)   r   TestLiftObj.setUp:      gv':':;r+   c                 .    [         R                  " 5         g rR   r   resetwarningsro   s    r)   tearDownTestLiftObj.tearDown=       r+   c                    [         R                  " U5      n[         R                  " U5      n[        U5      n[        5        nU" U6 nUR	                  5       nS S S 5        UR                  [        [        [        U5      5      5        [        5        nU" U6 n	UR	                  5       n
S S S 5        U R                  WW
5        U R                  WW	5        g ! , (       d  f       N= f! , (       d  f       ND= frR   )copydeepcopyr   r   r   compiletuplemapr   re   assertPreciseEqual)rf   pyfuncr   py_argsc_argscfuncstream
expect_res
expect_outgot_resgot_outs              r)   assert_equal_return_and_stdout*TestLiftObj.assert_equal_return_and_stdout@  s    --%t$V&)J*J 
 	eC/01&VnGoo'G  	W-
G4  s   CC&
C#&
C4c                 l   ^ S mU4S jnU4S jnU R                  US5        U R                  US5        g )Nc                 &    [        SSU S-  05        g )Nzival =ivalru   rH   )r  s    r)   bar0TestLiftObj.test_lift_objmode_basic.<locals>.barS  s    (VTQY/0r+   c                 p   > U S-  n [            T" U 5        S S S 5        U S-   $ ! , (       d  f       U S-   $ = fNr6   r   r  r  s    r)   foo0TestLiftObj.test_lift_objmode_basic.<locals>.fooV  s5    AID D	 !!8O !!8Os   	#
5c                    > U S-  n [         R                     T" U 5        S S S 5        U S-   $ ! , (       d  f       U S-   $ = fr  numbar   r  s    r)   foo_nonglobal:TestLiftObj.test_lift_objmode_basic.<locals>.foo_nonglobal\  s9    AIDD	 !8O !8Os   	-
?{   r  )rf   r  r  r  s      @r)   test_lift_objmode_basic#TestLiftObj.test_lift_objmode_basicR  s4    	1		 	++C5++M3?r+   c                 >   ^ S mU4S jnSnU R                  X5        g )Nc                 .    [        SU S-  05        U S-  n g )Narrru   rH   )r   s    r)   r  3TestLiftObj.test_lift_objmode_array_in.<locals>.barf  s    5#(#$1HCr+   c                    > [         R                  " U 5      R                  [         R                  5      n[           T" U5        S S S 5        US-   $ ! , (       d  f       US-   $ = fr  )nparangeastypeint64r   )nelemr   r  s     r)   r  3TestLiftObj.test_lift_objmode_array_in.<locals>.fook  sM    ))E"))"((3C C ! 7N ! 7Ns   	A
A#r8   r  )rf   r  r'  r  s      @r)   test_lift_objmode_array_in&TestLiftObj.test_lift_objmode_array_ine  s"    	
	 ++C7r+   c                 >   ^ S mU4S jnSnU R                  X5        g )Nc                     [        U 5        g rR   rH   r?   s    r)   r  <TestLiftObj.test_lift_objmode_define_new_unused.<locals>.barv  s	    !Hr+   c                    > [        5          SU -   n[        R                  " U5      nT" U5        S S S 5        U $ ! , (       d  f       U $ = fNru   )r   r#  r$  )r;   r?   ar  s      r)   r  <TestLiftObj.test_lift_objmode_define_new_unused.<locals>.fooy  sB     "EIIaLA # H	 #" Hs	   $:
A	r  r  )rf   r  argr  s      @r)   #test_lift_objmode_define_new_unused/TestLiftObj.test_lift_objmode_define_new_unusedu  s"    		 ++C5r+   c                 l   ^ S mU4S jnU4S jnSnU R                  X5        U R                  X#5        g )Nc                 "    [        U 5        SU -  $ r  rH   r:   s    r)   inverse<TestLiftObj.test_lift_objmode_return_simple.<locals>.inverse      !Hq5Lr+   c                 f   > [        SS9   T" U 5      nS S S 5        X4$ ! , (       d  f       U W4$ = fNfloat64r-  r  r;   r?   r8  s     r)   r  8TestLiftObj.test_lift_objmode_return_simple.<locals>.foo  s2     9-AJ .4K .-a4Ks   	
0c                 |   > [         R                  " SS9   T" U 5      nS S S 5        X4$ ! , (       d  f       U W4$ = fr<  r  r>  s     r)   r  BTestLiftObj.test_lift_objmode_return_simple.<locals>.foo_nonglobal  s6    +AJ ,4K ,+a4Ks   	*
;r  r  )rf   r  r  r3  r8  s       @r)   test_lift_objmode_return_simple+TestLiftObj.test_lift_objmode_return_simple  s5    		
	
 ++C5++M?r+   c                    ^ S mU4S jn[         R                  " SS[         R                  S9nU R                  X5        g )Nc                 "    [        U 5        SU -  $ r  rH   r:   s    r)   r8  ;TestLiftObj.test_lift_objmode_return_array.<locals>.inverse  r:  r+   c                    > [        SSS9   T" U 5      n[        US   5      nS S S 5        U WW4$ ! , (       d  f       N= f)N
float64[:]r&  )r?   zr   )r   int)r;   r?   rI  r8  s      r)   r  7TestLiftObj.test_lift_objmode_return_array.<locals>.foo  s>     <7;AJ!I < a7N <;s   0
>r6   r8   dtype)r#  r$  r=  r  )rf   r  r3  r8  s      @r)   test_lift_objmode_return_array*TestLiftObj.test_lift_objmode_return_array  s3    		 ii2RZZ0++C5r+   c                 4    S n/ SQnU R                  X5        g )Nc                     [        SS9   [        U 5        SU S'   [        U 5        / SQU -   n[        R                  " U Vs/ s H  nSU-  PM
     sn5      nS S S 5        X4$ s  snf ! , (       d  f       U W4$ = f)NrH  r-     r   r6   ru      r6   )r   r1   r#  asarray)r;   r?   rE   s      r)   r  5TestLiftObj.test_lift_objmode_using_list.<locals>.foo  sr     <0a!aMJJq1q!Aq12 1 4K  2 10 a4Ks   7A'A"
A'"A''
A8rS  r  rf   r  r3  s      r)   test_lift_objmode_using_list(TestLiftObj.test_lift_objmode_using_list  s    	 ++C5r+   c                 0    S nSnU R                  X5        g )Nc                    [        U 5       H  n M     U (       a  U S-  n [        SS9   [        U 5        U S-  n [        U 5        [        U 5       H  nX-  n [        U 5        M     S S S 5        U $ ! , (       d  f       U $ = f)Nr6   intpr:   )rC   r   r1   rD   s     r)   r  4TestLiftObj.test_lift_objmode_var_redef.<locals>.foo  sv    1X Q 6*aQaqAFA!H "	 + H +* Hs   =A//
A>r  r  rW  s      r)   test_lift_objmode_var_redef'TestLiftObj.test_lift_objmode_var_redef  s    	 ++C5r+   c                 4    S nU R                  U/ SQS5        g )Nc                     XS'   [        5          [        U 5        S S S 5        [        5          SU-  U S'   [        U 5        S S S 5        U $ ! , (       d  f       N6= f! , (       d  f       U $ = fr0  r   r1   r;   rI  s     r)   r  =TestLiftObj.test_case01_mutate_list_ahead_of_ctx.<locals>.foo  \    aD "a # !"1u!a #
 H #" #"
 H   AA
A
A+rS     r  rf   r  s     r)   $test_case01_mutate_list_ahead_of_ctx0TestLiftObj.test_case01_mutate_list_ahead_of_ctx  s    	 	++CB?r+   c                 ^    S n[         R                  " / SQ5      nU R                  XS5        g )Nc                     XS'   [        5          [        U 5        S S S 5        [        5          SU-  U S'   [        U 5        S S S 5        U $ ! , (       d  f       N6= f! , (       d  f       U $ = fr0  rb  rc  s     r)   r  >TestLiftObj.test_case02_mutate_array_ahead_of_ctx.<locals>.foo  re  rf  rS  rg  r#  arrayr  rf   r  r;   s      r)   %test_case02_mutate_array_ahead_of_ctx1TestLiftObj.test_case02_mutate_array_ahead_of_ctx  s'    	 HHY++CB7r+   c                 .    S nU R                  US5        g )Nc                     [        SS9   / SQnS S S 5        [        5          SWS'   S S S 5        U$ ! , (       d  f       N(= f! , (       d  f       W$ = fNzList(int64)r-  rS  r8   ru   r  r>   s     r)   r  6TestLiftObj.test_case03_create_and_mutate.<locals>.foo  B     =1 2 "! #H	 21""H   1A
?
Ar6   r  rh  s     r)   test_case03_create_and_mutate)TestLiftObj.test_case03_create_and_mutate  s    	 	++C3r+   c                    S n[         R                  " / SQ5      n[        U5      nU R                  [        R
                  5       nU" U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 d    [        SS9   [        U 5        S S S 5        U $ ! , (       d  f       U $ = f)NrH  krb  r:   s    r)   r  =TestLiftObj.test_case04_bogus_variable_type_info.<locals>.foo  s)     <0a 1H 10H    
/rS  z1Invalid type annotation on non-outgoing variables)	r#  ro  r   r   r   r   r   r   r   rf   r  r;   cfoor   s        r)   $test_case04_bogus_variable_type_info0TestLiftObj.test_case04_bogus_variable_type_info  sh    	 HHYCyv112fG 3?  !	 32   	A==
Bc                    S n[         R                  " / SQ5      n[        U5      nU R                  [        5       nU" U5      nS S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 X    [        SS9   U S-   nS S S 5        U$ ! , (       d  f       W$ = f)NrH  rI  y              ?r  rc  s     r)   r  4TestLiftObj.test_case05_bogus_type_info.<locals>.foo  s-     !<0G 1H 10H   
)rS  zXcan't unbox array from PyObject into native value.  The object maybe of a different type)r#  ro  r   r   	TypeErrorr   r   r   )rf   r  r;   r  r   r   s         r)   test_case05_bogus_type_info'TestLiftObj.test_case05_bogus_type_info  sf    	 HHYCyy)Vq'C *6  !	
 *)   	A33
Bc                     S nU R                  [        R                  5       n[        U5      " S5        S S S 5        SnU R	                  [        WR                  5      U5        g ! , (       d  f       N6= f)Nc                     [        5          [        5          [        U 5        S S S 5        S S S 5        U $ ! , (       d  f       N= f! , (       d  f       U $ = frR   rb  r:   s    r)   r  3TestLiftObj.test_case06_double_objmode.<locals>.foo  sA     !"(*a + # H +* #" Hs   A4A
A	A
Ar  z@During: resolving callee type: type\(ObjModeLiftedWith\(<.*>\)\))r   r   r   r   assertRegexr   r   )rf   r  r   pats       r)   test_case06_double_objmode&TestLiftObj.test_case06_double_objmode  sZ    	 v112fIcN 34V--.4 32s   A%%
A3c                 D   S n[         R                  " / SQ5      n[        U5      nU R                  [        R
                  5       nU" U5        S S S 5        [        WR                  5      nU R                  SU5        U R                  SU5        g ! , (       d  f       NH= f)Nc                 `    [        5          SU 0nSnS S S 5        U WW4$ ! , (       d  f       N= f)Nr1  rT  r  )r;   tus      r)   r  6TestLiftObj.test_case07_mystery_key_error.<locals>.foo)  s1     "!H # a7N #"s   
-rS  z;Missing type annotation on outgoing variable(s): ['t', 'u']z9Example code: with objmode(t='<add_type_as_string_here>'))	r#  ro  r   r   r   r   r   r   r   )rf   r  r;   r  r   exstrs         r)   test_case07_mystery_key_error)TestLiftObj.test_case07_mystery_key_error'  s    	
 HHYCyv112fG 3 F$$% #	 	 8	 32s   	B
Bc                 $  ^ [        5       mU4S jn[        R                  " / SQ5      n[        U5      nU R	                  [
        5       nU" U5        S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nc                    > [        [        U 5      5       H8  n[        5          [        U5      nX   nUTU'   [	        TS   5        S S S 5        M:     U $ ! , (       d  f       MM  = f)N2)rC   rd   r   r   r1   )r;   rE   r~  vds       r)   r  8TestLiftObj.test_case08_raise_from_external.<locals>.fooA  sW    3q6]$&AAAAaD!C&M	 '& # H '&s   #A
A#	rS  z'2')	dictr#  ro  r   r   KeyErrorre   r   r   )rf   r  r;   r  r   r  s        @r)   test_case08_raise_from_external+TestLiftObj.test_case08_raise_from_external<  sj     F	 HHYCyx(FG )V--.6 )(s   
	B
Bc                    S n[         R                  " / SQ5      n[        U5      nU R                  [        R
                  5       nU" U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 P    [        5          [        5       e! , (       d  f       U $ = frR   )r   
ValueErrorr:   s    r)   r  3TestLiftObj.test_case09_explicit_raise.<locals>.fooQ  s     " l" #"Hs   
%rS  zBunsupported control flow due to raise statements inside with block)	r#  ro  r   r   r   r   r   r   r   r  s        r)   test_case09_explicit_raise&TestLiftObj.test_case09_explicit_raiseP  sj    	
 HHYCyv334G 5  !	
 54r  c                 \    S n[         R                  " / SQ5      nU R                  X5        g )Nc                     [        SS9   / SQnS S S 5        [        5          SWS'   S S S 5        U$ ! , (       d  f       N(= f! , (       d  f       W$ = fru  r  r>   s     r)   r  ;TestLiftObj.test_case10_mutate_across_contexts.<locals>.fooc  rw  rx  rS  rn  rp  s      r)   "test_case10_mutate_across_contexts.TestLiftObj.test_case10_mutate_across_contexts`  s%    	 HHY++C3r+   c                 \    S n[         R                  " / SQ5      nU R                  X5        g )Nc                     [        SS9   [        R                  " / SQSS9nS S S 5        [        5          SWS'   S S S 5        U$ ! , (       d  f       N(= f! , (       d  f       W$ = f)Nint64[:]r-  rS  r&  rL  r8   ru   )r   r#  rU  r>   s     r)   r  ATestLiftObj.test_case10_mutate_array_across_contexts.<locals>.fooo  sQ     :.JJy8 / "! # H /."" Hs   AA
A
A$rS  rn  rp  s      r)   (test_case10_mutate_array_across_contexts4TestLiftObj.test_case10_mutate_array_across_contextsm  s%    	 HHY++C3r+   c                    S n[         R                  " / SQ5      n[        U5      nU R                  [        5       nU" U5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 V    [        5          S nS S S 5        U $ ! , (       d  f       U $ = f)Nc                     U S-   $ r  r3   r-  s    r)   r  LTestLiftObj.test_case11_define_function_in_context.<locals>.foo.<locals>.bar~  s    q5Lr+   r  )r;   r  s     r)   r  ?TestLiftObj.test_case11_define_function_in_context.<locals>.foo|  s)     "! # H #" Hs   
(rS  z global name 'bar' is not defined)r#  ro  r   r   	NameErrorr   r   r   r  s        r)   &test_case11_define_function_in_context2TestLiftObj.test_case11_define_function_in_contextz  sb    	 HHYCyy)VG *.  !	
 *)r  c                 j   ^ S mU4S jn[         R                  " / SQ5      nU R                  X5        g )Nc                     U S-   $ r  r3   r-  s    r)   r  >TestLiftObj.test_case12_njit_inside_a_objmode_ctx.<locals>.bar  s    q5Lr+   c                    > [        SS9   [        T5      " U 5      R                  S5      nS S S 5        X-   $ ! , (       d  f       U W-   $ = f)Nr  r-  r&  )r   r   r%  r;   r?   r  s     r)   r  >TestLiftObj.test_case12_njit_inside_a_objmode_ctx.<locals>.foo  sA     :.IaL''0 /5L /.q5Ls	   !8
A
rS  rn  )rf   r  r;   r  s      @r)   %test_case12_njit_inside_a_objmode_ctx1TestLiftObj.test_case12_njit_inside_a_objmode_ctx  s+    		
 HHY++C3r+   c                     S nU" [         R                  " / SQ5      5      n[         R                  R                  [         R                  " / SQ5      U5        g )Nc                 X    [        SS9   U S-  n U sS S S 5        $ ! , (       d  f       g = f)Nr  r:   r6   r  r:   s    r)   r  CTestLiftObj.test_case14_return_direct_from_objmode_ctx.<locals>.foo  s"     :.Q /..s   
)rS  )ru   rT  rR  )r#  ro  testingassert_array_equal)rf   r  results      r)   *test_case14_return_direct_from_objmode_ctx6TestLiftObj.test_case14_return_direct_from_objmode_ctx  s9    	
 RXXi()


%%bhhy&96Br+   c                 \    S n[         R                  " / SQ5      nU R                  X5        g )Nc                 *   ^ SmU4S jnU" U 5      S-   $ )Nr8   c                 l   > [        SS9   [        U 5        U T-   sS S S 5        $ ! , (       d  f       g = f)Nr  r:   rb  )r;   js    r)   r  HTestLiftObj.test_case15_close_over_objmode_ctx.<locals>.foo.<locals>.bar  s%    $z2!Hq5 322s   %
3ru   r3   )r;   r  r  s     @r)   r  ;TestLiftObj.test_case15_close_over_objmode_ctx.<locals>.foo  s    A! q6A:r+   rS  rn  rp  s      r)   "test_case15_close_over_objmode_ctx.TestLiftObj.test_case15_close_over_objmode_ctx  s%    	 HHY++C3r+   c                 p   ^ SSK Jm  U4S jn[        R                  " / SQ5      nU R	                  X5        g )Nr   )sparsec                    > [        SS9   [        U 5        TR                  U 5      n[        R                  " US   5      nS S S 5        U$ ! , (       d  f       W$ = f)Nr&  r}  )r   r   )r   r1   
csr_matrixr#  r&  )r;   spxr~  sps      r)   r  >TestLiftObj.test_case16_scipy_call_in_objmode_ctx.<locals>.foo  sP     7+ammA& HHSY' , H ,+ Hs   6A
ArS  )scipyr  r#  ro  r  )rf   r  r;   r  s      @r)   %test_case16_scipy_call_in_objmode_ctx1TestLiftObj.test_case16_scipy_call_in_objmode_ctx  s)    &	 HHY++C3r+   c                 r   ^^ SS K mUU4S jm[        R                  " / SQ5      nU R                  TU5        g )Nr   c                 p   > [        5          TR                  T5        S S S 5        g ! , (       d  f       g = frR   )r   dis)r;   r  r  s    r)   r  7TestLiftObj.test_case17_print_own_bytecode.<locals>.foo  s      " #""s   '
5rS  )r  r#  ro  r  )rf   r;   r  r  s     @@r)   test_case17_print_own_bytecode*TestLiftObj.test_case17_print_own_bytecode  s+    	 HHY++C3r+   c                 v    S n[         R                  " / SQ5      n[        S 5      nU R                  XU5        g )Nc                 b    [        5          U " US   5        S S S 5        g ! , (       d  f       g = frc   r  )r%   r;   s     r)   r  CTestLiftObj.test_case18_njitfunc_passed_to_objmode_ctx.<locals>.foo  s     "QqT
 #""s    
.rS  c                     U S-   $ )NrU   r3   r  s    r)   <lambda>HTestLiftObj.test_case18_njitfunc_passed_to_objmode_ctx.<locals>.<lambda>  s    AEr+   )r#  ro  r   r  )rf   r  r;   r   s       r)   *test_case18_njitfunc_passed_to_objmode_ctx6TestLiftObj.test_case18_njitfunc_passed_to_objmode_ctx  s1    	 HHY/"++CQ7r+   c                 D  ^ U4S jmU R                  [        R                  [        R                  45       n[	        T5      nU" [
        R                  " / SQ5      5        S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nc                    > [        5          U S:X  a
   S S S 5        g S S S 5        T" U S-
  5      nU$ ! , (       d  f       N= f)Nr      r6   r  )r;   retr  s     r)   r  .TestLiftObj.test_case19_recursion.<locals>.foo  s@     "6 #" # a!e*CJ	 #"s	   3
ArS  zUntyped global name 'foo')
r   r   r   r   r   r#  ro  r   r   r   )rf   r   r  r   r  s       @r)   test_case19_recursion!TestLiftObj.test_case19_recursion  su    
	  2 2F4H4HIJf9D)$% K *c3v//01	 KJs   *B
Bc                 \    S n[         R                  " / SQ5      nU R                  X5        g )Nc                    [         R                  R                  S5        [         R                  R                  5       n[	        SS9   [         R                  R                  5       nS S S 5        U W-   U-   $ ! , (       d  f       N= fNr   r=  r  r#  randomseedrandr   r;   r?   rI  s      r)   r  1TestLiftObj.test_case20_rng_works_ok.<locals>.foo  sX    IINN1		 A 9-IINN$ . q519 .-s   A66
BrS  rn  rp  s      r)   test_case20_rng_works_ok$TestLiftObj.test_case20_rng_works_ok  s%    	 HHY++C3r+   c                 \    S n[         R                  " / SQ5      nU R                  X5        g )Nc                 L   [         R                  R                  S5        [         R                  R                  5       n[	        SS9   [         R                  R                  S5        [         R                  R                  5       nS S S 5        U W-   U-   $ ! , (       d  f       N= fr  r  r  s      r)   r  6TestLiftObj.test_case21_rng_seed_works_ok.<locals>.foo  sh    IINN1		 A 9-		q!IINN$ . q519	 .-s   >B
B#rS  rn  rp  s      r)   test_case21_rng_seed_works_ok)TestLiftObj.test_case21_rng_seed_works_ok  s%    	 HHY++C3r+   c                    ^ S m[         U4S j5       nU R                  U" 5       UR                  5       5        U R                  [        [
        5        g )Nc                 n    [         R                  " [        [        U R	                  5       5      5      5      $ rR   )r#  rU  listreversedtolistr:   s    r)   r  'TestLiftObj.test_example01.<locals>.bar  s!    ::d8AHHJ#7899r+   c                     > [         R                  " S5      n [        SS9   U T" U 5      -   nS S S 5        U$ ! , (       d  f       W$ = f)NrU   zintp[:]r-  )r#  r$  r   r  s     r)   r  'TestLiftObj.test_example01.<locals>.foo  sA    		!A9%AJ & H &% Hs	   7
A)r   r   py_funcassertIsr   r   )rf   r  r  s     @r)   test_example01TestLiftObj.test_example01   sD    	: 
	 
	 	s{{}5g/r+   c                    ^ S m[        T5      S 5       n[        R                  U4S j5       nU R                  U" 5       S5        g )Nc                     g rR   r3   )ss    r)   r  1TestLiftObj.test_objmode_in_overload.<locals>.foo      r+   c                     S nU$ )Nc                 X    [        SS9   U S-   nS S S 5        U$ ! , (       d  f       W$ = f)Nr\  r   rT  r   )r  r   s     r)   implHTestLiftObj.test_objmode_in_overload.<locals>.foo_overload.<locals>.impl  s+    (a%C )
 )(
r  r3   )r  r  s     r)   foo_overload:TestLiftObj.test_objmode_in_overload.<locals>.foo_overload  s     Kr+   c                     > T " S5      $ r  r3   r  s   r)   f/TestLiftObj.test_objmode_in_overload.<locals>.f  s    q6Mr+   rR  )r   r  r   re   )rf   r  r#  r  s      @r)   test_objmode_in_overload$TestLiftObj.test_objmode_in_overload  sL    	 
#	 
	 
	 
	 	e$r+   c                 z    [         S 5       nU" 5       nU R                  U[        5        U R                  US5        g )Nc                  Z    [        [        S9   Sn S S S 5        U $ ! , (       d  f       W $ = fNval皙(@)r   gv_typer*  s    r)   
global_var8TestLiftObj.test_objmode_gv_variable.<locals>.global_var#  s'    W% &J &%J   
*   )r   assertIsInstancerJ  re   )rf   r.  r  s      r)   test_objmode_gv_variable$TestLiftObj.test_objmode_gv_variable"  s=    		 
	
 lc3'b!r+   c                     [         S 5       nU R                  [        R                  S5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  Z    [        [        S9   Sn S S S 5        U $ ! , (       d  f       W $ = f)Nr*  r  )r   gv_type2r*  s    r)   r.  >TestLiftObj.test_objmode_gv_variable_error.<locals>.global_var/  s'    X& 'J '&Jr0  zHError handling objmode argument 'val'. Global 'gv_type2' is not defined.r   assertRaisesRegexr   r   )rf   r.  s     r)   test_objmode_gv_variable_error*TestLiftObj.test_objmode_gv_variable_error.  sI    		 
	
 ##  2

 L
 
 
	   >
Ac                    [         S 5       n[         S 5       nX4 HS  nU R                  [        U5      S9   U" 5       nU R                  U[        5        U R                  US5        S S S 5        MU     g ! , (       d  f       Mg  = f)Nc                  n    [        [        R                  S9   Sn S S S 5        U $ ! , (       d  f       W $ = fr)  )r   r   r\  r*  s    r)   modattr16TestLiftObj.test_objmode_gv_mod_attr.<locals>.modattr1=  s+    UZZ( )J )(J   %
4c                      [        [        R                  R                  S9   Sn S S S 5        U $ ! , (       d  f       W $ = fr)  )r   r  r   r\  r*  s    r)   modattr26TestLiftObj.test_objmode_gv_mod_attr.<locals>.modattr2C  s1    U[[--. /J /.Js   /
>)r   r1  )r   subTestr   r2  rJ  re   )rf   r@  rD  r   r  s        r)   test_objmode_gv_mod_attr$TestLiftObj.test_objmode_gv_mod_attr<  s    		 
	
 
	 
	
 &BR)d%%c3/  b)	 *) '))s   0A44
B	c                     [         S 5       nU R                  [        R                  S5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  n    [        [        R                  S9   Sn S S S 5        U $ ! , (       d  f       W $ = fr)  )r   r   THIS_DOES_NOT_EXISTr*  s    r)   moderror<TestLiftObj.test_objmode_gv_mod_attr_error.<locals>.moderrorQ  s-    U667 8J 87JrB  zQError handling objmode argument 'val'. Getattr cannot be resolved at compile-timer9  rf   rL  s     r)   test_objmode_gv_mod_attr_error*TestLiftObj.test_objmode_gv_mod_attr_errorP  sI    		 
	 ##  :

 J
 
 
r=  c                     [         S 5       nU R                  [        R                  S5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      [        [        R                  [        R                  [        R                  S9   Sn SnSnS S S 5        [
        $ ! , (       d  f       [
        $ = f)Nv1v2v3r,  )r   r   r\  rK  float32r+  rS  s      r)   rL  ETestLiftObj.test_objmode_gv_mod_attr_error_multiple.<locals>.moderror^  sL    EJJ5+D+D!MM+	+
 J+ +
 Js   A
AzPError handling objmode argument 'v2'. Getattr cannot be resolved at compile-timer9  rN  s     r)   'test_objmode_gv_mod_attr_error_multiple3TestLiftObj.test_objmode_gv_mod_attr_error_multiple]  sI    		 
	 ##  :

 J
 
 
r=  c                    ^ S m[        T5      S 5       n[        U4S j5       nU R                  U" 5       [        R                  " S5      R                  [        R                  5      5        g )Nc                      g rR   r3   r3   r+   r)   r  >TestLiftObj.test_objmode_closure_type_in_overload.<locals>.foon  r  r+   c                  :   ^ [         R                  S S  mU4S jn U $ )Nc                     > [        TS9   [        R                  " S5      R                  [        R                  5      n S S S 5        U $ ! , (       d  f       W $ = fNr  r8   r   r#  r$  r%  r=  r   	shrubberys    r)   r  UTestLiftObj.test_objmode_closure_type_in_overload.<locals>.foo_overload.<locals>.implt  ?    +))B-..rzz:C ,
 ,+
   4A		
Ar   r=  r  rc  s    @r)   r  GTestLiftObj.test_objmode_closure_type_in_overload.<locals>.foo_overloadq  s    a(I Kr+   c                     > T " 5       $ rR   r3   r"  s   r)   r  >TestLiftObj.test_objmode_closure_type_in_overload.<locals>.barz  
    5Lr+   r8   )r   r   r   r#  r$  r%  r=  rf   r  r  r  s      @r)   %test_objmode_closure_type_in_overload1TestLiftObj.test_objmode_closure_type_in_overloadm  s_    	 
#	 
	 
	 
	 	ryy}';';BJJ'GHr+   c                    ^ S m[        T5      S 5       n[        U4S j5       nU R                  [        R                  S5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                      g rR   r3   r3   r+   r)   r  DTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo  r  r+   c                  <   ^ [         R                  S S  mU4S jn @U $ )Nc                     > [        TS9   [        R                  " S5      R                  [        R                  5      n S S S 5        U $ ! , (       d  f       W $ = fr`  ra  rb  s    r)   r  [TestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo_overload.<locals>.impl  re  rf  rg  rh  s    @r)   r  MTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.foo_overload  s     a(I Kr+   c                     > T " 5       $ rR   r3   r"  s   r)   r  DTestLiftObj.test_objmode_closure_type_in_overload_error.<locals>.bar  rl  r+   zIError handling objmode argument 'out'. Freevar 'shrubbery' is not defined)r   r   r:  r   r   rm  s      @r)   +test_objmode_closure_type_in_overload_error7TestLiftObj.test_objmode_closure_type_in_overload_error  si    	 
#		 
		 
	 
	 ##2

 E
 
 
s   A
A$c                     [         S 5       nU R                  [        R                  S5         U" 5         S S S 5        g ! , (       d  f       g = f)Nc                  b    [        SS9   Sn S S S 5        [        $ ! , (       d  f       [        $ = f)Nru   )badr6   )r   r+  r  s    r)   rL  6TestLiftObj.test_objmode_invalid_use.<locals>.moderror  s'    U# $J $#Js   
.zError handling objmode argument 'bad'. The value must be a compile-time constant either as a non-local variable or a getattr expression that refers to a Numba type.r9  rN  s     r)   test_objmode_invalid_use$TestLiftObj.test_objmode_invalid_use  sI    		 
	 ##  '
 J
 
 
r=  c                 ,  ^ [         R                  S S  m[        U4S j5       nU" 5       u  p#nU R                  US5        U R                  US5        U R                  U[        R
                  " S5      R                  [        R                  5      5        g )Nc                     > [        S[        TS9   Sn U n[        R                  " S5      R	                  [        R
                  5      nS S S 5        W WW4$ ! , (       d  f       N= f)Nr=  )t1t2t3    :(ArU   )r   r-  r#  r$  r%  int32)r  r  r  array_tys      r)   r  5TestLiftObj.test_objmode_multi_type_args.<locals>.foo  sU    
 I'h?YYq\((2 @ r2:	 @?s   8A
A$r  i  rU   )r   r  r   r   r#  r$  r%  )rf   r  r  r  r  r  s        @r)   test_objmode_multi_type_args(TestLiftObj.test_objmode_multi_type_args  sv    ;;q>		 
	 U
H-F+BIIaL$7$7$ABr+   c                   ^^^	 S[         R                  4S[         R                  S S  4/n[        U5       " S S[        5      5       mSnT" U5      m	S m[        T5      UU	4S j5       n[        U4S j5       nU" 5       nU R                  UT5        U R                  UR                  S	S
5      S5        [        R                  " S[        R                  S9S
-   nU R                  UR                  U5        g )Nvaluero  c                   @    \ rS rSrS r\S 5       rS r\S 5       r	Sr
g).TestLiftObj.test_objmode_jitclass.<locals>.Bagi  c                 `    Xl         [        R                  " U[        R                  S9U l        g )NrL  )r  r#  zerosrW  ro  )rf   r  s     r)   __init__7TestLiftObj.test_objmode_jitclass.<locals>.Bag.__init__  s    "
XXe2::>
r+   c                 .    U R                   R                  $ rR   )ro  sizero   s    r)   r  3TestLiftObj.test_objmode_jitclass.<locals>.Bag.size  s    zz&r+   c                     [        U R                  5       H  nU R                  U==   U-  ss'   M     U R                  $ rR   )rC   r  ro  )rf   r+  rE   s      r)   	increment8TestLiftObj.test_objmode_jitclass.<locals>.Bag.increment  s1    tyy)AJJqMS(M *zz!r+   c                 
    X-   $ rR   r3   r>   s     r)   add2TestLiftObj.test_objmode_jitclass.<locals>.Bag.add  s	    ur+   )ro  r  N)r   r   r   r   r  propertyr  r  staticmethodr  r   r3   r+   r)   Bagr    s4    ? ' '"
  r+   r     c                      g rR   r3   r3   r+   r)   r  .TestLiftObj.test_objmode_jitclass.<locals>.foo  r  r+   c                  0   >^ TR                   mUU4S jn U $ )Nc                     > [        TS9   T" S5      n U R                  S5        S S S 5        U $ ! , (       d  f       W $ = f)Nr  r  rT  )r   r  )r   r  rc  s    r)   r  ETestLiftObj.test_objmode_jitclass.<locals>.foo_overload.<locals>.impl  s<    +c(CMM!$ , 
 ,+ 
s   /
>)_numba_type_)r  rc  r  mybags    @r)   r  7TestLiftObj.test_objmode_jitclass.<locals>.foo_overload  s    **I
 Kr+   c                     > T " 5       $ rR   r3   r"  s   r)   r  .TestLiftObj.test_objmode_jitclass.<locals>.bar  rl  r+   ru   rT  rU   r  rL  )r   r  rW  r    objectr   r   r2  re   r  r#  r  r   ro  )
rf   specnr  r  rI  	exp_arrayr  r  r  s
          @@@r)   test_objmode_jitclass!TestLiftObj.test_objmode_jitclass  s    ekk"emmA&'

 
$	& 	 
	$ A	 
#	 
	 
	 
	 Ea%q!e,HHS

3a7	3r+   c                 X    [        SS9   U S-  nS S S 5        U$ ! , (       d  f       W$ = fNr=  outputr8   r  r;   r  s     r)   case_objmode_cacheTestLiftObj.case_objmode_cache  s+    I&VF ' '&r  c                   ^ [        / SQ5      m[        U4S j5       nU R                  [        R                  5       nU" 5         S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)Nr6   ru   rT  rR  rU   c                  X   > [        TS9   / SQn S S S 5        U $ ! , (       d  f       W $ = f)Nr  r  r  )r   ret_types    r)   test26TestLiftObj.test_objmode_reflected_list.<locals>.test2  s(    X&% 'J '&J   
)zObjmode context failed. Argument 'out' is declared as an unsupported type: reflected list\(int(32|64)\)<iv=None>. Reflected types are not supported.r   r   r   r   r   r  r   r   rf   r  r   r  s      @r)   test_objmode_reflected_list'TestLiftObj.test_objmode_reflected_list  sk    /*		 
	
 v334G 5  !3	
 54   A33
Bc                   ^ [        1 Sk5      m[        U4S j5       nU R                  [        R                  5       nU" 5         S S S 5        U R                  [        WR                  5      S5        g ! , (       d  f       N4= f)N   r6   ru   rT  rR  rU   c                  X   > [        TS9   1 Skn S S S 5        U $ ! , (       d  f       W $ = f)N)r  r  r  )r  r  s    r)   r  5TestLiftObj.test_objmode_reflected_set.<locals>.test2
  s(    )( *M *)Mr  zObjmode context failed. Argument 'result' is declared as an unsupported type: reflected set\(int(32|64)\). Reflected types are not supported.r  r  s      @r)   test_objmode_reflected_set&TestLiftObj.test_objmode_reflected_set  sk    /*		 
	
 v334G 5  !3	
 54r  c                 @  ^ [         R                  " [         R                  [         R                  5      m[        U4S j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                  Z   > [        TS9   SSS.n S S S 5        U $ ! , (       d  f       W $ = f)Nresr6   ru   )r-   r.   r  r  r  s    r)   test42TestLiftObj.test_objmode_typed_dict.<locals>.test4  s-    X&A& 'J '&Js   
*zFcan't unbox a <class 'dict'> as a <class 'numba.typed.typeddict.Dict'>)
r   DictTypeunicode_typer&  r   r   r  r   r   r   rf   r  r   r  s      @r)   test_objmode_typed_dict#TestLiftObj.test_objmode_typed_dict  ss    >>%"4"4ekkB		 
	
 y)VG *9  !	
 *)s   B
Bc                 "  ^ [         R                  " [         R                  5      m[        U4S j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                  X   > [        TS9   SS/n S S S 5        U $ ! , (       d  f       W $ = f)Nr  r6   ru   r  r  s    r)   r  2TestLiftObj.test_objmode_typed_list.<locals>.test4,  s,    X&!f 'J '&Jr  zLcan't unbox a <class 'list'> as a (<class ')?numba.typed.typedlist.List('>)?)	r   ListTyper&  r   r   r  r  r   r   r  s      @r)   test_objmode_typed_list#TestLiftObj.test_objmode_typed_list*  sn    >>%++.		 
	
 y)VG *  !@	
 *)s   
B  
Bc                     [         S 5       n[        R                  " S[        R                  5      R	                  S5      nUR                  U5      nU" U5      nU R                  X45        g )Nc                     [         R                  " SS9   U R                  S5      nS S S 5        U$ ! , (       d  f       W$ = f)Nz
int64[::1]r-  r&  )r  r   viewr>   s     r)   r  1TestLiftObj.test_objmode_use_of_view.<locals>.foo=  s3    .FF7O /H /.Hs	   1
A r6   r=  )r   r#  onesr&  r  r  r   )rf   r  r1  expectedr   s        r)   test_objmode_use_of_view$TestLiftObj.test_objmode_use_of_view:  s[     
	 
	
 GGArxx %%i0;;q>!f.r+   r3   N)@r   r   r   r   r   r   r  r  r)  r4  rB  rN  r   rX  r^  ri  rq  ry  r  r  r  r  r  r  r  r  r  r  r  unittestexpectedFailurer  r   r  r  r   r  r   r   r   r   r  r  r  r  r%  r3  r;  rG  rO  rY  rn  ry  r  r  r  r  r  r  r  r  r  r  r   r3   r+   r)   r   r   8  s   <!5$@&8 6@&6 #6 #66$ #@ #@"8$ #4 #4"
&5"*7(
  #
4 #
44
"4C 4 4 4 44 '8 '8 2    2 
4 
440 %$
"*( I&6C$14h  

$
$
 
 /r+   r   c                     U S-  $ Nr8   r3   r:   s    r)   case_inner_pyfuncr  I  s    r6Mr+   c                 d    [        SS9   [        U 5      nS S S 5        U$ ! , (       d  f       W$ = fNr=  r  )r   r  r  s     r)   r  r  M  s,    			""1% 
#M 
#	"Mr  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestLiftObjCachingiS  c                 N    [         R                  " S[        R                  5        g r   r   ro   s    r)   r   TestLiftObjCaching.setUpV  r   r+   c                 .    [         R                  " 5         g rR   r   ro   s    r)   r   TestLiftObjCaching.tearDownY  r   r+   c                    [        SS9" U5      nU R                  U" S5      S5        [        SS9" U5      nU R                  UR                  5        U R                  U" S5      S5        U R	                  UR                  5        g )NT)cacher  r,  )r   re   assertFalse_cache_hits
assertTrue)rf   r  firstseconds       r)   checkTestLiftObjCaching.check\  sn    4 )sT*D!'*++,d+**+r+   c                 ,    S nU R                  U5        g )Nc                 X    [        SS9   U S-  nS S S 5        U$ ! , (       d  f       W$ = fr  r  r  s     r)   r   =TestLiftObjCaching.test_objmode_caching_basic.<locals>.pyfuncf  s+    	*R +M +*Mr  r  )rf   r   s     r)   test_objmode_caching_basic-TestLiftObjCaching.test_objmode_caching_basice  s    	
 	

6r+   c                 :   ^ S mU4S jnU R                  U5        g )Nc                     U S-  $ r  r3   r:   s    r)   other_pyfuncNTestLiftObjCaching.test_objmode_caching_call_closure_bad.<locals>.other_pyfuncn  s    r6Mr+   c                 `   > [        SS9   T" U 5      nS S S 5        U$ ! , (       d  f       W$ = fr  r  )r;   r  r  s     r)   r   HTestLiftObjCaching.test_objmode_caching_call_closure_bad.<locals>.pyfuncq  s,    	*%a +M +*Ms   	
-r  )rf   r   r  s     @r)   %test_objmode_caching_call_closure_bad8TestLiftObjCaching.test_objmode_caching_call_closure_badm  s    		
 	

6r+   c                 .    U R                  [        5        g rR   )r  r  ro   s    r)   &test_objmode_caching_call_closure_good9TestLiftObjCaching.test_objmode_caching_call_closure_goodx  s    

%&r+   r3   N)r   r   r   r   r   r   r  r  r  r	  r   r3   r+   r)   r  r  S  s     <!,	'r+   r  c                   &    \ rS rSrS rS rS rSrg)TestBogusContexti|  c           	      2   [        [        5      nU R                  [        R                  5       n[        XR                  U R                  U R                  0 S9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   z*Undefined variable used as context manager)r*   rY   r   r   r   r   r   r   r   r   r   r   rf   rh   r   s      r)   test_undefined_global&TestBogusContext.test_undefined_global~  sl    ^,v334

2 5 	8  !		 54   +B
Bc           	      2   [        [        5      nU R                  [        R                  5       n[        XR                  U R                  U R                  0 S9  S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nr   z"Unsupported context manager in use)r*   r^   r   r   r   r   r   r   r   r   r   r   r  s      r)   test_invalidTestBogusContext.test_invalid  sl    \*v334

2 5 	0  !		 54r  c                     [         S 5       nU R                  [        R                  5       nU" 5         S S S 5        [	        WR
                  5      nSnU R                  XC5        g ! , (       d  f       N7= f)Nc                  F    [          n  S S S 5        g ! , (       d  f       g = frR   )r   )bps    r)   r  ;TestBogusContext.test_with_as_fails_gracefully.<locals>.foo  s    2  r[   zGThe 'with (context manager) as (variable):' construct is not supported.)r   r   r   UnsupportedBytecodeErrorr   r   r   )rf   r  r   excstrr   s        r)   test_with_as_fails_gracefully.TestBogusContext.test_with_as_fails_gracefully  sf    		 
	 v>>?6E @ V%%&c" @?s   A%%
A3r3   N)r   r   r   r   r  r  r  r   r3   r+   r)   r  r  |  s    		#r+   r  c                   F    \ rS rSrSr\\R                  S 5       5       rSr	g)TestMisci  Fc                     [        5       (       d  U R                  S5        S n/ SQn[        X5      nU R                  U5        g )Nzstrace support missingc                  &    [        S5      S 5       n g )Nzvoid()c                  d    [         R                  " 5           S S S 5        g ! , (       d  f       g = frR   r  r3   r+   r)   r#  FTestMisc.test_no_fork_in_compilation.<locals>.force_compile.<locals>.f  s    ]]_ %__s   !
/)r   )r#  s    r)   force_compile;TestMisc.test_no_fork_in_compilation.<locals>.force_compile  s    (^ r+   )forkcloneexecve)r   skipTestr   r  )rf   r#  syscallsstrace_datas       r)   test_no_fork_in_compilation$TestMisc.test_no_fork_in_compilation  s@      !!MM23	 / ]5%r+   r3   N)
r   r   r   r   _numba_parallel_test_r   r   run_test_in_subprocessr+  r   r3   r+   r)   r  r    s*     "$$& % &r+   r  __main__)Nr   r   numpyr#  r  numba.core.transformsr   r   numba.core.withcontextsr   r   r   numba.core.bytecoder   r	   numba.core.interpreterr
   
numba.corer   numba.core.registryr   numba.core.compilerr   r   r   r   r   r   numba.core.extendingr   numba.tests.supportr   r   r   r   r   r   r   r   r   r   r   numba.core.utilsr   numba.experimentalr    r  r*   r4   r<   r@   rF   rI   rL   rN   rP   rS   rV   rY   r  r]   r^   r\  r-  r`   r   r   r   r   r   r   r  r  r  r  r  r   mainr3   r+   r)   <module>r=     sA       ? Q Q : .  * 9 . . )" " " " ' ' "",	
 x 
 **6h 6,;( ;:9( 9..,& .,bN/*h N/b&'X &'R$#* $#N&x &@ zMMO r+   