
    sh                        S r 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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  SSKJr  SSKJrJ r   SS	K!J"r"  SS
K#J$r$  SSK%J&r&J'r'J(r(J)r)J*r*J+r+  Sr,\" SS9S 5       r-S r.\" \.SS9S 5       r/ " S S\&5      r0Sr1S r2 " S S\(\05      r3 " S S\(\05      r4 " S S\(\05      r5 " S S\05      r6 " S S\(\05      r7 " S  S!\&5      r8 " S" S#\&5      r9\:S$:X  a  \'Rv                  " 5         gg)%zn
This tests the inline kwarg to @jit and @overload etc, it has nothing to do with
LLVM or low level inlining.
    N)product)njittypeof	literallyprange)typesirir_utilscgutilserrorsutils)overloadoverload_methodoverload_attributeregister_modelmodelsmake_attribute_wrapper	intrinsicregister_jitable)InlineOptions)DefaultPassBuilderCompilerBase)InlineOverloads	signature)TestCaseunittestMemoryLeakMixinIRPreservingTestPipelineskip_parfors_unsupportedignore_internal_warningsialwaysinlinec                     U S-   $ N    xs    p/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_ir_inlining.py_global_funcr,   &   s    q5L    c                     U S-   $ r&   r(   r)   s    r+   _global_defnr/   ,   s    q5Lr-   c                     [         $ Nr/   r)   s    r+   _global_overloadr3   0   s    r-   c                   .    \ rS rSrSrSSS.rS rS rSrg)	InliningBase5   FTr"   neverc                 >   UR                   R                  5        H  nUR                   Hl  n[        U[        R
                  5      (       d  M$  [        UR                  [        R                  5      (       d  MO  UR                  R                  S:X  d  Mk      g   M     g)N   TF)blocksvaluesbody
isinstancer	   AssignvalueFreeVar)selffunc_irblkstmts       r+   sentinel_17_cost_model#InliningBase.sentinel_17_cost_model>   si     >>((*CdBII..!$**bjj99::++r1#'	 ! + r-   c                    UR                  SS 5      nU(       d   eUR                  SS5      nU(       a   eUR                  5        H3  u  pg[        U[        5      (       d   e[        U[        5      (       a  M3   e   [        [        S9" U5      nU R                  U" U6 U" U6 5        UR                  UR                  S      R                  S   n	[        R                  " U	R                  5      U	l        U R                  (       a+  [        SR!                  SS	5      5        U	R#                  5         US
:w  a%  U R                  [%        U	R                  5      U5        ['        [)        U	R                  R+                  5       5      5      n
U
R-                  5        Vs/ s H  oPM     nnU(       d   eUR                  5        H  u  pgSnU Hz  n[/        USS5      S:X  a.  U	R1                  UR2                  5      nXR4                  U:H  -  nMB  [        R6                  " U5      (       d  M_  XR8                  R:                  U:H  -  nM|     U R=                  X:H  5        M     U	$ s  snf )Ninline_expectblock_countr'   pipeline_classr   preserved_irFIRP   -SKIPFopcall)popitemsr>   strboolr   r   assertEqual	overloads
signaturesmetadatar
   simplify_CFGr;   _DEBUGprintcenterdumplennextiterr<   
find_exprsgetattrget_definitionfuncnameis_operator_or_getitemfn__name__assertFalse)rB   	test_implargskwargsrI   rJ   kvj_funcfirblockr*   exprsfoundexpr	func_defns                   r+   checkInliningBase.checkK   s   

?D9}jj2z!'')DAa%%%%a&&&& * %=>yI 	D)64=9 v0034==nM**3::6
;;%,,r3'(HHJ& S_k:T#**++-./ ",,./.q./u!'')DAE4u-7 # 2 2499 =I^^q00E44T::WW--22E  UZ( * 
 0s   I"r(   N)	rk   
__module____qualname____firstlineno__r]   inline_opt_as_boolrF   ry   __static_attributes__r(   r-   r+   r5   r5   5   s    F$(59
	&r-   r5     c                     ^ SmSU4S jjn U $ )Ni  c                   > X-   nU T-  n [         R                  " U[         R                  S9nXV-   nSU-  nSn	Sn
[         R                  " U5      S:  a  Xx-  n[         R                  " SUS-   5      n[         R
                  " X-
  5      XK-  -   n[         R                  " US   5      S:  a:  [        U 5       H$  nU	S-  n	[         R                  " U	5      S:  d  M$    O   XS   -  n	Xl-  n/ n[        [        U5      5       H>  nUR                  UU   5        US:  a  SnSn
US	U-
  :  a  U
U-  n
U
US   [        -   -  n
M@     UW-   W-   U
-   U-   U -   U	-   $ )
Ndtype              ?r   r'            {   z   )
npzeros	complex64absarangesqrtrangera   append_GLOBAL)abcdefghintrp   lmopqrs_FREEVARs                      r+   foo_gen_involved.<locals>.foo{   sR   E	XHHQbll+EF66!9q=A		!QU#A&Avvad|aqAFAvvay1} " qT	AA3q6]1u9AA37{QQqTG^# # 1uqy1}q 1$q((r-   )   r   Nr(   )r   r   s    @r+   _gen_involvedr   x   s    H)@ Jr-   c                       \ rS rSrS rS rS r\R                  " S5      S 5       r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rSrg)TestFunctionInlining   c                 T   ^ [        SS9S 5       mU4S jnU R                  USS0S9  g )Nr8   r#   c                      g r1   r(   r(   r-   r+   r   9TestFunctionInlining.test_basic_inline_never.<locals>.foo       r-   c                     > T " 5       $ r1   r(   r   s   r+   impl:TestFunctionInlining.test_basic_inline_never.<locals>.impl   
    5Lr-   r   FrI   r   ry   rB   r   r   s     @r+   test_basic_inline_never,TestFunctionInlining.test_basic_inline_never   s3    	W		 
		

4u~
6r-   c                 T   ^ [        SS9S 5       mU4S jnU R                  USS0S9  g )Nr"   r#   c                      g r1   r(   r(   r-   r+   r   :TestFunctionInlining.test_basic_inline_always.<locals>.foo   r   r-   c                     > T " 5       $ r1   r(   r   s   r+   r   ;TestFunctionInlining.test_basic_inline_always.<locals>.impl   r   r-   r   Tr   r   r   s     @r+   test_basic_inline_always-TestFunctionInlining.test_basic_inline_always   s3    	X		 
		

4t}
5r-   c                   ^^^	 UUU	4S jnSn[        X"U5       Ho  u  p4n[        US9S 5       m	[        US9S 5       m[        US9S 5       mU R                  U   U R                  U   U R                  U   S.nU R                  XS9  Mq     g )	Nc                  6   > T" 5       n T" 5       nT" 5       nXU4$ r1   r(   r*   yzbarbazr   s      r+   r   ;TestFunctionInlining.test_basic_inline_combos.<locals>.impl   !    AAA7Nr-   r7   r#   c                      g r1   r(   r(   r-   r+   r   :TestFunctionInlining.test_basic_inline_combos.<locals>.foo       r-   c                      g r1   r(   r(   r-   r+   r   :TestFunctionInlining.test_basic_inline_combos.<locals>.bar   r   r-   c                      g r1   r(   r(   r-   r+   r   :TestFunctionInlining.test_basic_inline_combos.<locals>.baz   r   r-   r   r   r   r   )r   r   r~   ry   )
rB   r   opts
inline_foo
inline_bar
inline_bazrI   r   r   r   s
          @@@r+   test_basic_inline_combos-TestFunctionInlining.test_basic_inline_combos   s    	 '29$d2K.JJ$ % $ % $ % %)$;$;J$G$($;$;J$G$($;$;J$GIM JJtJ9# 3Lr-   z$Need to work out how to prevent thisc                 b   ^^ [        SS9U4S j5       mSmUU4S jnU R                  USS0S9  g )	Nr"   r#   c                 *   > U S:X  a  gT" U S-
  5        g )Nr   r   r'   r(   )r*   r   s    r+   r   7TestFunctionInlining.test_recursive_inline.<locals>.foo   s    AvAE
r-   r   c                  H   > Sn TS:  a  U S-  n T" S5        U T:  a  U S-  n g g )Nr   r'   r   r(   )r   r   r   s    r+   r   8TestFunctionInlining.test_recursive_inline.<locals>.impl   s4    A1uQF1uQ r-   r   Tr   r   )rB   r   r   r   s     @@r+   test_recursive_inline*TestFunctionInlining.test_recursive_inline   s>     
X		 
	 	 	

4t}
5r-   c                   ^^	^
 S nUU	U
4S jnSn[        X3U5       H`  u  pEnU" USS5      m
U" USS5      mU" USS	5      m	U R                  U   U R                  U   U R                  U   S
.nU R                  X'S9  Mb     g )Nc                 >   ^^^ TS-   m[        U S9UUU4S j5       nU$ )Nr   r#   c                     > T TS-   T4$ Nr   r(   r*   r   r   s   r+   rg   ITestFunctionInlining.test_freevar_bindings.<locals>.factory.<locals>.func   s    1q5!}$r-   )r   )r$   r*   r   rg   r   s    `` @r+   factory;TestFunctionInlining.test_freevar_bindings.<locals>.factory   s(    BA % !%Kr-   c                  6   > T" 5       n T" 5       nT" 5       nXU4$ r1   r(   r   s      r+   r   8TestFunctionInlining.test_freevar_bindings.<locals>.impl   r   r-   r7   
         (   2   <   r   r   r   r~   ry   )rB   r   r   r   r   r   r   rI   r   r   r   s           @@@r+   test_freevar_bindings*TestFunctionInlining.test_freevar_bindings   s    		 '29$d2K.JJ*b"-C*b"-C*b"-C$($;$;J$G$($;$;J$G$($;$;J$GIM JJtJ9 3Lr-   c                 .    S nU R                  USS0S9  g )Nc                      Sn [        U 5      $ N   )r,   r)   s    r+   r   6TestFunctionInlining.test_global_binding.<locals>.impl      A?"r-   r,   Tr   ry   rB   r   s     r+   test_global_binding(TestFunctionInlining.test_global_binding      	# 	

4'=
>r-   c                 B   ^ SSK Jm  U4S jnU R                  USS0S9  g )Nr'   r   c                  (   > [         S-   n T" 5       U 4$ Nr   _GLOBAL1r   r   s    r+   r   BTestFunctionInlining.test_inline_from_another_module.<locals>.impl      1A5!8Or-   r   Tr   )inlining_usecasesr   ry   rB   r   r   s     @r+   test_inline_from_another_module4TestFunctionInlining.test_inline_from_another_module
  !    *	 	

4t}
5r-   c                 H   ^ SS K Js  Jm  U4S jnU R                  USS0S9  g )Nr   c                  :   > [         S-   n TR                  5       U 4$ r  )r  r   r   iucs    r+   r   LTestFunctionInlining.test_inline_from_another_module_w_getattr.<locals>.impl      1A779a<r-   r   Tr   numba.tests.inlining_usecasestestsr  ry   rB   r   r  s     @r+   )test_inline_from_another_module_w_getattr>TestFunctionInlining.test_inline_from_another_module_w_getattr  $    33	  	

4t}
5r-   c                 J   ^ SS K nSS KJm  U4S jnU R                  USS0S9  g )Nr   c                  N   > [         S-   n TR                  R                  5       U 4$ r  )r  r  r   r   nts    r+   r   NTestFunctionInlining.test_inline_from_another_module_w_2_getattr.<locals>.impl#  &    1A''++-q00r-   r   Tr   r  numba.testsr  ry   rB   numbar   r  s      @r+   +test_inline_from_another_module_w_2_getattr@TestFunctionInlining.test_inline_from_another_module_w_2_getattr  $    , 	1 	

4t}
5r-   c                 J   ^ S nU" 5       mU4S jnU R                  USS0S9  g )Nc                  8   ^ SSK Jm  [        SS9U4S j5       n U $ )Nr'   r   r"   r#   c                     > T " 5       $ r1   r(   r   s   r+   tmp]TestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.factory.<locals>.tmp.  
    ur-   )r  r   r   )r*  r   s    @r+   r   PTestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.factory+  "    ." #Jr-   c                  (   > [         S-   n T" 5       U 4$ r  r  r   r   s    r+   r   MTestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.impl5  r  r-   r   Tr   r   )rB   r   r   r   s      @r+   *test_inline_from_another_module_as_freevar?TestFunctionInlining.test_inline_from_another_module_as_freevar)  ,    	 i	 	

4t}
5r-   c                 T   ^ SSK Jm  U4S jnU" SS5      nU R                  USS0S9  g )	Nr'   )baz_factoryc                 .   >^ ^^ T" T 5      mU UU4S jnU$ )Nc                  0   > [         TT-  -   n T" 5       U T4$ r1   r  r   r   r   r   s    r+   r   YTestFunctionInlining.test_inline_w_freevar_from_another_module.<locals>.gen.<locals>.implB      q1u$ua{"r-   r(   )r   r   r   r   r6  s   `` @r+   genKTestFunctionInlining.test_inline_w_freevar_from_another_module.<locals>.gen?      a.C# Kr-   r   r   r   Tr   )r  r6  ry   )rB   r<  r   r6  s      @r+   )test_inline_w_freevar_from_another_module>TestFunctionInlining.test_inline_w_freevar_from_another_module;  ,    2	 2r{

4t}
5r-   c                   ^ ^^^^ U 4S jnU 4S jnS H5  u  mm[        US9U4S j5       mUU4S jnT R                  USSTS	:H  0S
9  M7     S H5  u  mm[        US9U4S j5       mUU4S jnT R                  USSTS	:H  0S
9  M7     g )Nc                    > TR                  U [        R                  5        TR                  U R                  S5        TR                  U5      $ NrS   assertIsInstancer	   ExprrX   rR   rF   rw   caller_infocallee_inforB   s      r+   s17_caller_modelCTestFunctionInlining.test_inlining_models.<locals>.s17_caller_modelL  <    !!$0TWWf-..{;;r-   c                    > TR                  U [        R                  5        TR                  U R                  S5        TR                  U5      $ rD  rE  rH  s      r+   s17_callee_modelCTestFunctionInlining.test_inlining_models.<locals>.s17_callee_modelQ  rM  r-   )   r:   r:   rR  r#   c                     > T $ r1   r(   callees   r+   r   6TestFunctionInlining.test_inlining_models.<locals>.fooY      r-   c                 *   > U T-   nT" 5       nUS-   U4$ r   r(   r   r*   r   callerr   s      r+   r   7TestFunctionInlining.test_inlining_models.<locals>.impl]       JE1uaxr-   r   r   r:   r   c                     > T $ r1   r(   rU  s   r+   r   6TestFunctionInlining.test_inlining_models.<locals>.barg  rX  r-   c                 *   > U T-   nT" 5       nUS-   U4$ r   r(   r   r*   r   r   r[  s      r+   r   r\  k  r]  r-   r   r   )rB   rK  rO  r   r   rV  r[  r   s   `   @@@@r+   test_inlining_models)TestFunctionInlining.test_inlining_modelsJ  s    	<
	< 3NFF)* + 
 JJtRv|/DJE 3 3NFF)* + 
 JJtRv|/DJE 3r-   c                 V   ^ [        SS9S 5       mU4S jnU R                  USS0SS9  g )	Nr"   r#   c                      gNr   r(   r(   r-   r+   r   9TestFunctionInlining.test_inline_inside_loop.<locals>.foos      r-   c                  D   > Sn [        S5       H  nU T" 5       -  n M     U $ )N        r   r   )accr   r   s     r+   r   :TestFunctionInlining.test_inline_inside_loop.<locals>.implw  s&    C1Xsu Jr-   r   T   rI   rJ   r   r   s     @r+   test_inline_inside_loop,TestFunctionInlining.test_inline_inside_loopr  s7    	X		 
		 	

4t}!
Dr-   c                 V   ^ [        SS9S 5       mU4S jnU R                  USS0SS9  g )	Nr"   r#   c                      grf  r(   r(   r-   r+   r   HTestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.foo  rh  r-   c                  N   > Sn [        S5       H  nU4S jnX" 5       -  n M     U $ )Nrj  r   c                     > T " 5       S-   $ N   r(   r   s   r+   r   VTestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.impl.<locals>.bar  s    519$r-   rk  )rl  r   r   r   s      r+   r   ITestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.impl  s-    C1X%su  Jr-   r   Trn  ro  r   r   s     @r+   &test_inline_inside_closure_inside_loop;TestFunctionInlining.test_inline_inside_closure_inside_loop  s7    	X		 
		 	

4t}!
Dr-   c                 V   ^ [        SS9S 5       mU4S jnU R                  USS0SS9  g )	Nr"   r#   c                 $   ^  U 4S jnU" 5       S-   $ )Nc                     > ST -   $ rf  r(   )r   s   r+   r   bTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.foo.<locals>.baz  s    Avr-      r(   )r   r   s   ` r+   r   UTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.foo  s    519r-   c                  .   >^ SmUU4S jn U " TS-   5      $ )N	   c                     > T" T5      S-   U -   $ rw  r(   r*   r   r   s    r+   r   cTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.impl.<locals>.bar      1vzA~%r-   r   r(   r   r   r   s    @r+   r   VTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.impl      A&q1u:r-   r   Tr'   ro  r   r   s     @r+   3test_inline_closure_inside_inlinable_inside_closureHTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure  s7    	X		 
	
	 	

4t}!
Dr-   c                 F  ^^^ [        SS9" [        5       5      m[        SS9U4S j5       m[        SS9UU4S j5       mU4S jn[        R                  S;   a  SnO0[        R                  S;   a  S	nO[	        [        R                  5      eU R                  US
S
S
S.US9  g )Nr"   r#   c                    >^ SmU4S jn[        U 5       H$  nTU" ST-   5      T" STSSU" T5      5      -   -  mM&     T$ )Nr   c                    > U T-   $ r1   r(   )r   rl  s    r+   bizCTestFunctionInlining.test_inline_involved.<locals>.boz.<locals>.biz  s    3wr-   r         @r'   y              (@rk  )jr  r*   rl  fortrans      @r+   boz6TestFunctionInlining.test_inline_involved.<locals>.boz  sH    C1Xs1s7|gb#q#s3x&HHH Jr-   c                    >^ ^ Sn[        S5       H/  nT" SSSSS5      mU U4S jnX" U5      S-   T" U5      -   T-   -  nM1     UW" S5      -   $ )Nr   r   r'   c                    > ST-   U -   T-   $ rf  r(   )r*   r   r*  s    r+   r   CTestFunctionInlining.test_inline_involved.<locals>.foo.<locals>.baz  s    6A:++r-   r  r   rk  )r   rl  r   r   r*  r  r  s   `   @r+   r   6TestFunctionInlining.test_inline_involved.<locals>.foo  s]    C2YaAq!,,s1vzCF*S00  Q<r-   c                  .   >^ SmUU4S jn U " TS-   5      $ )Nr  c                     > T" T5      S-   U -   $ rw  r(   r  s    r+   r   DTestFunctionInlining.test_inline_involved.<locals>.impl.<locals>.bar  r  r-   r   r(   r  s    @r+   r   7TestFunctionInlining.test_inline_involved.<locals>.impl  r  r-   ))r   r   )r      '   ))r   r   )r   rR  #   T)r   r  r  ro  )r   r   r   	PYVERSIONNotImplementedErrorry   )rB   r   bcr  r   r  s      @@@r+   test_inline_involved)TestFunctionInlining.test_inline_involved  s    h'8	X		 
	 
X		  
	 	 ??00B__ 22B%eoo66

4tD37(9FH 	 	Jr-   c                 $  ^
 [        SS9S 5       m
[        [        S9U
4S j5       nU R                  U" SS5      S5        UR                  UR                  S	      R
                  S
   n/ nUR                  R                  5        H  nUR                   H|  n[        U[        R                  5      (       d  M$  [        UR                  [        R                  5      (       d  MO  UR                  R                  S:X  d  Mk  UR                  U5        M~     M     U R                  [        U5      S5        U HX  nUR                   R"                  nU R%                  5       R'                  U R(                  5      nU S3n	U R+                  Xy5        MZ     g )Nr"   r#   c                     SnSnX-   U -   $ )Nr   r   r(   )r   r*   r   s      r+   r   =TestFunctionInlining.test_inline_renaming_scheme.<locals>.bar  s    AA519r-   rK   c                 $   > T" U 5      T" U5      4$ r1   r(   )r   r   r   s     r+   r   =TestFunctionInlining.test_inline_renaming_scheme.<locals>.foo      q63q6>!r-   r   r   )   r  r   rM   r   r   z__locals__bar_v[0-9]+.x)r   r   rX   rY   rZ   r[   r;   r<   r=   r>   r	   r?   r@   Constr   ra   targetrh   idlstripr{   assertRegex)rB   r   rC   storerD   rE   r   rh   basenameregexr   s             @r+   test_inline_renaming_scheme0TestFunctionInlining.test_inline_renaming_scheme  sB    
X		 
	
 
5	6	" 
7	" 	Rh/ --q 12;;NK>>((*CdBII..!$**bhh77::++q0!LL.	 ! + 	UQ'A88==Dwwy''8H z!89ET)	 r-   r(   N)rk   r{   r|   r}   r   r   r   r   skipr   r   r   r
  r  r$  r2  r?  rb  rp  r{  r  r  r  r   r(   r-   r+   r   r      sw    76:: ]]9:6 ;6*::?66	66$6&FPEEE )JV#*r-   r   c                       \ rS rSrS rSrg)TestRegisterJitableInliningi  c                 T   ^ [        SS9S 5       mU4S jnU R                  USS0S9  g )Nr"   r#   c                      gr&   r(   r(   r-   r+   r   FTestRegisterJitableInlining.test_register_jitable_inlines.<locals>.foo  s    r-   c                     > T " 5         g r1   r(   r   s   r+   r   GTestRegisterJitableInlining.test_register_jitable_inlines.<locals>.impl  s    Er-   r   Tr   )r   ry   r   s     @r+   test_register_jitable_inlines9TestRegisterJitableInlining.test_register_jitable_inlines  s5    		*	 
+		 	

4t}
5r-   r(   N)rk   r{   r|   r}   r  r   r(   r-   r+   r  r    s    	6r-   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 rS rS rS rS rS rS rS rS rS rSrg)TestOverloadInliningi  c                 \   ^ S m[        TSS9S 5       nU4S jnU R                  USS0S9  g )	Nc                      g r1   r(   r(   r-   r+   r   9TestOverloadInlining.test_basic_inline_never.<locals>.foo       r-   r8   r#   c                      S n U $ )Nc                      g r1   r(   r(   r-   r+   foo_implTTestOverloadInlining.test_basic_inline_never.<locals>.foo_overload.<locals>.foo_impl      r-   r(   )r  s    r+   foo_overloadBTestOverloadInlining.test_basic_inline_never.<locals>.foo_overload  s    Or-   c                     > T " 5       $ r1   r(   r   s   r+   r   :TestOverloadInlining.test_basic_inline_never.<locals>.impl	  r   r-   r   Fr   r   ry   rB   r  r   r   s      @r+   r   ,TestOverloadInlining.test_basic_inline_never  s>    	 
#g	&	 
'	
	 	

4u~
6r-   c                 \   ^ S m[        TSS9S 5       nU4S jnU R                  USS0S9  g )	Nc                      g r1   r(   r(   r-   r+   r   :TestOverloadInlining.test_basic_inline_always.<locals>.foo  r  r-   r"   r#   c                      S n U $ )Nc                      g r1   r(   r(   r-   r+   r   QTestOverloadInlining.test_basic_inline_always.<locals>.foo_overload.<locals>.impl  r  r-   r(   r   s    r+   r  CTestOverloadInlining.test_basic_inline_always.<locals>.foo_overload  s    Kr-   c                     > T " 5       $ r1   r(   r   s   r+   r   ;TestOverloadInlining.test_basic_inline_always.<locals>.impl  r   r-   r   Tr   r  r  s      @r+   r   -TestOverloadInlining.test_basic_inline_always  s>    	 
#h	'	 
(	
	 	

4t}
5r-   c                 \   ^ S m[        TSS9S 5       nU4S jnU R                  USS0S9  g )	Nc                 
    X-   $ r1   r(   r   r   s     r+   r   BTestOverloadInlining.test_inline_always_kw_no_default.<locals>.foo   s	    5Lr-   r"   r#   c                     S $ )Nc                 
    X-   $ r1   r(   r  s     r+   <lambda>]TestOverloadInlining.test_inline_always_kw_no_default.<locals>.overload_foo.<locals>.<lambda>%  s    r-   r(   r  s     r+   overload_fooKTestOverloadInlining.test_inline_always_kw_no_default.<locals>.overload_foo#  s    %%r-   c                     > T " SSS9$ )Nr   rn  r   r(   r   s   r+   r   CTestOverloadInlining.test_inline_always_kw_no_default.<locals>.impl'  s    qA;r-   r   Tr   r  rB   r  r   r   s      @r+    test_inline_always_kw_no_default5TestOverloadInlining.test_inline_always_kw_no_default  s>    	 
#h	'	& 
(	&	 	

4t}
5r-   c                 X  ^^ S nS nS mU R                  5       u  nm[        UST5        [        UST5        [        [        R                  SS9UU4S j5       n[        [        R
                  S	S9UU4S
 j5       nU R                  X" 5       SS0S9  U R                  X#" 5       SS0S9  g )Nc                     U * $ r1   r(   r)   s    r+   impl_inlineETestOverloadInlining.test_inline_operators_unary.<locals>.impl_inline.  	    2Ir-   c                     U 7$ r1   r(   r)   s    r+   impl_noinlineGTestOverloadInlining.test_inline_operators_unary.<locals>.impl_noinline1  r  r-   c                     gNTr(   r)   s    r+   r  BTestOverloadInlining.test_inline_operators_unary.<locals>.<lambda>4  s    Tr-   __neg____pos__r"   r#   c                 ,   > [        U T5      (       a  T$ g r1   r>   r*   	DummyTypedummy_unary_impls    r+   overload_dummy_negLTestOverloadInlining.test_inline_operators_unary.<locals>.overload_dummy_neg9      !Y'''' (r-   r8   c                 ,   > [        U T5      (       a  T$ g r1   r  r  s    r+   overload_dummy_posLTestOverloadInlining.test_inline_operators_unary.<locals>.overload_dummy_pos>  r  r-   negTr   posF)make_dummy_typesetattrr   operatorr  r	  ry   )rB   r  r  Dummyr  r  r   r  s         @@r+   test_inline_operators_unary0TestOverloadInlining.test_inline_operators_unary,  s    		 *//1yy"23y"23	(,,x	0	( 
1	( 
(,,w	/	( 
0	( 	

;t}
E

=%'%
Hr-   c                 X  ^^ S nS nU R                  5       u  nmS m[        UST5        [        UST5        [        [        R                  SS9UU4S j5       n[        [        R
                  S	S9UU4S
 j5       nU R                  X" 5       SS0S9  U R                  X#" 5       SS0S9  g )Nc                     U S:H  $ r&   r(   r)   s    r+   r  ETestOverloadInlining.test_inline_operators_binop.<locals>.impl_inlineH      6Mr-   c                     U S:g  $ r&   r(   r)   s    r+   r  GTestOverloadInlining.test_inline_operators_binop.<locals>.impl_noinlineK  r  r-   c                     gr  r(   r  s     r+   r  BTestOverloadInlining.test_inline_operators_binop.<locals>.<lambda>P  s    r-   __eq____ne__r"   r#   c                 ,   > [        U T5      (       a  T$ g r1   r  r   r   r   dummy_binop_impls     r+   overload_dummy_eqKTestOverloadInlining.test_inline_operators_binop.<locals>.overload_dummy_eqT  r  r-   r8   c                 ,   > [        U T5      (       a  T$ g r1   r  r  s     r+   overload_dummy_neKTestOverloadInlining.test_inline_operators_binop.<locals>.overload_dummy_neY  r  r-   eqTr   neF)r
  r  r   r  r"  r#  ry   )rB   r  r  r  r  r   r   r  s         @@r+   test_inline_operators_binop0TestOverloadInlining.test_inline_operators_binopF  s    		  //1y,x!12x!12	(++h	/	( 
0	( 
(++g	.	( 
/	( 	

;d|
D

=%'$
Gr-   c                   ^^	 S nS nU R                  5       u  nmS m	[        UST	5        [        UST	5        [        [        R                  SS9UU	4S j5       n[        [        R
                  S	S9UU	4S
 j5       n[        [        R                  SS9UU	4S j5       n[        [        R                  S	S9UU	4S j5       nU R                  X" 5       SS0S9  U R                  X#" 5       SS0S9  g )Nc                     U S-  n g r&   r(   r)   s    r+   r  MTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.impl_inlinec      FAr-   c                     U S-  n g r&   r(   r)   s    r+   r  OTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.impl_noinlinef  r)  r-   c                     gr  r(   r  s     r+   r  JTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.<lambda>k  s    r-   __iadd____isub__r"   r#   c                 ,   > [        U T5      (       a  T$ g r1   r  r   r   r   dummy_inplace_binop_impls     r+   overload_dummy_iaddUTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_iaddo      !Y''// (r-   r8   c                 ,   > [        U T5      (       a  T$ g r1   r  r1  s     r+   overload_dummy_isubUTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_isubt  r5  r-   c                 ,   > [        U T5      (       a  T$ g r1   r  r1  s     r+   overload_dummy_addTTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_add{  r5  r-   c                 ,   > [        U T5      (       a  T$ g r1   r  r1  s     r+   overload_dummy_subTTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_sub  r5  r-   iaddTr   isubF)	r
  r  r   r  r?  r@  addsubry   )
rB   r  r  r  r3  r7  r:  r=  r   r2  s
           @@r+   #test_inline_operators_inplace_binop8TestOverloadInlining.test_inline_operators_inplace_binopa  s    		  //1y#4 z#;<z#;<	(--	1	0 
2	0 
(--	0	0 
1	0 
(,,x	0	0 
1	0 
(,,w	/	0 
0	0 	

;~
F

=%'&%
Ir-   c                    ^^ S nS nU R                  5       u  nmS m[        UST5        [        [        R                  SS9UU4S j5       nU R                  X" 5       SS	S
0S9  U R                  X#" 5       S	S
0S9  g )Nc                 
    X   $ r1   r(   r*   idxs     r+   r   GTestOverloadInlining.test_inline_always_operators_getitem.<locals>.impl  	    6Mr-   c                     U S   $ r&   r(   r)   s    r+   impl_static_getitemVTestOverloadInlining.test_inline_always_operators_getitem.<locals>.impl_static_getitem      Q4Kr-   c                     g r1   r(   objrH  s     r+   r  KTestOverloadInlining.test_inline_always_operators_getitem.<locals>.<lambda>      dr-   __getitem__r"   r#   c                 ,   > [        U T5      (       a  T$ g r1   r  rQ  rH  r   dummy_getitem_impls     r+   overload_dummy_getitemYTestOverloadInlining.test_inline_always_operators_getitem.<locals>.overload_dummy_getitem      #y)))) *r-   r'   getitemTr   r
  r  r   r  r[  ry   rB   r   rL  r  rX  r   rW  s        @@r+   $test_inline_always_operators_getitem9TestOverloadInlining.test_inline_always_operators_getitem  s    		  //1y2}&89	(""8	4	* 
5	* 	

4!It3D
E

&"+T!2 	 	4r-   c                    ^^ S nS nU R                  5       u  nmS m[        UST5        [        [        R                  SS9UU4S j5       nU R                  X" 5       SS	S
0S9  U R                  X#" 5       S	S
0S9  g )Nc                 
    X   $ r1   r(   rG  s     r+   r   FTestOverloadInlining.test_inline_never_operators_getitem.<locals>.impl  rJ  r-   c                     U S   $ r&   r(   r)   s    r+   rL  UTestOverloadInlining.test_inline_never_operators_getitem.<locals>.impl_static_getitem  rN  r-   c                     g r1   r(   rP  s     r+   r  JTestOverloadInlining.test_inline_never_operators_getitem.<locals>.<lambda>  rS  r-   rT  r8   r#   c                 ,   > [        U T5      (       a  T$ g r1   r  rV  s     r+   rX  XTestOverloadInlining.test_inline_never_operators_getitem.<locals>.overload_dummy_getitem  rZ  r-   r'   r[  Fr   r\  r]  s        @@r+   #test_inline_never_operators_getitem8TestOverloadInlining.test_inline_never_operators_getitem  s    		  //1y2}&89	(""7	3	* 
4	* 	

4!Iu3E
F

&"+U!3 	 	5r-   c                   ^ S m[        TSS9S 5       nU4S jnU R                  [        5       nU R                  USS0S9  S S S 5        U R	                  S	[        WR                  5      5        g ! , (       d  f       N4= f)
Nc                     XS   -   $ Nr   r(   r  s     r+   r   ;TestOverloadInlining.test_inline_stararg_error.<locals>.foo  s    t8Or-   r"   r#   c                     S $ )Nc                     XS   -   $ rm  r(   r  s     r+   r  VTestOverloadInlining.test_inline_stararg_error.<locals>.overload_foo.<locals>.<lambda>  s
    qTr-   r(   r  s     r+   r  DTestOverloadInlining.test_inline_stararg_error.<locals>.overload_foo  s    ))r-   c                     > T " SSS5      $ )Nr   r   r(   r   s   r+   r   <TestOverloadInlining.test_inline_stararg_error.<locals>.impl  s    q!Q<r-   r   Tr   z-Stararg not supported in inliner for arg 1 *b)r   assertRaisesr  ry   assertInrV   	exception)rB   r  r   r   r   s       @r+   test_inline_stararg_error.TestOverloadInlining.test_inline_stararg_error  sz    	 
#h	'	* 
(	*	  23qJJtE4=J9 4 	E!++&	( 43s   A11
A?c                 4  ^
^^ U
UU4S jnSn[        X"U5       H{  u  p4nS mS m
S m[        TUS9S 5       n[        T
US9S 5       n[        TUS9S	 5       nU R                  U   U R                  U   U R                  U   S
.n	U R                  XS9  M}     g )Nc                  6   > T" 5       n T" 5       nT" 5       nXU4$ r1   r(   r   s      r+   r   ;TestOverloadInlining.test_basic_inline_combos.<locals>.impl  r   r-   r7   c                      g r1   r(   r(   r-   r+   r   :TestOverloadInlining.test_basic_inline_combos.<locals>.foo  r  r-   c                      g r1   r(   r(   r-   r+   r   :TestOverloadInlining.test_basic_inline_combos.<locals>.bar  r  r-   c                      g r1   r(   r(   r-   r+   r   :TestOverloadInlining.test_basic_inline_combos.<locals>.baz  r  r-   r#   c                      S n U $ )Nc                      g r1   r(   r(   r-   r+   r   QTestOverloadInlining.test_basic_inline_combos.<locals>.foo_overload.<locals>.impl      r-   r(   r  s    r+   r  CTestOverloadInlining.test_basic_inline_combos.<locals>.foo_overload      r-   c                      S n U $ )Nc                      g r1   r(   r(   r-   r+   r   QTestOverloadInlining.test_basic_inline_combos.<locals>.bar_overload.<locals>.impl  r  r-   r(   r  s    r+   bar_overloadCTestOverloadInlining.test_basic_inline_combos.<locals>.bar_overload  r  r-   c                      S n U $ )Nc                      g r1   r(   r(   r-   r+   r   QTestOverloadInlining.test_basic_inline_combos.<locals>.baz_overload.<locals>.impl  r  r-   r(   r  s    r+   baz_overloadCTestOverloadInlining.test_basic_inline_combos.<locals>.baz_overload  r  r-   r   r   )r   r   r~   ry   )rB   r   r   r   r   r   r  r  r  rI   r   r   r   s             @@@r+   r   -TestOverloadInlining.test_basic_inline_combos  s    	 '29$d2K.JJ c*- .
 c*- .
 c*- .
 %)$;$;J$G$($;$;J$G$($;$;J$GIM JJtJ9A 3Lr-   c                   ^^	^
 UU	U
4S jnSn[        X"U5       Hk  u  p4nS m
S mS m	SS jnU" T
SSUS	9  U" TS
SUS	9  U" T	SSUS	9  U R                  U   U R                  U   U R                  U   S.nU R                  XS9  Mm     g )Nc                  6   > T" 5       n T" 5       nT" 5       nXU4$ r1   r(   r   s      r+   r   8TestOverloadInlining.test_freevar_bindings.<locals>.impl  r   r-   r7   c                  "    Sn SnU S-   nXS-   U4$ )Nr   r   r   r   r(   r   s      r+   r   7TestOverloadInlining.test_freevar_bindings.<locals>.foo  #    Fq5!}$r-   c                  "    Sn SnU S-   nXS-   U4$ )Nr   r   r   r   r(   r   s      r+   r   7TestOverloadInlining.test_freevar_bindings.<locals>.bar	  r  r-   c                  "    Sn SnU S-   nXS-   U4$ )Nr   rO   r   r   r(   r   s      r+   r   7TestOverloadInlining.test_freevar_bindings.<locals>.baz  r  r-   c                 <   ^^^ TS-   m[        XS9UUU4S j5       ng )Nr   r#   c                     > UUU4S jn U $ )Nc                     > T TS-   T4$ r   r(   r   s   r+   r   WTestOverloadInlining.test_freevar_bindings.<locals>.factory.<locals>.func.<locals>.impl  s     !1q5!},r-   r(   )r   r*   r   r   s    r+   rg   ITestOverloadInlining.test_freevar_bindings.<locals>.factory.<locals>.func  s    -Kr-   )r   )r  r*   r   r$   rg   r   s    ``  @r+   r   ;TestOverloadInlining.test_freevar_bindings.<locals>.factory  s#    F&0  1 r-   r   r   r#   r   r   r   rO   r   r   r1   r   )rB   r   r   r   r   r   r   rI   r   r   r   s           @@@r+   r   *TestOverloadInlining.test_freevar_bindings  s    	 '29$d2K.JJ%%%  CR
3CR
3CR
3$($;$;J$G$($;$;J$G$($;$;J$GIM JJtJ9O 3Lr-   c                 .    S nU R                  USS0S9  g )Nc                      Sn [        U 5      $ r   r2   )r   s    r+   r   ?TestOverloadInlining.test_global_overload_binding.<locals>.impl*  r   r-   r/   Tr   r   r   s     r+   test_global_overload_binding1TestOverloadInlining.test_global_overload_binding(  r   r-   c                 B   ^ SSK Jm  U4S jnU R                  USS0S9  g )Nr'   r   c                  (   > [         S-   n T" 5       U 4$ r  r  r0  s    r+   r   BTestOverloadInlining.test_inline_from_another_module.<locals>.impl4  r  r-   r   Tr   )r  r   ry   )rB   r   r   s     @r+   r
  4TestOverloadInlining.test_inline_from_another_module0  r  r-   c                 H   ^ SS K Js  Jm  U4S jnU R                  USS0S9  g )Nr   c                  :   > [         S-   n TR                  5       U 4$ r  )r  r   r  s    r+   r   LTestOverloadInlining.test_inline_from_another_module_w_getattr.<locals>.impl>  r  r-   r   Tr   r  r  s     @r+   r  >TestOverloadInlining.test_inline_from_another_module_w_getattr:  r  r-   c                 J   ^ SS K nSS KJm  U4S jnU R                  USS0S9  g )Nr   c                  N   > [         S-   n TR                  R                  5       U 4$ r  )r  r  r   r  s    r+   r   NTestOverloadInlining.test_inline_from_another_module_w_2_getattr.<locals>.implI  r  r-   r   Tr   r   r"  s      @r+   r$  @TestOverloadInlining.test_inline_from_another_module_w_2_getattrD  r&  r-   c                 J   ^ S nU" 5       mU4S jnU R                  USS0S9  g )Nc                  8   ^ SSK Jm  [        SS9U4S j5       n U $ )Nr'   r  r"   r#   c                     > T " 5       $ r1   r(   r  s   r+   r*  ]TestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.factory.<locals>.tmpT  r,  r-   )r  r   r   )r*  r   s    @r+   r   PTestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.factoryQ  r.  r-   c                  (   > [         S-   n T" 5       U 4$ r  r  )r   bops    r+   r   MTestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.impl[  r  r-   r   Tr   r   )rB   r   r   r  s      @r+   r2  ?TestOverloadInlining.test_inline_from_another_module_as_freevarO  r4  r-   c                 T   ^ SSK Jm  U4S jnU" SS5      nU R                  USS0S9  g )	Nr'   )bop_factoryc                 .   >^ ^^ T" T 5      mU UU4S jnU$ )Nc                  0   > [         TT-  -   n T" 5       U T4$ r1   r  r9  s    r+   r   YTestOverloadInlining.test_inline_w_freevar_from_another_module.<locals>.gen.<locals>.implh  r;  r-   r(   )r   r   r   r   r  s   `` @r+   r<  KTestOverloadInlining.test_inline_w_freevar_from_another_module.<locals>.gene  r>  r-   r   r   r   Tr   )r  r  ry   )rB   r<  r   r  s      @r+   r?  >TestOverloadInlining.test_inline_w_freevar_from_another_modulea  rA  r-   c                 .  ^ ^^^^	 U 4S jnU 4S jnS H<  u  mmU4S jm	[        T	US9U4S j5       nUU	4S jnT R                  USS	TS
:H  0S9  M>     S H<  u  mmU4S jm[        TUS9U4S j5       nUU4S jnT R                  USSTS
:H  0S9  M>     g )Nc                    > TR                  U [        R                  5        TR                  U R                  S5        TR                  UR                  5      $ rD  rF  r	   rG  rX   rR   rF   rC   rH  s      r+   rK  CTestOverloadInlining.test_inlining_models.<locals>.s17_caller_modelr  B    !!$0TWWf-..{/B/BCCr-   c                    > TR                  U [        R                  5        TR                  U R                  S5        TR                  UR                  5      $ rD  r  rH  s      r+   rO  CTestOverloadInlining.test_inlining_models.<locals>.s17_callee_modelw  r  r-   ))r   rR  rS  c                     > T $ r1   r(   rU  s   r+   r   6TestOverloadInlining.test_inlining_models.<locals>.foo      r-   r#   c                     > U4S jn U $ )Nc                     > T $ r1   r(   rU  s   r+   r   GTestOverloadInlining.test_inlining_models.<locals>.foo_ol.<locals>.impl      !Mr-   r(   r   rV  s    r+   foo_ol9TestOverloadInlining.test_inlining_models.<locals>.foo_ol      "r-   c                 *   > U T-   nT" 5       nUS-   U4$ r   r(   rZ  s      r+   r   7TestOverloadInlining.test_inlining_models.<locals>.impl  r]  r-   r   r   r:   r   )rQ  )rR  r   c                     > T $ r1   r(   rU  s   r+   r   6TestOverloadInlining.test_inlining_models.<locals>.bar  r  r-   c                     > U4S jn U $ )Nc                     > T $ r1   r(   rU  s   r+   r   GTestOverloadInlining.test_inlining_models.<locals>.bar_ol.<locals>.impl  r  r-   r(   r  s    r+   bar_ol9TestOverloadInlining.test_inlining_models.<locals>.bar_ol  r  r-   c                 *   > U T-   nT" 5       nUS-   U4$ r   r(   ra  s      r+   r   r    r]  r-   r   r  )
rB   rK  rO  r  r   r  r   rV  r[  r   s
   `     @@@@r+   rb  )TestOverloadInlining.test_inlining_modelsp  s    	D
	D 3NFF c"23 4
 
 JJtRv|/DJE! 3& 3NFF c"23 4
 
 JJtRv|/DJE! 3r-   c           
        ^ S m[        TSS9S 5       n[        TSS9S 5       nS n[        TUS9S 5       nU4S	 jnU R                  US
S0SS9n[        [        UR                  R                  5       5      5      S   nUR                  SS9 Vs/ s H  oPM     n	nU R                  [        U	5      S:H  5        UR                  [        R                  5       Vs/ s H;  n[        [        USS 5      [        R                  5      (       d  M/  UR                  PM=     n
nU
 H  nU R!                  UR                  S5        M!     g s  snf s  snf )Nc                 f    [        [        U 5      [        R                  5      (       a  U S-   $ U S-   $ )Nr   r'   )r>   r   r   Floatr)   s    r+   r   _TestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar  s)    &)U[[114x1ur-   r"   r#   c                 L    [        U [        R                  5      (       a  S nU$ g )Nc                     U S-   $ r&   r(   r)   s    r+   r   tTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_int_ol.<locals>.impl      q5Lr-   r>   r   Integerr*   r   s     r+   
bar_int_olfTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_int_ol  "    !U]]++! ,r-   r8   c                 L    [        U [        R                  5      (       a  S nU$ g )Nc                     U S-   $ )Nr   r(   r)   s    r+   r   vTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_float_ol.<locals>.impl  s    t8Or-   )r>   r   r  r  s     r+   bar_float_olhTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_float_ol  s"    !U[[))$ *r-   c                      gr  r(   rn   s    r+   always_inline_cost_modeltTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.always_inline_cost_model      r-   c                 L    [        U [        R                  5      (       a  S nU$ g )Nc                     U S-   $ r&   r(   r)   s    r+   r   xTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_complex_ol.<locals>.impl  r  r-   )r>   r   Complexr  s     r+   bar_complex_oljTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_complex_ol  r  r-   c                  B   > T" S5      n T" S5      nT" S5      nX-   U-   $ )Nr'   gffffff@y              @r(   r   r   r   r   s      r+   r   `TestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.impl  s*    AACABA519r-   r   Fr'   ro  rS   )rR   r@   r   )r   ry   rb   rc   r;   rU   rd   
assertTruera   
find_instsr	   r?   r>   re   r  r@   assertNotEqual)rB   r  r  r  r   r   rs   rt   r*   callsconstsvalr   s               @r+   =test_multiple_overloads_with_different_inline_characteristicsRTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics  sO   
	 
#h	'	 
(	 
#g	&	 
'		 
#6	7	 
8		 jjeU^jK T#****,-.q1!,,,787q78E
a( $)#3#3BII#> F#>a7D 9288D !''#> FC		40  9Fs   E.EEc                    ^ S nS m[        TSS9" U5        U4S jnSnU R                  X#SS0S	9  S
 m[        TSS9" U5        SnU R                  X#SS0S	9  g )Nc                     [        U [        R                  5      (       d  S nU$ U R                  S:X  a  S nU$ U R                  S;   a  S nU$ g )Nc                     [        U 5      $ r1   )r   r   s    r+   foo_noopnTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_noop  s    $U++r-   rV   c                     gNr   r(   r   s    r+   foo_as_str_impluTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_as_str_impl      r-   )int64float64c                     gNr   r(   r   s    r+   foo_as_num_impluTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_as_num_impl  r  r-   )r>   r   StringLiteralliteral_value)r   r  r  r  s       r+   foo_ovld\TestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld  sW    eU%8%899,""e+&&""&::&& ;r-   c                     gr  r(   r   s    r+   r   WTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo      r-   r"   r#   c                    > T" U 5      $ r1   r(   )r   r   s    r+   rm   ]TestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.test_impl  s    u:r-   rV   r   Tr   c                     gr  r(   r   s    r+   r   r"    r#  r-   r  r  )rB   r  rm   r   r   s       @r+   5test_overload_inline_always_with_literally_in_inlineeJTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee  sm    	'$	 	X&x0	 

9E4=
A	X&x0 

9E4=
Ar-   c                 j   ^^ SmS m[        TSS9U4S j5       nU4S jnU R                  USSS0S	9  g )
NTc                     gr  r(   As    r+   r   8TestOverloadInlining.test_inline_always_ssa.<locals>.foo	  r  r-   r"   r#   c                    > U4S jnU$ )Nc                 h   > Tn[        [        U 5      5       H  nTnX   (       a  X   nX-  nM     U$ r1   )r   ra   )r,  r   r   dummy
dummy_trues       r+   r   OTestOverloadInlining.test_inline_always_ssa.<locals>.foo_overload.<locals>.impl  s9    s1vA&Et !JA	 '
 r-   r(   )r,  r   r1  s     r+   r  ATestOverloadInlining.test_inline_always_ssa.<locals>.foo_overload  s     Kr-   c                  @   > T " [         R                  " / SQ5      5      $ )N)TFT)r   arrayr   s   r+   r   9TestOverloadInlining.test_inline_always_ssa.<locals>.impl  s    rxx 3455r-   rQ   r   rJ   rI   r  )rB   r  r   r1  r   s      @@r+   test_inline_always_ssa+TestOverloadInlining.test_inline_always_ssa  sG     
	 
#h	'
	 
(
		6 	

4VE4=
Ir-   c                   ^ S m[        TSS9U4S j5       n[        U4S j5       n[        R                  " SS9 n[        R                  " S[
        R                  5        [        5         U R                  U" 5       UR                  5       5        S S S 5        U R                  [        W5      S5        g ! , (       d  f       N*= f)	Nc                  .    Sn U S:  a  U S-  n U S:  a  M  g)Nr   r'   r   r   r(   r  s    r+   r   GTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.bar!  s%    Aa%a a% r-   r"   r#   c                     > T $ r1   r(   r   s   r+   bar_implLTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.bar_impl(  s    Jr-   c                     > T " 5         g r1   r(   r   s   r+   r   GTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.foo,  s    Er-   T)recordr   )r   r   warningscatch_warningssimplefilterr   NumbaIRAssumptionWarningr!   rX   py_funcra   )rB   r>  r   wr   s       @r+   %test_inline_always_ssa_scope_validity:TestOverloadInlining.test_inline_always_ssa_scope_validity  s    	 
#h	'	 
(	 
	 
	 $$D1Q!!(F,K,KL$&SUCKKM2 2 	Q# 21s   AB44
Cr(   N)rk   r{   r|   r}   r   r   r  r  r$  rC  r^  ri  rx  r   r   r  r
  r  r$  r2  r?  rb  r  r'  r8  rI  r   r(   r-   r+   r  r    s|    76 6I4H6%JN4050("*:X1:f?66	66$60Fd61p(BTJ4$r-   r  c                      ^  \ rS rSrU 4S jr SS jr SS j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U =r$ )TestOverloadMethsAttrsInliningi:  c                 J   > U R                  5         [        [        U ]  5         g r1   )r
  superrL  setUp)rB   	__class__s    r+   rO  $TestOverloadMethsAttrsInlining.setUp;  s    ,d9;r-   c                 \   [        [        S9" U5      nU R                  U" U6 U5        UR                  UR                  S      R
                  S   nUR                  Ul        U R                  [        UR                  5      U5        U(       aM  UR                  R                  5        H.  n[        UR                  S5      5      n	U R                  U	5        M0     g / n
UR                  R                  5        H   nU
[        UR                  S5      5      -  n
M"     U R                  U
5        g )NrK   r   rM   rS   r   r   rX   rY   rZ   r[   r;   ra   r<   listrd   rl   r  )rB   rm   rn   expectedrJ   expects_inlinedrr   rs   rt   r  allcallss              r+   check_method+TestOverloadMethsAttrsInlining.check_method?  s    %=>yI1 v0034==nMZZ
SZZ+6**,U--f56  ' -
 H**,D!1!1&!9:: -OOH%r-   c                 \   [        [        S9" U5      nU R                  U" U6 U5        UR                  UR                  S      R
                  S   nUR                  Ul        U R                  [        UR                  5      U5        U(       aM  UR                  R                  5        H.  n[        UR                  S5      5      n	U R                  U	5        M0     g / n
UR                  R                  5        H   nU
[        UR                  S5      5      -  n
M"     U R                  U
5        g )NrK   r   rM   re   rS  )rB   rm   rn   rU  rJ   rV  rr   rs   rt   getattrsallgetattrss              r+   check_getattr,TestOverloadMethsAttrsInlining.check_getattrU  s    %=>yI1 v0034==nMZZ
SZZ+6**, 0 0 ;<  * -
 K**,tE$4$4Y$?@@ -OOK(r-   c                     U R                  5       u  p[        USSS9S	S j5       nS nU R                  UU" 5       /SSS9  g )
Ninline_methodr"   r#   c                     SS jnU$ )Nc                 
    SX4$ )NTHIS IS INLINEDr(   )rQ  r
  val2s      r+   getqTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>._get_inlined_method.<locals>.getp  s    )355r-   NNr(   )rQ  r
  rd  re  s       r+   _get_inlined_methoddTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>._get_inlined_methodn  s    6Jr-   c                 B    U R                  S5      U R                  SS94$ )Nr   A  )rd  r`  rQ  s    r+   r   TTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>.foot  s&    $$S)3+<+<#+<+FFFr-   ))rc  r   N)rc  Nrk  r'   )rm   rn   rU  rJ   rg  r
  r   rX  )rB   r  r   rh  r   s        r+   (test_overload_method_default_args_alwaysGTestOverloadMethsAttrsInlining.test_overload_method_default_args_alwaysk  s\    //1	OH	E	 
F	
	G 	'6 	 	
r-   c                    ^ U4S jnU R                  5       u  p4[        USUS9S 5       nS nU R                  UU" 5       /SSTS9  g )	Nc                     > T$ r1   r(   )rn   should_inlines    r+   	costmodelKTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>.costmodel  s	      r-   r`  r#   c                     S nU$ )Nc                 
    SU4$ )NTHIS IS INLINED!!!r(   )rQ  r
  s     r+   re  bTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>._get_inlined_method.<locals>.get  s    ,c22r-   r(   )rQ  r
  re  s      r+   rh  UTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>._get_inlined_method  s    3Jr-   c                 $    U R                  S5      $ Nr   rl  rm  s    r+   r   ETestOverloadMethsAttrsInlining.make_overload_method_test.<locals>.foo  s    $$S))r-   )ry  r   r'   rm   rn   rU  rJ   rV  ro  )rB   ru  rt  r  r   rh  r   s     `    r+   make_overload_method_test8TestOverloadMethsAttrsInlining.make_overload_method_test  sd    	!  //1	OI	F	 
G	
	* 	'0) 	 	
r-   c                 $    U R                  SSS9  g Nr"   Tru  rt  r  rB   s    r+   'test_overload_method_cost_driven_alwaysFTestOverloadMethsAttrsInlining.test_overload_method_cost_driven_always  s    && 	' 	
r-   c                 $    U R                  SSS9  g Nr8   Fr  r  r  s    r+   &test_overload_method_cost_driven_neverETestOverloadMethsAttrsInlining.test_overload_method_cost_driven_never  s    && 	' 	
r-   c                 &    U R                  S SS9  g )Nc                      gr  r(   r  s    r+   r  ]TestOverloadMethsAttrsInlining.test_overload_method_cost_driven_must_inline.<locals>.<lambda>      Dr-   Tr  r  r  s    r+   ,test_overload_method_cost_driven_must_inlineKTestOverloadMethsAttrsInlining.test_overload_method_cost_driven_must_inline  s    &&( 	' 	
r-   c                 &    U R                  S SS9  g )Nc                      gNFr(   r  s    r+   r  [TestOverloadMethsAttrsInlining.test_overload_method_cost_driven_no_inline.<locals>.<lambda>      Er-   Fr  r  r  s    r+   *test_overload_method_cost_driven_no_inlineITestOverloadMethsAttrsInlining.test_overload_method_cost_driven_no_inline  s    &&) 	' 	
r-   c                     U R                  5       u  p4[        USUS9S 5       nS nU R                  UU" 5       /SSUS9  g )Ninlinemer#   c                     S nU$ )Nc                     g)NMY INLINED ATTRSr(   rm  s    r+   re  _TestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>._get_inlineme.<locals>.get  s    )r-   r(   )rQ  re  s     r+   _get_inlinemeRTestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>._get_inlineme  s    *Jr-   c                     U R                   $ r1   )r  rm  s    r+   r   HTestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>.foo  s    <<r-   r  r'   r  )r
  r   r]  )rB   ru  rt  r  r   r  r   s          r+   make_overload_attribute_test;TestOverloadMethsAttrsInlining.make_overload_attribute_test  s\    //1	Iz)	D	 
E	
	  	'') 	 	
r-   c                 $    U R                  SSS9  g r  r  r  s    r+   test_overload_attribute_always=TestOverloadMethsAttrsInlining.test_overload_attribute_always  s    )) 	* 	
r-   c                 $    U R                  SSS9  g r  r  r  s    r+   test_overload_attribute_never<TestOverloadMethsAttrsInlining.test_overload_attribute_never  s    )) 	* 	
r-   c                 &    U R                  S SS9  g )Nc                      gr  r(   r  s    r+   r  ^TestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_must_inline.<locals>.<lambda>  r  r-   Tr  r  r  s    r+   -test_overload_attribute_costmodel_must_inlineLTestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_must_inline  s    ))( 	* 	
r-   c                 &    U R                  S SS9  g )Nc                      gr  r(   r  s    r+   r  \TestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_no_inline.<locals>.<lambda>  r  r-   Fr  r  r  s    r+   +test_overload_attribute_costmodel_no_inlineJTestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_no_inline  s    ))) 	* 	
r-   r(   )T)rk   r{   r|   r}   rO  rX  r]  rp  r  r  r  r  r  r  r  r  r  r  r   __classcell__rP  s   @r+   rL  rL  :  sX    <
 &*&. '+),
(
.




(



 
r-   rL  c                   ,    \ rS rSrS rS rS rS rSrg)TestGeneralInliningi  c                 V    [        [        SS9S 5       nS nU R                  USS0S9  g )Nr"   r#   c                     g r1   r(   r+  s    r+   overload_lenSTestGeneralInlining.test_with_inlined_and_noninlined_variants.<locals>.overload_len  s    r-   c                      [        / SQ5      $ )N)r   r   rn  )ra   r(   r-   r+   r   KTestGeneralInlining.test_with_inlined_and_noninlined_variants.<locals>.impl  s    y>!r-   ra   Fr   )r   ra   ry   )rB   r  r   s      r+   )test_with_inlined_and_noninlined_variants=TestGeneralInlining.test_with_inlined_and_noninlined_variants  s8    
 
#h	'	$ 
(	$	" 	

4u~
6r-   c                 d   ^ S	S jm[        TSS9S	S j5       nU4S jnU R                  USS0S9  g )
Nc                     X-   U-   $ r1   r(   r   r   r   s      r+   r   1TestGeneralInlining.test_with_kwargs.<locals>.foo  s    519r-   r"   r#   c                     SS jnU$ )Nc                     X-   U-   $ r1   r(   r  s      r+   r   HTestGeneralInlining.test_with_kwargs.<locals>.overload_foo.<locals>.impl  s    uqy r-   r   r   r(   )r   r   r   r   s       r+   r  :TestGeneralInlining.test_with_kwargs.<locals>.overload_foo  s    !Kr-   c                     > T " SSS9$ )Nr   r   r   r(   r   s   r+   r   2TestGeneralInlining.test_with_kwargs.<locals>.impl  s    qB<r-   r   Tr   r  r  r  s      @r+   test_with_kwargs$TestGeneralInlining.test_with_kwargs  s>    	 
#h	'	 
(	
	  	

4t}
5r-   c                 `   ^ [        SS9S
S j5       mSU4S jjnU R                  USSSS0S	9  g )Nr"   r#   c                 
    X-   $ r1   r(   r  s      r+   r   2TestGeneralInlining.test_with_kwargs2.<locals>.bar  s	    5Lr-   c                    > T" X-   SS9$ )Nr   r  r(   r  s      r+   r   3TestGeneralInlining.test_with_kwargs2.<locals>.impl  s    qu##r-   r   rn  r   Tr   )r   r  )rx  r   r   r	  s     @r+   test_with_kwargs2%TestGeneralInlining.test_with_kwargs2  s9    	X		 
		$ 	

4AeT]
;r-   c                 Z   ^ [        SS9S	S j5       mU4S jnU R                  USSS0S9  g )
Nr"   r#   c                     Uc  SnX4$ r}  r(   r  s     r+   r   @TestGeneralInlining.test_inlining_optional_constant.<locals>.bar  s    y6Mr-   c                  ,   > T " 5       T " S5      T " SS94$ )Nr   rk  r  r(   r   s   r+   r   ATestGeneralInlining.test_inlining_optional_constant.<locals>.impl  s    5#c(C#J..r-   rQ   r   Tr7  rg  r   r	  s     @r+   test_inlining_optional_constant3TestGeneralInlining.test_inlining_optional_constant  s9     
X		 
	
	/ 	

4VE4=
Ir-   r(   N)	rk   r{   r|   r}   r  r  r  r  r   r(   r-   r+   r  r    s    7 6 	<Jr-   r  c                       \ rS rSrS rSrg)TestInlineOptionsi  c                    [        S5      nU R                  UR                  5        U R                  UR                  5        U R                  UR
                  5        U R                  UR                  S5        [        S5      nU R                  UR                  5        U R                  UR                  5        U R                  UR
                  5        U R                  UR                  S5        S n[        U5      nU R                  UR                  5        U R                  UR                  5        U R                  UR
                  5        U R                  UR                  U5        g )Nr"   r8   c                     U $ r1   r(   r)   s    r+   
cost_model0TestInlineOptions.test_basic.<locals>.cost_model&  s    Hr-   )	r   r  is_always_inlinerl   is_never_inlinehas_cost_modelrX   r@   assertIs)rB   r"   r8   r  models        r+   
test_basicTestInlineOptions.test_basic  s   x(//0//0../x0g&//0--.--.g.	j)//0../,,-ekk:.r-   r(   N)rk   r{   r|   r}   r  r   r(   r-   r+   r  r    s    /r-   r  c                   B    \ rS rSrS rS rS rS rS r\	S 5       r
Srg	)
TestInlineMiscIssuesi/  c                    ^ S m[        TSS9S 5       n[        SS9U4S j5       n[        SS9S 5       nU" [        R                  " S	5      5        U" [        R                  " S	5      5        g )
Nc                     g r1   r(   )r5  r   s     r+   output_factory;TestInlineMiscIssues.test_issue4691.<locals>.output_factory2  r  r-   r"   r#   c                 `    [        U [        R                  R                  5      (       a  S nU$ g )Nc                 H    U R                   SS  n[        R                  " X!S9$ Nr   r   )shaper   r   )r5  r   r  s      r+   r   LTestInlineMiscIssues.test_issue4691.<locals>.ol_output_factory.<locals>.impl8  s     !KKOE88E77r-   )r>   r   npytypesArray)r5  r   r   s      r+   ol_output_factory>TestInlineMiscIssues.test_issue4691.<locals>.ol_output_factory5  s*    %!5!5668  7r-   T)nogilc                 ,   > T" X R                   5      nU$ r1   r   )r5  outr  s     r+   rj   /TestInlineMiscIssues.test_issue4691.<locals>.fn>  s     4CJr-   c                 Z    [         R                  " U R                  SS  U R                  S9$ r  )r   r   r  r   r5  s    r+   fn20TestInlineMiscIssues.test_issue4691.<locals>.fn2C  s!    88EKKO5;;??r-   )r   r   r   r   r   )r   r   r   ones)rB   r  rj   r  r  s       @r+   test_issue4691#TestInlineMiscIssues.test_issue46911  s}    	 
.	2	 
3	 
D		 
	 
D		@ 
	@ 	277'()BGG()*r-   c                 z   ^ [        SS9S 5       m[         U4S j5       nU" [        R                  " S5      5        g )Nr"   r#   c                 <    U R                   S:w  a  [        S5      eU $ )Nr'   zInvalid number of dimensions)ndim
ValueErrorr   s    r+   inlining5TestInlineMiscIssues.test_issue4693.<locals>.inliningL  s    zzQ !?@@Lr-   c                    > T" U 5      $ r1   r(   )r5  r
  s    r+   rj   /TestInlineMiscIssues.test_issue4693.<locals>.fnS  s    E?"r-   r   )r   r   r   )rB   rj   r
  s     @r+   test_issue4693#TestInlineMiscIssues.test_issue4693J  s@    	X		 
	 
	# 
	# 	288B<r-   c                    ^ [        SS9S 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)Nr"   r#   c                      Sn [        U 5      e)NSomething happened)r	  )msgs    r+   r
  5TestInlineMiscIssues.test_issue5476.<locals>.inlining\  s    &CS/!r-   c                     > T " 5       $ r1   r(   )r
  s   r+   rj   /TestInlineMiscIssues.test_issue5476.<locals>.fna  s    :r-   r  )r   ru  r	  rv  rV   rw  )rB   rj   raisesr
  s      @r+   test_issue5476#TestInlineMiscIssues.test_issue5476Y  sq     
X		" 
	" 
	 
	 z*fD + 	*C0@0@,AB +*s   A++
A9c                   ^^^	^
  " U	4S jS5      m " S S[         R                  5      m[        T5       " S S[        R                  5      5       n[        TSS5        [        U4S	 j5       m
[        TS
S9U
4S j5       n[        TSS
S9S 5       n[        U4S j5       nSm	SnU" T	U5      nU R                  UT	U-  5        g )Nc                   (   > \ rS rSrS rU 4S jrSrg)2TestInlineMiscIssues.test_issue5792.<locals>.Dummyin  c                     Xl         g r1   data)rB   r  s     r+   __init__;TestInlineMiscIssues.test_issue5792.<locals>.Dummy.__init__o  s     	r-   c                 "   > TUR                   -  $ r1   r  )rB   otherr  s     r+   div6TestInlineMiscIssues.test_issue5792.<locals>.Dummy.divr  s    ejj((r-   r  N)rk   r{   r|   r}   r   r$  r   r  s   r+   r  r  n  s    !) )r-   r  c                   (   ^  \ rS rSrU 4S jrSrU =r$ )6TestInlineMiscIssues.test_issue5792.<locals>.DummyTypeiu  c                 H   > Xl         [        TU ]	  SU R                    S3S9  g )NzDummy())rh   r  rN  r   )rB   r  rP  s     r+   r   ?TestInlineMiscIssues.test_issue5792.<locals>.DummyType.__init__v  s%     	 tyyk&; <r-   r  rk   r{   r|   r}   r   r   r  r  s   @r+   r   r'  u  s    = =r-   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ );TestInlineMiscIssues.test_issue5792.<locals>.DummyTypeModeliz  c                 D   > SUR                   4/n[        TU ]	  XU5        g )Nr  r*  )rB   dmmfe_typemembersrP  s       r+   r   DTestInlineMiscIssues.test_issue5792.<locals>.DummyTypeModel.__init__|  s'    W\\*  w7r-   r(   r,  r  s   @r+   DummyTypeModelr.  z  s    8 8r-   r4  r  _datac                 6   > S nT" U5      n[        X15      nXB4$ )Nc                     UR                   nUu  n[        R                  " U5      " X5      nXVl        U R                  (       a)  U R
                  R                  XR                  S   U5        UR                  5       $ rm  )	return_typer   create_struct_proxyr  
enable_nrtnrtincrefrn   	_getvalue)contextbuildersigrn   typr  r0  s          r+   codegenHTestInlineMiscIssues.test_issue5792.<locals>.init_dummy.<locals>.codegen  s^    oo33C8J!
%%KK&&wTB((r-   r   )	typingctxr  rB  ret_typr@  r   s        r+   
init_dummy7TestInlineMiscIssues.test_issue5792.<locals>.init_dummy  s%    	)  oGG*C<r-   r"   r#   c                    > U4S jnU$ )Nc                    > T" U 5      $ r1   r(   )r  rF  s    r+   ctorITestInlineMiscIssues.test_issue5792.<locals>.dummy_overload.<locals>.ctor  s    !$''r-   r(   )r  rJ  rF  s     r+   dummy_overload;TestInlineMiscIssues.test_issue5792.<locals>.dummy_overload  s    ( Kr-   r$  c                     S nU$ )Nc                 4    U R                   UR                   -  $ r1   )r5  )rB   r#  s     r+   r   GTestInlineMiscIssues.test_issue5792.<locals>.div_overload.<locals>.impl  s    zzEKK//r-   r(   )rB   r#  r   s      r+   div_overload9TestInlineMiscIssues.test_issue5792.<locals>.div_overload  s    0 Kr-   c                 F   > T" U 5      nT" U5      nUR                  U5      $ r1   )r$  )r  
other_datar0  r#  r  s       r+   rm   6TestInlineMiscIssues.test_issue5792.<locals>.test_impl  s%    $KE*%E99U##r-   g      ?r  )r   Typer   r   StructModelr   r   r   r   r   rX   )rB   r4  rL  rQ  rm   rT  resr  r   r  rF  s          @@@@r+   test_issue5792#TestInlineMiscIssues.test_issue5792j  s    	) 	)	=

 	=
 
		"	8V// 	8 
#	8 	y&':		  
	 " 
%	)	 
*	 
E(	;	 
<	 
	$ 
	$ 
j)dZ/0r-   c                    ^  " S S[         5      nS m[        TSS9S 5       n[        US9U4S j5       nU R                  U" S	5      S
5        g)zTSimilar to the above test_issue5792, checks mutation of the inlinee
IR is local onlyc                       \ rS rSrS rSrg);TestInlineMiscIssues.test_issue5824.<locals>.CustomCompileri  c                     [         R                  " U R                  5      nUR                  [        [        5        UR                  5         U/$ r1   )r   define_nopython_pipelinestateadd_pass_afterr   finalize)rB   pms     r+   define_pipelinesLTestInlineMiscIssues.test_issue5824.<locals>.CustomCompiler.define_pipelines  s6    '@@L!!/?Ctr-   r(   N)rk   r{   r|   r}   rd  r   r(   r-   r+   CustomCompilerr]    s    r-   rf  c                     g r1   r(   r)   s    r+   r   0TestInlineMiscIssues.test_issue5824.<locals>.bar  s    r-   r"   r#   c                 L    [        U [        R                  5      (       a  S nU$ g )Nc                     U S-   $ )Ng?r(   r)   s    r+   r   ATestInlineMiscIssues.test_issue5824.<locals>.ol_bar.<locals>.impl  s    s7Nr-   r  r  s     r+   ol_bar3TestInlineMiscIssues.test_issue5824.<locals>.ol_bar  s"    !U]]++# ,r-   rK   c                 $   > T" U 5      T" U 5      4$ r1   r(   r  s    r+   r   0TestInlineMiscIssues.test_issue5824.<locals>.foo  r  r-   r   )皙&@rp  N)r   r   r   rX   )rB   rf  rl  r   r   s       @r+   test_issue5824#TestInlineMiscIssues.test_issue5824  s^    	\ 		 
#h	'	 
(	 
^	,	" 
-	" 	R,/r-   c                   ^ [        SS9S 5       m[        SS9U4S j5       n[        R                  " S5      nU" U5        U R                  US[        R                  " U5      -  5        [        SS9S	 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)Nr"   r#   c                 T    [        U R                  5       H  nX==   S-  ss'   M     g r&   )r   size)r*   r   s     r+   r   0TestInlineMiscIssues.test_issue7380.<locals>.bar  s    166]	 #r-   T)parallelc                 X   > [        U R                  S   5       H  nT" X   5        M     g rm  )r   r  )r   r   r   s     r+   r   0TestInlineMiscIssues.test_issue7380.<locals>.foo  s#    AGGAJ'AD	 (r-   )r   r   r   c                     [        U R                  S   5       H/  nX   n[        UR                  5       H  nX!==   S-  ss'   M     M1     g )Nr   r'   )r   r  r   ru  )r   r   r*   s      r+   foo_bad4TestInlineMiscIssues.test_issue7380.<locals>.foo_bad  s=    AGGAJ'DqvvADAID ' (r-   z Overwrite of parallel loop index)r   r   r  assertPreciseEqual	ones_likeru  r   UnsupportedRewriteErrorrv  rV   rw  )rB   r   r   r{  r   r   s        @r+   test_issue7380#TestInlineMiscIssues.test_issue7380  s     
X		 
	 
t		 
	 GGHA1r||A#67 
t		 
	 v==>!AJ ? 	8#akk:JK ?>s   	C
Cr(   N)rk   r{   r|   r}   r  r  r  rY  rq  r    r  r   r(   r-   r+   r  r  /  s4    +2C"D1L0: "L "Lr-   r  __main__)<__doc__r  rC  	itertoolsr   numpyr   r#  r   r   r   r   
numba.corer   r	   r
   r   r   r   numba.core.extendingr   r   r   r   r   r   r   r   numba.core.cpur   numba.core.compilerr   r   numba.core.typed_passesr   numba.core.typingr   numba.tests.supportr   r   r   r   r    r!   r  r,   r/   r3   r5   r   r   r   r  r  rL  r  r  r  rk   mainr(   r-   r+   <module>r     s*  
     1 1 B B	 	 	 ) @ 3 '; ;  X 
 
,x( )<8 <@ #LN*?L N*b
6/< 6z$?L z$z^
\ ^
B9J/< 9Jx/ /0AL8 ALH zMMO r-   