+
    :iY                     
   ^ RI Ht ^ RIt^ RIHtHtHtHt ^ RI	H
t
HtHtHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIHtHtHtHt ^ R	IHt ^ R
IHtHtH t H!t!H"t"H#t#H$t$H%t% ^ RI&H't'H(t(H)t)H*t*H+t+ ^ RI,H-t-H.t. ^ RI/H0t0 R"t1 ! R R]]4      t2]! RRR7       ! R R]4      4       t3 ! R R]]4      t4 ! R R]]4      t5 ! R R]]4      t6 ! R R]4      t7R t8 ! R R]4      t9 ! R R ]4      t:];R!8X  d   ]Px                  ! 4        R# R# )#    )
namedtupleN)TestCaseMemoryLeakMixinskip_parfors_unsupportedcaptured_stdout)njittypedliteral_unrollprange)typeserrorsir)unittest)overload)PassManagerregister_passFunctionPassAnalysisPassCompilerBase)	FixupArgsTranslateByteCodeIRProcessingInlineClosureLikesSimplifyCFGIterLoopCanonicalizationLiteralUnroll
PreserveIR)NopythonTypeInferenceIRLegalizationNoPythonBackendPartialTypeInferenceNativeLowering)compute_cfg_from_blocksflatten_labels)_header_leadc                   8   a  ] tR t^t o R tR tR tR tRtV t	R# )TestLiteralTupleInterpretationc                @   VP                   VP                  ^ ,          ,          pVP                  P                  V,          pV P	                  \        V\        P                  4      4       V F-  pV P	                  \        V\        P                  4      R4       K/  	  R# )r   non literalN)		overloads
signaturesfndesctypemap
assertTrue
isinstancer   TupleLiteral)selffuncvarcrestysubtys   &&&   c/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_mixed_tuple_unroller.pycheck$TestLiteralTupleInterpretation.check   sg    ~~dooa01[[  %
2u{{34EOOJuemm<mL     c                    \         R  4       pV P                  V! 4       VP                  4       4       V P                  VR4       R# )c                      Rp V ^,          # )   r?          xs    r9   fooDTestLiteralTupleInterpretation.test_homogeneous_literal.<locals>.foo$   s    AQ4Kr<   rE   Nr   assertEqualpy_funcr:   r3   rF   s   & r9   test_homogeneous_literal7TestLiteralTupleInterpretation.test_homogeneous_literal#   <    		 
	 	.

3r<   c                    \         R  4       pV P                  V! 4       VP                  4       4       V P                  VR4       R# )c                      Rp V ^,          # )r?   )r?   rA   rB   arC   rD   s    r9   rF   FTestLiteralTupleInterpretation.test_heterogeneous_literal.<locals>.foo-   s    AQ4Kr<   rE   NrH   rK   s   & r9   test_heterogeneous_literal9TestLiteralTupleInterpretation.test_heterogeneous_literal,   rN   r<   c                H   \         R  4       pV P                  V! 4       VP                  4       4       V P                  \        4      ;_uu_ 4       pV P                  VR4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                      Rp V ^,          # )r?   )r?   rA   rB   rQ                 ?rC   rD   s    r9   rF   <TestLiteralTupleInterpretation.test_non_literal.<locals>.foo6   s    "AQ4Kr<   rE   Nr*   )	r   rI   rJ   assertRaisesAssertionErrorr:   assertInstr	exception)r3   rF   es   &  r9   test_non_literal/TestLiteralTupleInterpretation.test_non_literal5   sv    		 
	 	.~..!JJsC  / 	mS%56 /.s   BB!	rC   N)
__name__
__module____qualname____firstlineno__r:   rL   rS   r_   __static_attributes____classdictcell____classdict__s   @r9   r(   r(      s     M
7 
7r<   r(   Fmutates_CFGanalysis_onlyc                   0   a  ] tR t^Bt o RtR tR tRtV tR# )ResetTypeInforeset_the_type_informationc                2    \         P                  ! V 4       R # Nr   __init__r3   s   &r9   rr   ResetTypeInfo.__init__F   s    d#r<   c                0    R Vn         R Vn        R Vn        R# )NT)r.   return_type	calltypes)r3   states   &&r9   run_passResetTypeInfo.run_passI   s     r<   rC   N)	ra   rb   rc   rd   _namerr   ry   re   rf   rg   s   @r9   rm   rm   B   s     (E$ r<   rm   c                      a  ] tR t^Pt o RR lt]! R4      t]! R4      t]! RR4      tR tR t	]
P                  ! R4      R 4       tR t]
P                  ! R4      R	 4       tR
 tRtV tR# )TestLoopCanonicalisationFc                0   a a  ! V V3R  lR\         4      pV# )c                   0   <a  ] tR t^St o VV3R ltRtV tR# ):TestLoopCanonicalisation.get_pipeline.<locals>.NewCompilerc                  < \        R 4      pVP                  \        R4       VP                  \        R4       VP                  \        R4       S'       d   VP                  \
        R4       S'       d   VP                  \        R4       VP                  \        R4       S'       d   VP                  \        R4       VP                  \        R4       VP                  \        R	4       VP                  \        R
4       VP                  \        R4       VP                  \        R4       VP                  4        V.# )custom_pipelineanalyzing bytecodeprocessing IRz(inline calls to locally defined closureszdo partial typingzCanonicalise loopszSimplify the CFGzresets the type info statenopython frontendzensure IR is legalzsave IR for later inspectionnative loweringnopython mode backend)r   add_passr   r   r   r"   r   r   rm   r   r    r   r#   r!   finalize)r3   pmuse_canonicaliseruse_partial_typings   & r9   define_pipelinesKTestLoopCanonicalisation.get_pipeline.<locals>.NewCompiler.define_pipelinesU   s     !23 -/CDL/:.FH%KK 46IJ$KK 8:NOK);< &KK/KL13FG N,@A J(FG N,=>O-DE tr<   rC   N)ra   rb   rc   rd   r   re   rf   )rh   r   r   s   @r9   NewCompilerr   S   s     ! !r<   r   r   )r   r   r   s   ff r9   get_pipeline%TestLoopCanonicalisation.get_pipelineR   s    #	 #	, #	H r<   Tc                  a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^,           \        VP                  4      4       R pV! VR4      pS P                  \        V4      ^4       V! VR4      p	S P                  \        V	4      ^4       V! VR4      p
S P                  \        V
4      ^4       S P                  V^ ,          P
                  P                  V
^ ,          P
                  P                  4       VP                  V	^ ,          ,          P                  ^ ,          pS P                  \        V\        P                  4      4       R# ),This heavily checks a simple loop transform c                   < \        V R 7      R 4       pRpSP                  V! V4      VP                  V4      4       VP                  VP                  ^ ,          ,          pVP
                  R,          pWCP                  3# )pipeline_classc                 ,    ^ pV  F  pW,          pK  	  V# r   rC   )tupaccis   &  r9   rF   QTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.get_info.<locals>.foo   s    AHC 
r<   preserved_irr@   r   rI   rJ   r+   r,   metadatar-   pipelinerF   rE   r6   func_irr3   s   &    r9   get_infoDTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.get_info   so    * + ASVS[[^4==!23DmmN3GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r$   r%   blocksrI   rQ   ba_cfgb_cfgr3   s   &&  r9   compare_cfgGTestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.compare_cfg   7    +N188,DEE+N188,DEEU*r<   c                     V P                   P                  4        Uu. uF:  p\        V\        P                  4      '       g   K%  VP
                  V8X  g   K8  VNK<  	  up# u upi rp   rw   keysr0   r   Expropfdr   rE   s   && r9   	find_getXETestLoopCanonicalisation.test_simple_loop_in_depth.<locals>.find_getX   T    !||002 >2!!!RWW- 23$$"* A2 > > >   "A A A getitergetitemNLoopIgnoringCompilerLoopCanonicalisingCompilerrI   lenrw   valuenameargsr/   r0   r   	RangeTyper3   r   ignore_loops_irignore_loops_fndesccanonicalise_loops_ircanonicalise_loops_fndescr   r   il_getiterscl_getiterscl_getitems
range_insts   f           r9   test_simple_loop_in_depth2TestLoopCanonicalisation.test_simple_loop_in_depth~   sP   	( T../ 	- T445 	9	+
 	O; 	0::;a?6@@A	C	>   3Y?[)1- 99E[)1- 99E[)1- 	Q--22KN4H4H4M4MN /88QHMMaP

:u?@r<   c                  a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^,           \        VP                  4      4       R pV! VR4      pS P                  \        V4      ^4       V! VR4      p	S P                  \        V	4      ^4       V! VR4      p
S P                  \        V
4      ^4       S P                  V^ ,          P
                  P                  V
^ ,          P
                  P                  4       VP                  V	^ ,          ,          P                  ^ ,          pS P                  \        V\        P                  4      4       R# )zuThis checks the transform, when there's no typemap, will happily
transform a loop on something that's not tuple-like
c                    < \        V R 7      R 4       pSP                  V! 4       VP                  4       4       VP                  VP                  ^ ,          ,          pVP
                  R,          pW2P                  3# )r   c                  ,    ^ p R F  pW,          p K  	  V # r   r@   rC   r   r   s     r9   rF   LTestLoopCanonicalisation.test_transform_scope.<locals>.get_info.<locals>.foo   s    "AHC #
r<   r   r   )r   rF   r6   r   r3   s   &   r9   r   ?TestLoopCanonicalisation.test_transform_scope.<locals>.get_info   sf    * + SUCKKM2==!23DmmN3GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r   r   s   &&  r9   r   BTestLoopCanonicalisation.test_transform_scope.<locals>.compare_cfg   r   r<   c                     V P                   P                  4        Uu. uF:  p\        V\        P                  4      '       g   K%  VP
                  V8X  g   K8  VNK<  	  up# u upi rp   r   r   s   && r9   r   @TestLoopCanonicalisation.test_transform_scope.<locals>.find_getX   r   r   r   r   Nr   r   s   f           r9   test_transform_scope-TestLoopCanonicalisation.test_transform_scope   sP   	( T../ 	- T445 	9	+
 	O; 	0::;a?6@@A	C	>   3Y?[)1- 99E[)1- 99E[)1- 	Q--22KN4H4H4M4MN /88QHMMaP

:u?@r<   z-Waiting for pass to be enabled for all tuplesc                  a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^,           \        VP                  4      4       R pV! VR4      pS P                  \        V4      ^4       V! VR4      p	S P                  \        V	4      ^4       V! VR4      p
S P                  \        V
4      ^4       S P                  V^,          P
                  P                  V
^ ,          P
                  P                  4       V	 FP  pVP                  V,          P                  ^ ,          pS P                  \        V\        P                  4      4       KR  	  R# )zKThis heavily checks a typed transformation only impacts tuple
induced loopsc                   < \        V R 7      R 4       pRpSP                  V! V4      VP                  V4      4       VP                  VP                  ^ ,          ,          pVP
                  R,          pWCP                  3# )r   c                 v    ^ p\        ^4       F'  pV  F  p\        ^4       F  pV^,          pK  	  K   	  K)  	  V# r   ranger   r   r   yjs   &    r9   rF   YTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.get_info.<locals>.foo   s=    qA !&qA1HC "* ! " 
r<   r   r@   r   r   s   &    r9   r   LTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.get_info   so    * + ASVS[[^4==!23DmmI.GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r   r   s   &&  r9   r   OTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.compare_cfg  r   r<   c                     V P                   P                  4        Uu. uF:  p\        V\        P                  4      '       g   K%  VP
                  V8X  g   K8  VNK<  	  up# u upi rp   r   r   s   && r9   r   MTestLoopCanonicalisation.test_influence_of_typed_transform.<locals>.find_getX  r   r   r   r   Nr   TypedLoopCanonicalisingCompilerrI   r   rw   r   r   r   r/   r0   r   r   r3   r   r   r   r   r   r   r   r   r   r   rE   r   s   f            r9   !test_influence_of_typed_transform:TestLoopCanonicalisation.test_influence_of_typed_transform   sV   
	(" T../ 	- T99: 	9	+
 	O; 	0::;a?6@@A	C	>   3Y?[)1- 99E[)1- 99E[)1- 	Q--22KN4H4H4M4MN A2<<Q?DDQGJOOJz5??CD r<   c                  a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^,           \        VP                  4      4       R pV! VR4      pS P                  \        V4      ^4       V! VR4      p	S P                  \        V	4      ^4       V! VR4      p
S P                  \        V
4      ^4       S P                  V^,          P
                  P                  V
^ ,          P
                  P                  4       V	 FP  pVP                  V,          P                  ^ ,          pS P                  \        V\        P                  4      4       KR  	  R# )zXThis heavily checks a typed transformation only impacts loops with
literal_unroll markerc                   < \        V R 7      R 4       pRpSP                  V! V4      VP                  V4      4       VP                  VP                  ^ ,          ,          pVP
                  R,          pWCP                  3# )r   c                     ^ p\        ^4       F0  p\        V 4       F  p\        ^4       F  pV^,          pK  	  K   	  K2  	  V# r   )r   r
   r   s   &    r9   rF   hTestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.get_info.<locals>.foo6  sB    qA+C0!&qA1HC "* 1 " 
r<   r   r@   r   r   s   &    r9   r   [TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.get_info5  so    * + ASVS[[^4==!23DmmN3GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r   r   s   &&  r9   r   ^TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.compare_cfgK  r   r<   c                     V P                   P                  4        Uu. uF:  p\        V\        P                  4      '       g   K%  VP
                  V8X  g   K8  VNK<  	  up# u upi rp   r   r   s   && r9   r   \TestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll.<locals>.find_getXY  r   r   r   r   Nr   r   s   f            r9   0test_influence_of_typed_transform_literal_unrollITestLoopCanonicalisation.test_influence_of_typed_transform_literal_unroll1  sV   	(" T../ 	- T99: 	9	+
 	O; 	0::;a?6@@A	C	>   3Y?[)1- 99E[)1- 99E[)1- 	Q--22KN4H4H4M4MN A2<<Q?DDQGJOOJz5??CD r<   c                   a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^	,           \        VP                  4      4       R# )r   c                   < \        V R 7      R 4       pRpSP                  V! V4      VP                  V4      4       VP                  VP                  ^ ,          ,          pVP
                  R,          pWCP                  3# )r   c                     ^ pV  F>  pW,          pV R,            F  pV^V,
          ,          pV^8  g   K   K3  	  V^,          pK@  	  V  F  pW^,          ,          pK  	  V# )r   )         rC   )r   r   r   r   s   &   r9   rF   JTestLoopCanonicalisation.test_lots_of_loops.<locals>.get_info.<locals>.foot  sh    AHC 9__q1uq5! -
 q  Aq5LC  
r<   r   r@   r   r   s   &    r9   r   =TestLoopCanonicalisation.test_lots_of_loops.<locals>.get_infos  so    * + ASVS[[^4==!23DmmN3GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r   r   s   &&  r9   r   @TestLoopCanonicalisation.test_lots_of_loops.<locals>.compare_cfg  r   r<   Nr   r   rI   r   rw   r3   r   r   r   r   r   r   s   f      r9   test_lots_of_loops+TestLoopCanonicalisation.test_lots_of_loopso  sy    	(0 T../ 	- T445 	9	+
 	O; 	0::;eC6@@A	Cr<   c                   a  V 3R lpV! S P                   4      w  r#V! S P                  4      w  rEV 3R lpV! W$4       S P                  \        VP                  4      ^,           \        VP                  4      4       R# )z'Checks a loop appearing from a closure c                   < \        V R 7      R 4       pRpSP                  V! V4      VP                  V4      4       VP                  VP                  ^ ,          ,          pVP
                  R,          pWCP                  3# )r   c                 N    R  p^ pV  F  pW#,          pW!! V4      ,          pK  	  V# )c                 @    ^ p\        V 4       F  pV^,          pK  	  V# r   r   )nr   r   s   &  r9   barWTestLoopCanonicalisation.test_inlined_loops.<locals>.get_info.<locals>.foo.<locals>.bar  s#    C"1Xq &Jr<   rC   )r   r  r   r   s   &   r9   rF   JTestLoopCanonicalisation.test_inlined_loops.<locals>.get_info.<locals>.foo  s3     AHC3q6MC  
r<   r   r@   r   r   s   &    r9   r   =TestLoopCanonicalisation.test_inlined_loops.<locals>.get_info  so    * + ASVS[[^4==!23DmmN3GKK''r<   c                    < \        \        V P                  4      4      p\        \        VP                  4      4      pSP                  W#4       R # rp   r   r   s   &&  r9   r   @TestLoopCanonicalisation.test_inlined_loops.<locals>.compare_cfg  r   r<   Nr  r  s   f      r9   test_inlined_loops+TestLoopCanonicalisation.test_inlined_loops  sy    	(. T../ 	- T445 	9	+
 	O; 	0::;a?6@@A	Cr<   rC   N)F)ra   rb   rc   rd   r   r   r   r   r   r   r   skipr   r   r  r  re   rf   rg   s   @r9   r}   r}   P   s     %P (.!-d!3&24&>#8At8At ]]BC<E D<E|<E| ]]BC,C D,C\,C ,Cr<   r}   c                   :  a  ] tR tRt o R tR tR tR tR t]	P                  ! R4      R 4       tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR t ]!R 4       t"]!R 4       t#]!R  4       t$R! t%R" t&R# t'R$ t(R% t)R&t*V t+R'# )(TestMixedTupleUnrolli  c                x    \         R  4       p^	pTpV P                  V! ^V4      VP                  ^V4      4       R# )c                     ^RR^V^V,          3p^ p\        \        \        V4      4      4       F/  pW2V,          ,          pVP                  ^8  d   V^,          pK.   V# 	  V#    ffffff)@              @r   r   r
   real)idxzrQ   r   r   s   &&   r9   rF   )TestMixedTupleUnroll.test_01.<locals>.foo  sd    T2q!QU+AC3~a012t88b=1HCJ 3 Jr<   Nr   rI   rJ   r3   rF   fks   &   r9   test_01TestMixedTupleUnroll.test_01  sA    			 
		 QCKK1$56r<   c                x    \         R  4       p^	pTpV P                  V! ^V4      VP                  ^V4      4       R# )c                     ^RR^V^V,          3p^ p\        V4       F(  pW4,          pVP                  ^8  d   V^,          pK'   V# 	  V# r  r
   r  )r   r!  rE   r   rQ   s   &&   r9   rF   )TestMixedTupleUnroll.test_02.<locals>.foo  sV    T2q!QU+AC#A&88b=1HCJ ' Jr<   Nr#  r$  s   &   r9   test_02TestMixedTupleUnroll.test_02  sC     
		 
		 QCKK1$56r<   c                x    \         R  4       p^	pTpV P                  V! ^V4      VP                  ^V4      4       R# )c                     ^RR^V^V,          3pRV^V,          3p^ p\        V4       FD  pWE,          pVP                  ^8  d   V^,          pK'  \        V4       F  pWFRJ ,          pK  	   V# 	  V# )r  r  r  rF   Fr+  )r   r!  rE   r   r   rQ   ts   &&     r9   rF   )TestMixedTupleUnroll.test_03.<locals>.foo  s    T2q!QU+A1q5!AC#A&88b=1HC+A.Ez) /J ' Jr<   Nr#  r$  s   &   r9   test_03TestMixedTupleUnroll.test_03  sA    		 
	 QCKK1$56r<   c                    \         R  4       p^
p\        P                  ! V34      \        P                  ! W"34      \        P                  ! W"V34      3pV P                  V! V4      VP	                  V4      4       R# )c                 Z    ^ p\        V 4       F  pWP                  4       ,          pK  	  V# r   r
   sumr   r   rQ   s   &  r9   rF   )TestMixedTupleUnroll.test_04.<locals>.foo  s(    C#C(uuw )Jr<   Nr   nponesrI   rJ   r3   rF   r  r   s   &   r9   test_04TestMixedTupleUnroll.test_04  se    		 
	 wwt}bggqforwway/ABS3;;s#34r<   c                \   \         R  4       p^
pRp\        P                  ! V34      \        P                  ! W"34      \        P                  ! W"V34      \        P                  ! W"W"34      \        P                  ! W"W"V34      3pV P                  V! W44      VP	                  W44      4       R# )c                    ^ p\        V 4       F  pVR8X  d    W!^ ,          P                  4       ,          pK)  VR8X  d    W!^,          P                  4       ,          pKO  VR8X  d    W!^,          P                  4       ,          pKu  V^8X  d    W!^,          P                  4       ,          pK  VR8X  d    W!^,          P                  4       ,          pK  \        R4      h	  V# )r   rQ   r   cr  Unreachable)r
   r8  RuntimeErrortup1tup2r   rQ   s   &&  r9   rF   )TestMixedTupleUnroll.test_05.<locals>.foo  s    C#D)87;;=(C#X7;;=(C#X7;;=(C"W7;;=(C"W7;;=(C&}55 * Jr<   N)rQ   r   rC  r  r  r;  )r3   rF   r  rG  rH  s   &    r9   test_05TestMixedTupleUnroll.test_05  s    		 
	" 'rwwvq	0Bq%rwwaA'?AT#++d*ABr<   zneeds more clever branch prunec                p    \         R  4       pRpV P                  V! V4      VP                  V4      4       R# )c                     ^ p\         P                  P                  \        P                  4      p\        V 4       F%  pVR8X  d   VP                  V4       K  W,          pK'  	  V# )r   rQ   )r	   List
empty_listr   unicode_typer
   append)r   r   str_bufrQ   s   &   r9   rF   )TestMixedTupleUnroll.test_06.<locals>.foo7  sQ    Cjj++E,>,>?G#C(8NN1%HC	 )
 Jr<   N)rQ   r  r#  )r3   rF   r   s   &  r9   test_06TestMixedTupleUnroll.test_063  s:     
	 
	 S3;;s#34r<   c                    \         R  4       p^
p\        P                  ! V34      \        P                  ! W"34      RRR0 Rm3pV P                  V! V4      VP	                  V4      4       R# )c                 R    ^ p\        V 4       F  pV\        V4      ,          pK  	  V# r   r
   r   r9  s   &  r9   rF   )TestMixedTupleUnroll.test_07.<locals>.fooG  s(    C#C(s1v )Jr<   
ABCDEFGHJINr@   r?   rF   rA   r     rB   r   r   r      r;  r>  s   &   r9   test_07TestMixedTupleUnroll.test_07E  sa    		 
	 wwt}bggqfo|Y#_6S3;;s#34r<   c                    \         R  4       pR pRpV! ^4      V! ^4      V! ^4      3pV P                  V! W44      VP                  W44      4       R# )c                     ^ p\        V 4       FZ  pVR8X  d   W!^ ,          ! 4       ,          pK   VR8X  d   W!^,          ! 4       ,          pK=  VR8X  g   KF  W!^,          ! 4       ,          pK\  	  V# r   rQ   r   rC  r
   rF  s   &&  r9   rF   )TestMixedTupleUnroll.test_08.<locals>.fooV  s\    C#D)879$C#X79$C#X79$C * Jr<   c                 &   a  V 3R  lp\        V4      # )c                     < S # rp   rC   rD   s   r9   impl7TestMixedTupleUnroll.test_08.<locals>.gen.<locals>.implc  s    r<   r   )rE   rg  s   f r9   gen)TestMixedTupleUnroll.test_08.<locals>.genb  s    :r<   N)rQ   r   rC  r  r  )r%  r#  )r3   rF   rj  rG  rH  s   &    r9   test_08TestMixedTupleUnroll.test_08S  sW     
		 
			
 /AAA'T#++d*ABr<   c                V   \         R  4       p\         R 4       p\         R 4       p\         R 4       pRpRpV P                  \        P                  4      ;_uu_ 4       pV! WV4       RRR4       V P	                  \
        \        XP                  4      4       R#   + '       g   i     L;; i)c                     ^ p^ p\        V 4       FP  pVR8X  d   W!V,          ,          pM-VR8X  d   W!V,          ,          pMVR8X  d   W!V,          ,          pV^,          pKR  	  W23# rb  rc  )rG  rH  r   r   rQ   s   &&   r9   rF   )TestMixedTupleUnroll.test_09.<locals>.foon  sf    CC#D)89$C#X9$C#X9$Cq * 8Or<   c                      ^# r?   rC   rC   r<   r9   func1+TestMixedTupleUnroll.test_09.<locals>.func1|      r<   c                      ^# rA   rC   rC   r<   r9   func2+TestMixedTupleUnroll.test_09.<locals>.func2  ru  r<   c                      ^# rB   rC   rC   r<   r9   func3+TestMixedTupleUnroll.test_09.<locals>.func3  ru  r<   NrQ   r   rC  )rW   r?   rA   r   rY   r   TypingErrorr[   r&   r\   r]   )r3   rF   rs  rx  r|  rG  rH  raisess   &       r9   test_09TestMixedTupleUnroll.test_09k  s     
	 
	 
	 
	 
	 
	 
	 
	 v1122fO 3 	lC(8(8$9: 32s   	BB(	c                   a R  o\        SRR7      R 4       p\        V3R l4       pV P                  V! 4       VP                  4       4       R# )c                 \    V R 8X  d   ^# V R8X  d   ^# V R8X  d   ^# V R8X  d
   RV ,           # R# appleorangebanana   +# \NrC   r   s   &r9   dt(TestMixedTupleUnroll.test_10.<locals>.dt  ;    ("("*$!E)) %r<   alwaysinlinec                 "  a \        V \        P                  4      '       d1   V P                  oSR 8X  d   R pV# SR8X  d   R pV# SR8X  d   R pX# \        V \        P                  4      '       d   V P                  oSR8X  d	   V3R lpV# R# R# )	r  c                     ^# rr  rC   lis   &r9   rg  9TestMixedTupleUnroll.test_10.<locals>.ol_dt.<locals>.impl       r<   r  c                     ^# rw  rC   r  s   &r9   rg  r    r  r<   r  c                     ^# r{  rC   r  s   &r9   rg  r    r  r<   r  c                    < R S,           # r  rC   r  r   s   &r9   rg  r        )E11r<   Nr0   r   StringLiteralliteral_valueIntegerLiteralr  rg  r   s   & @r9   ol_dt+TestMixedTupleUnroll.test_10.<locals>.ol_dt      "e1122((G#!  h&!
  h&!B 4 455((J&2  K	 ' 6r<   c                  N   < ^ p \        R4       F  pV S! V4      ,          p K  	  V # r   )r  r  r  r  rc  r   r1  r  s     r9   rF   )TestMixedTupleUnroll.test_10.<locals>.foo  s+    C#$MNr!u OJr<   Nr   r   rI   rJ   r3   r  rF   r  s   &  @r9   test_10TestMixedTupleUnroll.test_10  Q    	* 
"X	&	  
'	 * 
	 
	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                     . p Rp\        \        \        V4      4      4       FY  pW,          pVR 8X  d   V P                  R4       K%  VR8X  d   V P                  V4       K?  VR8X  g   KH  V P                  R4       K[  	  V # r  r  r  0z2.0)r  r  r  r   r   r
   rQ  rE   r!  r   r1  s       r9   rF   )TestMixedTupleUnroll.test_11.<locals>.foo  si    A-A3~a012D<HHSM(]HHQK(]HHUO 3 Hr<   Nr#  rK   s   & r9   test_11TestMixedTupleUnroll.test_11  .    		 
	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  (   \         P                  ! 4       p Rp\        \        \	        V4      4      4       FY  pW,          pVR 8X  d   V P                  R4       K%  VR8X  d   V P                  V4       K?  VR8X  g   KH  V P                  R4       K[  	  V # r  )r	   rN  r   r   r
   rQ  r  s       r9   rF   *TestMixedTupleUnroll.test_11a.<locals>.foo  so    

A-A3~a012D<HHSM(]HHQK(]HHUO 3 Hr<   Nr#  rK   s   & r9   test_11aTestMixedTupleUnroll.test_11a  r  r<   c                x    \         R  4       p^	pTpV P                  V! ^V4      VP                  ^V4      4       R# )c                     ^RR^V^V,          3p^ p\        V4       FA  pW4,          pVP                  ^8  d   V^,          pK'  \        V4       F  pW5,          pK  	   M	  V^ ,          ^8  d
   V^,          pV# r  r+  r   r!  rQ   r   r   rE   s   &&    r9   rF   )TestMixedTupleUnroll.test_12.<locals>.foo  s{    T2q!QU+AC#A&88b=1HC+A. / ' tbyqJr<   Nr#  r$  s   &   r9   test_12TestMixedTupleUnroll.test_12  A    		 
	 QCKK1$56r<   c                   \         R  4       p^	pTpV P                  \        P                  4      ;_uu_ 4       pV! ^V4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                    ^RR^V^V,          3p^ p\        V4       Ft  pW4,          pVP                  ^8  d   V^,          pM4\        V4       F%  p\        V4       F  pW6,          pK  	  W5,          pK'  	  \        V4       F  pW5,          pK  	  Kv  	  \        V4       F  pW5,          pK  	  V^ ,          ^8  d
   V^,          pV# r  r+  )r   r!  rQ   r   r   rE   r   s   &&     r9   rF   )TestMixedTupleUnroll.test_13.<locals>.foo  s    T2q!QU+AC#A&88b=1HC+A.!/!2AHC "3 / (*AHC + ' $A& 'tbyqJr<   N(Nesting of literal_unroll is unsupportedr   rY   r   UnsupportedErrorr[   r\   r]   r3   rF   r%  r&  r  s   &    r9   test_13TestMixedTupleUnroll.test_13  so    		 
	( v667761I 8 	@&**+	- 87   
A11B	c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  B    Rp ^ p\        V 4       F  pW,          pK  	  X# r?   r?   rA   rB   r   rc  rE   r   rQ   s      r9   rF   )TestMixedTupleUnroll.test_14.<locals>.foo  s'    AC#A& 'Hr<   Nr#  rK   s   & r9   test_14TestMixedTupleUnroll.test_14  s0     
	 
	 	.r<   c                j   \         R  4       p^p\        P                  ! V34      \        P                  ! W"34      RRR0 Rm3pV P                  \        P
                  4      ;_uu_ 4       pV! V4       RRR4       V P                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                 R    ^ p\        V 4       F  pV\        V4      ,          pK  	  X# r   rX  r  s   &  r9   rF   )TestMixedTupleUnroll.test_15.<locals>.foo'  s(    C#A&s1v 'Hr<   rZ  NCannot unifyr@   r[  r\  )	r   r<  r=  rY   r   r  r[   r\   r]   )r3   rF   r  r   r  s   &    r9   test_15TestMixedTupleUnroll.test_15$  s     
	 
	 wwt}bggqfo|Y#_6 v1122fH 3 	nc&*:*:&;< 32s   *	B""B2	c                   a R  o\        SRR7      R 4       p\        V3R l4       pV P                  V! 4       VP                  4       4       R# )c                 N    V R 8X  d   R# V R8X  d   R# V R8X  d   R# V R8X  d   R# R# )	  rQ     r     rC    dNrC   r  s   &r9   r  (TestMixedTupleUnroll.test_16.<locals>.dt:  s/    }$$$ r<   r  r  c                     \        V \        P                  4      '       d=   V P                  pVR 8X  d   R pV# VR8X  d   R pV# VR8X  d   R pV# VR8X  d   R pX# R# )	r  c                     R # rQ   rC   r  s   &r9   rg  9TestMixedTupleUnroll.test_16.<locals>.ol_dt.<locals>.implI      "r<   r  c                     R # r   rC   r  s   &r9   rg  r  L  r  r<   r  c                     R # rC  rC   r  s   &r9   rg  r  O  r  r<   r  c                     R # r  rC   r  s   &r9   rg  r  R  r  r<   N)r0   r   r  r  r  r   rg  s   &  r9   r  +TestMixedTupleUnroll.test_16.<locals>.ol_dtD  su    "e2233((D=#  d]#  d]#
  d]# 4r<   c                  `   < Rp Rp\        V R,          4       F  pVS! V4      ,          pK  	  V# )r   NrA   Nr  r  r  r  rc  rE   r   rQ   r  s      r9   rF   )TestMixedTupleUnroll.test_16.<locals>.fooV  s2    (AC#AbE*r!u +Jr<   Nr  r  s   &  @r9   test_16TestMixedTupleUnroll.test_167  sQ    	 
"X	&	 
'	" 
	 
	 	.r<   c                   a R  o\        SRR7      R 4       p\        V3R l4       pV P                  V! 4       VP                  4       4       R# )c                 `    V R 8X  d   R# V R8X  d   R# V R8X  d   R# V R8X  d   R# V R8X  d   R	# R
# )r  rQ   r  r   r  rC  r  r  r%  EFFNrC   r  s   &r9   r  (TestMixedTupleUnroll.test_17.<locals>.dtc  s9    }$$$# r<   r  r  c                 2   \        V \        P                  4      '       d=   V P                  pVR 8X  d   R pV# VR8X  d   R pV# VR8X  d   R pV# VR8X  d   R pX# \        V \        P                  4      '       d   V P                  pVR8X  d   R	 pV# R
# R
# )r  c                     R # r  rC   r  s   &r9   rg  9TestMixedTupleUnroll.test_17.<locals>.ol_dt.<locals>.implt  r  r<   r  c                     R # r  rC   r  s   &r9   rg  r  w  r  r<   r  c                     R # r  rC   r  s   &r9   rg  r  z  r  r<   r  c                     R # r  rC   r  s   &r9   rg  r  }  r  r<   r%  c                     R # )r  rC   r  s   &r9   rg  r    s    $r<   N)r0   r   r  r  r  r  s   &  r9   r  +TestMixedTupleUnroll.test_17.<locals>.ol_dto  s    "e2233((D=#  d]#  d]#
  d]#B 3 344((C<%K   5r<   c                  `   < Rp Rp\        V R,          4       F  pVS! V4      ,          pK  	  V# )r  r  :r?   NN)r  r  r  r%  rc  r  s      r9   rF   )TestMixedTupleUnroll.test_17.<locals>.foo  s2    'AC#AbE*r!u +Jr<   Nr  r  s   &  @r9   test_17TestMixedTupleUnroll.test_17`  sQ    
	 
"X	&	  
'	 . 
	 
	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  l    Rp ^ p\        V RRR1,          4       F  pV^,          pVR8  g   K   V# 	  V# )r  r  N)r  r  r  r  i  ip  rc  )rE   countrQ   s      r9   rF   )TestMixedTupleUnroll.test_18.<locals>.foo  sB    4AE#AddG,
t8L	 - Lr<   Nr#  rK   s   & r9   test_18TestMixedTupleUnroll.test_18  s.    		 
	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      ^ p . ROp^
^.pW3p\         P                  ! ^4      p\         P                  ! ^\         P                  R7      pWW%3p\	        V4       F  pV \        V4      ,          p K  	  V # r   dtyper  r<  aranger=  
complex128r
   r   r   l1l2r   a1a2r1  s          r9   rF   )TestMixedTupleUnroll.test_19.<locals>.foo  sh    CBbB(C2B"--0B2"C#C(s1v )Jr<   Nr#  rK   s   & r9   test_19TestMixedTupleUnroll.test_19  s.    	
	 

	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      . p \         P                  ! ^4      p\         P                  ! ^\         P                  R7      pW3p\	        V4       F"  pV P                  VP                  4       4       K$  	  V # )   r  )r<  r  r=  r  r
   rQ  r8  )lr  r  r   r1  s        r9   rF   )TestMixedTupleUnroll.test_20.<locals>.foo  sU    A2B"--0B(C#C(! )Hr<   Nr#  rK   s   & r9   test_20TestMixedTupleUnroll.test_20  s0     
	 
	 	.r<   c                t    \         R  4       p^	pTpV P                  V! V4      VP                  V4      4       R# )c                 V   a RoV3R lp^ pR F  pW!! 4       V,           ,          pK  	  V# )   c                  @   < ^ p \        S4       F  pW,          p K  	  V # r   rc  r   r   r   s     r9   r  6TestMixedTupleUnroll.test_21.<locals>.foo.<locals>.bar  #    '*AHC +
r<   r+  gfffff7@y              @   r  rC   r!  r  	outer_accrE   r   s   &   @r9   rF   )TestMixedTupleUnroll.test_21.<locals>.foo  s6    !A
 I!SUQY&	 " r<   Nr#  r$  s   &   r9   test_21TestMixedTupleUnroll.test_21  s<    		 
	 QQ0r<   c                   \         R  4       p^	pTpV P                  \        P                  4      ;_uu_ 4       pV! V4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                 z   a ^RR^V ^V ,          R3pRoV3R lp^ p\        V4       F  pW2! 4       ,          pK  	  V# )r  r  r  rQ   c                  @   < ^ p \        S4       F  pW,          p K  	  V # r   rc  r-  s     r9   r  6TestMixedTupleUnroll.test_22.<locals>.foo.<locals>.bar  r/  r<   r0  rc  )r!  rQ   r  r   rE   r   s   &    @r9   rF   )TestMixedTupleUnroll.test_22.<locals>.foo  sO    T2q!QUC0A!A
 C $A&su ' Jr<   Nr  r  r  s   &    r9   test_22TestMixedTupleUnroll.test_22  so    $ 
	 
	" v66776F 8 	@&**+	- 87   	A00B 	c                   \         R  4       p^	pTpV P                  \        P                  4      ;_uu_ 4       pV! V4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                 h   a RoV3R lp^ p\        S4       F  pW!! 4       V,           ,          pK  	  V# )r+  c                  @   < ^ p \        S4       F  pW,          p K  	  V # r   rc  r-  s     r9   r  6TestMixedTupleUnroll.test_23.<locals>.foo.<locals>.bar  r/  r<   r0  rc  r2  s   &   @r9   rF   )TestMixedTupleUnroll.test_23.<locals>.foo  s=    !A
 I $A&SUQY&	 ' r<   Nr  r  r  s   &    r9   test_23TestMixedTupleUnroll.test_23  sm    		 
	" v66776F 8 	@&**+	- 87r>  c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       RpV P	                  V\        XP                  4      4       R#   + '       g   i     L9; i)c                  @    \        R 4       F  p \        V 4       K  	  R# )ABCDENr
   printrD   s    r9   rF   )TestMixedTupleUnroll.test_24.<locals>.foo   s    #G,a -r<   Nz7argument should be a tuple or a list of constant valuesr  )r3   rF   r  msgs   &   r9   test_24TestMixedTupleUnroll.test_24  sc    		 
	 v66776E 8 Hc3v//01	 87s   A--A=	c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  z    \        RR^^.R34      p T pTp. pV F  pVP                  \        V4      4       K  	  V# )r?   xyzr@   )               @r  )r
   rQ  r   )valalias1alias2lensrE   s        r9   rF   )TestMixedTupleUnroll.test_25.<locals>.foo-  sG     )X1vu!EFCFFDCF# Kr<   Nr#  rK   s   & r9   test_25TestMixedTupleUnroll.test_25+  s.    		 
	 	.r<   c                t    \         R  4       p^	pTpV P                  V! V4      VP                  V4      4       R# )c                     ^RR^V ^V ,          3p^ p^ p^6p^p\         P                  ! \        V4      3\         P                  R7      p\	        V4       F   pW',          pWvV&   V^,          pW5,           pK"  	  XW$WV3# )r  r  r  r  )r<  emptyr   r  r
   )	r!  rQ   r   r  	untouched	read_onlymutatedrE   escapes	   &        r9   rF   )TestMixedTupleUnroll.test_26.<locals>.foo>  s    T2q!QU+ACEIIhhAy>G#A&!"
*	 '
 39==r<   N)r   assertPreciseEqualrJ   r$  s   &   r9   test_26TestMixedTupleUnroll.test_269  s>    
 
	> 
	> AA7r<   c                    \        R R7      R 4       p^	pTpV P                  V! V4      VP                  V4      4       R# )Tparallelc                     ^RR^V ^V ,          3p^ p\        V4       F  p\        ^
4       F  pV^,          pK  	  K   	  V# r  r
   r   r!  rQ   r   rE   r&  s   &    r9   rF   )TestMixedTupleUnroll.test_27.<locals>.fooU  sJ    T2q!QU+AC#A&A1HC $ ' Jr<   Nr#  r$  s   &   r9   test_27TestMixedTupleUnroll.test_27R  sC     
t		 
	 QQ0r<   c                    \        R R7      R 4       p^	pTp\        P                  P                  V! V4      VP	                  V4      4       R# )Trf  c                     ^RR^V ^V ,          3p^ p\        V4       F  p\        ^
4       F  pW#,          pK  	  K  	  V# r  ri  rj  s   &    r9   rF   )TestMixedTupleUnroll.test_28.<locals>.foof  sH    T2q!QU+AC#A&AHC $ ' Jr<   N)r   r<  testingassert_allcloserJ   r$  s   &   r9   test_28TestMixedTupleUnroll.test_28c  sI     
t		 
	  	

""3q63;;q>:r<   c                    \        R R7      R 4       p^	pTpV P                  V! V4      VP                  V4      4       R# )Trf  c                     ^RR^V ^V ,          3p^ p\        ^
4       F  p\        V4       F  pW$,          pK  	  K  	  V# r  )r   r
   )r!  rQ   r   r&  rE   s   &    r9   rF   )TestMixedTupleUnroll.test_29.<locals>.fooy  sH    T2q!QU+ACBZ'*AHC +   Jr<   Nr#  r$  s   &   r9   test_29TestMixedTupleUnroll.test_29u  sC     
t		 
	 QQ0r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  T   a R oV3R lp \        V R4       Uu. uF  qNK  	  up# u upi )  c                 T   < ^ pRp\        V4       F  pWS,           ,          pK  	  W3# r   r  r  r  r   rc  r1  r   rQ   rE   consts   &   r9   r  6TestMixedTupleUnroll.test_30.<locals>.foo.<locals>.bar  /    %'*Au9$C +vr<   r?   rA   mapr  rE   r  s     @r9   rF   )TestMixedTupleUnroll.test_30.<locals>.foo  s0    E  #3/0/!A/000   
%Nr#  rK   s   & r9   test_30TestMixedTupleUnroll.test_30  s.    			1 
		1 	.r<   c                N   \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  \
        \        XP                  4      4       V P	                  R\        VP                  4      4       R#   + '       g   i     L`; i)c                  T   a R oV3R lp \        V R4       Uu. uF  qNK  	  up# u upi )r|  c                 T   < ^ pRp\        V4       F  pWS,           ,          pK  	  W3# r~  rc  r  s   &   r9   r  6TestMixedTupleUnroll.test_31.<locals>.foo.<locals>.bar  r  r<   )r?   rR  r  r  s     @r9   rF   )TestMixedTupleUnroll.test_31.<locals>.foo  s0    E  #3010!A0111r  Nzipr  r3   rF   r  s   &  r9   test_31TestMixedTupleUnroll.test_31  sx     
		2 
		2 v1122fE 3 	lC(8(8$9:eS!1!123	 32s   BB$	c                   a \         R  4       o\         V3R l4       pV P                  V! 4       VP                  4       4       R# )c              3   :   "   \        V 4       F  pVx  K	  	  R # 5irp   rc  rQ   rE   s   & r9   rj  )TestMixedTupleUnroll.test_32.<locals>.gen  s     #A& '   c                  <   < S! R4       U u. uF  q NK  	  up # u up i )r?   r?   gffffff@y              @rC   )rE   rj  s    r9   rF   )TestMixedTupleUnroll.test_32.<locals>.foo  s"    "=121!A1222s   
Nr#  )r3   rF   rj  s   & @r9   test_32TestMixedTupleUnroll.test_32  sC    		 
	 
	3 
	3 	.r<   c                    \         R  4       pR pV! V4      pV! VP                  4      P                  pV P                  V! 4       V! 4       4       R# )c              3   "   "   V ! V4      x  R # 5irp   rC   )r4   args   &&r9   consumer.TestMixedTupleUnroll.test_33.<locals>.consumer  s     s)Os   c                 &   a  \         V 3R  l4       pV# )c                  X   < R  p S! V R4       Uu. uF  p\        V4      NK  	  up# u upi )c              3   :   "   \        V 4       F  pVx  K	  	  R # 5irp   rc  r  s   & r9   rj  CTestMixedTupleUnroll.test_33.<locals>.get.<locals>.foo.<locals>.gen  s     +A. /r  r  )next)rj  rE   conss     r9   rF   6TestMixedTupleUnroll.test_33.<locals>.get.<locals>.foo  s/      *.c=)AB)AAQ)ABBBs   'ri  )r  rF   s   f r9   get)TestMixedTupleUnroll.test_33.<locals>.get  s    C C
 Jr<   N)r   rJ   rI   )r3   r  r  cfuncpyfuncs   &    r9   test_33TestMixedTupleUnroll.test_33  sP     
	 
		 HX%%&..&(+r<   c                F   \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       V P	                  R\        VP                  4      4       R#   + '       g   i     L\; i)c                     ^ p . ROp^
^.pV ^,
          ^8  d   W3pM@\         P                  ! ^4      p\         P                  ! ^\         P                  R7      pWW%3p\	        V4       F  pV \        V4      ,          p K  	  V # r  r  r  s          r9   rF   )TestMixedTupleUnroll.test_34.<locals>.foo  ss    CBbBQw{hYYr]WWQbmm4r&#C(s1v )Jr<   NzInvalid use ofz&found multiple definitions of variabler  r  s   &  r9   test_34TestMixedTupleUnroll.test_34  s{    		 
	 v66776E 8 	&F,<,<(=>>&**+	-	 87s   BB 	rC   N),ra   rb   rc   rd   r'  r-  r3  r?  rJ  r   r  rT  r^  rl  r  r  r  r  r  r  r  r  r  r	  r  r   r'  r5  r<  rD  rM  rX  rc  r   rl  rs  rx  r  r  r  r  r  re   rf   rg   s   @r9   r  r    s    7&7(7,5C4 ]]345 55"5C0#;J*/X/$/$7.-@/=&'/R//b//"/1*+-Z-:2/82 1 1  ; ;" 1 1"/ 4,/,,- -r<   r  c                   t   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tRtV tR# )TestConstListUnrolli  c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      . ROp ^ p\        \        \        V 4      4      4       F/  pWV,          ,          pVP                  ^8  d   V^,          pK.   V# 	  V# r  r  r  )rQ   r   r   s      r9   rF   (TestConstListUnroll.test_01.<locals>.foo  sS    !AC3~a012t88b=1HCJ 3 Jr<   Nr#  rK   s   & r9   r'  TestConstListUnroll.test_01  s.    			 
		 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      . ROp ^ p\        V 4       F(  pW,          pVP                  ^8  d   V^,          pK'   V# 	  V# r  r+  r  s      r9   rF   (TestConstListUnroll.test_02.<locals>.foo  sE    !AC#A&88b=1HCJ ' Jr<   Nr#  rK   s   & r9   r-  TestConstListUnroll.test_02  s0     
		 
		 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      . ROp R^.p^ p\        V 4       FD  pW#,          pVP                  ^8  d   V^,          pK'  \        V4       F  pW$RJ ,          pK  	   V# 	  V# )r  rF   Fr  r+  rE   r   r   rQ   r1  s        r9   rF   (TestConstListUnroll.test_03.<locals>.foo  si    !A
AC#A&88b=1HC+A.Ez) /J ' Jr<   Nr#  rK   s   & r9   r3  TestConstListUnroll.test_03  .    		 
	 	.r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                      . ROp Rp^ p\        V 4       FD  pW#,          pVP                  ^8  d   V^,          pK'  \        V4       F  pW$RJ ,          pK  	   V# 	  V# )r  Fr  )rF   r1  r+  r  s        r9   rF   (TestConstListUnroll.test_04.<locals>.foo!  se    !AAC#A&88b=1HC+A.Ez) /J ' Jr<   Nr#  rK   s   & r9   r?  TestConstListUnroll.test_04  r  r<   c                F   \         R  4       p^
p\        P                  ! ^
4      \        P                  ! ^
4      .p\        P                  ! V34      \        P                  ! W"34      \        P                  ! W"V34      \        P                  ! W"W"34      \        P                  ! W"W"V34      3pV P	                  \
        P                  4      ;_uu_ 4       pV! W44       RRR4       RpV P                  V\        XP                  4      4       R#   + '       g   i     L9; i)c                     ^ p\        V 4       F0  pV^ ,          ^8  g   K  W!^ ,          P                  4       ,          pK2  	  V# r   r7  rF  s   &&  r9   rF   (TestConstListUnroll.test_05.<locals>.foo4  s:    C#D)Q4!87;;=(C * Jr<   Nz6Invalid use of literal_unroll with a function argument)
r   r<  zerosr=  rY   r   r  r[   r\   r]   )r3   rF   r  rG  rH  r  rL  s   &      r9   rJ  TestConstListUnroll.test_052  s    		 
	 bhhrl+rwwvq	0Bq%rwwaA'?A v66776O 8 Gc3v//01	 87s   	DD 	c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                      ^
p \         P                  ! V 34      \         P                  ! W 34      RRR0 Rm.p^ p\        V4       F  pV\        V4      ,          pK  	  V# )
   rZ  r@   r[  r\  )r<  r=  r
   r   )r  r   r   rQ   s       r9   rF   (TestConstListUnroll.test_06.<locals>.fooI  sV    A77A4="''1&/<':CC#C(s1v )Jr<   Nz&Found non-constant value at position 0r  r  s   &  r9   rT  TestConstListUnroll.test_06G  sa    		 
	 v66776E 8 	>&**+	- 87   A++A;	c                   a R  o\        SRR7      R 4       p\        V3R l4       pV P                  V! 4       VP                  4       4       R# )c                 \    V R 8X  d   ^# V R8X  d   ^# V R8X  d   ^# V R8X  d
   RV ,           # R# r  rC   r  s   &r9   r  &TestConstListUnroll.test_7.<locals>.dt\  r  r<   r  r  c                 "  a \        V \        P                  4      '       d1   V P                  oSR 8X  d   R pV# SR8X  d   R pV# SR8X  d   R pX# \        V \        P                  4      '       d   V P                  oSR8X  d	   V3R lpV# R# R# )	r  c                     ^# rr  rC   r  s   &r9   rg  7TestConstListUnroll.test_7.<locals>.ol_dt.<locals>.implk  r  r<   r  c                     ^# rw  rC   r  s   &r9   rg  r  n  r  r<   r  c                     ^# r{  rC   r  s   &r9   rg  r  q  r  r<   r  c                    < R S,           # r  rC   r  s   &r9   rg  r  w  r  r<   Nr  r  s   & @r9   r  )TestConstListUnroll.test_7.<locals>.ol_dtf  r  r<   c                  R   < ^ p \        . RO4       F  pV S! V4      ,          p K  	  V # r  rc  r  s     r9   rF   'TestConstListUnroll.test_7.<locals>.foo|  s+    C#$MNr!u OJr<   Nr  r  s   &  @r9   test_7TestConstListUnroll.test_7Y  r  r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                     . p . ROp\        \        \        V4      4      4       FY  pW,          pVR 8X  d   V P                  R4       K%  VR8X  d   V P                  V4       K?  VR8X  g   KH  V P                  R4       K[  	  V # r  r  r  s       r9   rF   'TestConstListUnroll.test_8.<locals>.foo  si    A-A3~a012D<HHSM(]HHQK(]HHUO 3 Hr<   Nr#  rK   s   & r9   test_8TestConstListUnroll.test_8  r  r<   c                x    \         R  4       p^	pTpV P                  V! ^V4      VP                  ^V4      4       R# )c                     . ROp^ p\        V4       FA  pW4,          pVP                  ^8  d   V^,          pK'  \        V4       F  pW5,          pK  	   M	  V^ ,          ^8  d
   V^,          pV# r  r+  r  s   &&    r9   rF   'TestConstListUnroll.test_9.<locals>.foo  sj    !AC#A&88b=1HC+A. / ' tbyqJr<   Nr#  r$  s   &   r9   test_9TestConstListUnroll.test_9  r  r<   c                   \         R  4       p^	pTpV P                  \        P                  4      ;_uu_ 4       pV! ^V4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                    ^RR^V^V,          3p. ROp^ p\        V4       Ft  pWE,          pVP                  ^8  d   V^,          pM4\        V4       F%  p\        V4       F  pWG,          pK  	  WF,          pK'  	  \        V4       F  pWF,          pK  	  Kv  	  \        V4       F  pWF,          pK  	  V^ ,          ^8  d
   V^,          pV# )r  r  r  r  r+  )r   r!  rQ   r   r   r   rE   r   s   &&      r9   rF   (TestConstListUnroll.test_10.<locals>.foo  s    T2q!QU+A!AC#A&88b=1HC+A.!/!2AHC "3 / (*AHC + ' $A& 'tbyqJr<   Nr  r  r  s   &    r9   r  TestConstListUnroll.test_10  so    		 
	* v667761I 8 	@&**+	- 87r  c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  F    . ROp ^ p\        V 4       F  pW,          pK  	  X# r  rc  r  s      r9   rF   (TestConstListUnroll.test_11.<locals>.foo  s'    AC#A& 'Hr<   Nr#  rK   s   & r9   r  TestConstListUnroll.test_11  s0     
	 
	 	.r<   c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                  Z    ^ p . ROp\        V4       F  pV \        V4      ,          p K  	  X# )r   )r?   rA   rQ   )r
   bool)r   rE   rQ   s      r9   rF   (TestConstListUnroll.test_12.<locals>.foo  s-    CA#A&tAw 'Hr<   Nr  r   rY   r   r  r[   r\   r]   r  s   &  r9   r  TestConstListUnroll.test_12  s]    		 
	 v1122fE 3 	nc&*:*:&;< 32r  c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                  T    . ROp ^ p\        V R,          4       F  pW,          pK  	  V# )r  r  r  rc  r  s      r9   rF   (TestConstListUnroll.test_13.<locals>.foo  s+    (AC#AbE* +Jr<   NzInvalid use of literal_unrollr  r  s   &  r9   r  TestConstListUnroll.test_13  s`     
	 
	 v66776E 8 	5s6;K;K7LM 87r  c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                  h    . ROp ^ p\        V 4       F  pW,          pK  	  V P                  ^
4       V# )r  r  )r
   rQ  r  s      r9   rF   (TestConstListUnroll.test_14.<locals>.foo  s2    (AC#A& 'HHRLJr<   Nz(Unknown attribute 'append' of type Tupler  r  s   &  r9   r  TestConstListUnroll.test_14  sc     
	 
	 v1122fE 3 	@&**+	- 32r  rC   N)ra   rb   rc   rd   r'  r-  r3  r?  rJ  rT  r  r  r  r  r  r  r  r  re   rf   rg   s   @r9   r  r    sS     / /"/&/&2*-$*/X/$7.-B/=N - -r<   r  c                      a  ] tR tRt o R tR t]P                  ! R4      R 4       t]P                  ! R4      R 4       t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV tR# )TestMorei  c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                  B    Rp ^ p\        W 4       F  pW,          pK  	  V# )r  )r  r$  rc  rE   rrQ   s      r9   rF   2TestMore.test_invalid_use_of_unroller.<locals>.foo  s'    AA#A) *Hr<   Nz*literal_unroll takes one argument, found 2r  r  s   &  r9   test_invalid_use_of_unroller%TestMore.test_invalid_use_of_unroller  s_    		 
	 v66776E 88  !	
 87r  c                    \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! ^
4       RRR4       V P	                  R\        XP                  4      4       R#   + '       g   i     L7; i)c                 F    ^
V .p^ p\        V4       F  pW#,          pK  	  V# r  rc  r   rE   r	  rQ   s   &   r9   rF   ,TestMore.test_non_constant_list.<locals>.foo"  +    QAA#A& 'Hr<   NzKFound non-constant value at position 1 in a list argument to literal_unrollr  r  s   &  r9   test_non_constant_listTestMore.test_non_constant_list   sc    		 
	 v66776G 8  !	
 87s   	A,,A<	z!numba.literally not supported yetc                p   aa ^ RI Ho \        V3R l4       oS! ^4       \        V3R l4       pV! 4        R# )r   )	literallyc                 T   < ^
S! V 4      .p^ p\        V4       F  pW#,          pK  	  V# r  rc  )r   rE   r	  rQ   r  s   &   r9   rF   2TestMore.test_literally_constant_list.<locals>.foo7  s1    Yq\"AA#A& 'Hr<   c                     < S ! ^4      # r  rC   rF   s   r9   r  2TestMore.test_literally_constant_list.<locals>.barC      r7Nr<   N)numbar  r   )r3   r  rF   r  s   & @@r9   test_literally_constant_list%TestMore.test_literally_constant_list2  s<     	$		 
	 	B		 
	
 	r<   z8inlining of foo doesn't have const prop so y isn't constc                x   a \        R R7      R 4       o\         V3R l4       pV P                  V! 4       ^4       R# )r  r  c                 F    ^
V .p^ p\        V4       F  pW#,          pK  	  V# r  rc  r  s   &   r9   rF   .TestMore.test_inlined_unroll_list.<locals>.fooM  r  r<   c                     < S ! ^4      # r  rC   r  s   r9   r  .TestMore.test_inlined_unroll_list.<locals>.barU  r  r<   N)r   rI   )r3   r  rF   s   & @r9   test_inlined_unroll_list!TestMore.test_inlined_unroll_listK  sB    	X		 
	 
	 
	 	(r<   c                    \         R  4       pV P                  V! ^4      VP                  ^4      4       V P                  V! R4      VP                  R4      4       R# )c                 F    ^
V 3p^ p\        V4       F  pW#,          pK  	  V# r  rc  r  s   &   r9   rF   +TestMore.test_unroll_tuple_arg.<locals>.foo\  r  r<   333333?Nr#  rK   s   & r9   test_unroll_tuple_argTestMore.test_unroll_tuple_arg[  sO    		 
	 	R#++b/2S3;;s#34r<   c                    \         R  4       pV P                  V! R4      VP                  R4      4       V P                  V! R4      VP                  R4      4       R# )c                 >    ^ p\        V 4       F  pW,          pK  	  V# r   rc  r  s   &  r9   rF   ,TestMore.test_unroll_tuple_arg2.<locals>.fooh  s"    A#A& 'Hr<   N)r  r+  r#  rK   s   & r9   test_unroll_tuple_arg2TestMore.test_unroll_tuple_arg2g  sP    		 
	 	YY)?@YY)?@r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  f    Rp ^ p\        V 4       F  pTpTpWV,           V,           ,          pK  	  V# )r  r  r+  rc  )rE   outr   r   r&  s        r9   rF   -TestMore.test_unroll_tuple_alias.<locals>.foos  s<    AC#A&1uqy  ' Jr<   Nr#  rK   s   & r9   test_unroll_tuple_alias TestMore.test_unroll_tuple_aliasr  s.    		 
	 	.r<   c                J   \         R  4       pV P                  \        P                  4      ;_uu_ 4       pV! 4        RRR4       V P	                  R\        XP                  4      4       RpV P                  \        VP                  4      V4       R#   + '       g   i     L^; i)c                  T    Rp ^ p\        V 4       F  pV F  pW,          pK  	  K  	  V# )r  )r5  )rW   g      @rc  )rE   r6  r   r   s       r9   rF   .TestMore.test_unroll_tuple_nested.<locals>.foo  s3    %AC#A&AHC  ' Jr<   Nr   z#.*Tuple\(int[0-9][0-9], float64\).*)r   rY   r   r  r[   r\   r]   assertRegex)r3   rF   r  res   &   r9   test_unroll_tuple_nested!TestMore.test_unroll_tuple_nested  s}    		 
	 v1122fE 3 	iV%5%5!673V--.3 32s   BB"	c                    \         R  4       p\        4       ;_uu_ 4       pV! 4        RRR4       XP                  4       P                  4       pV P	                  V. RO4       R#   + '       g   i     LD; i)c                      / p ^V R&   ^V R&   / pRV^&   RV^&   \        W34       F'  pVP                  4        F  w  r4\        W44       K  	  K)  	  R# )r?   rQ   r   rC  r  N)r
   itemsrJ  )rE   r   itr&  vs        r9   rF   /TestMore.test_unroll_tuple_of_dict.<locals>.foo  sZ    AAcFAcFAAaDAaD$aV,HHJDA!K ' -r<   N)za 1zb 2z3 cz4 d)r   r   getvalue
splitlinesrI   )r3   rF   stdoutliness   &   r9   test_unroll_tuple_of_dict"TestMore.test_unroll_tuple_of_dict  s]    	
	  

	  &E !,,.(	
 s   A##A3	c                   a \        R . RO4      o\        V3R l4       pV P                  V! 4       VP                  4       4       R# )ABCc                  T   < S! ^RR4      p ^ p\        V 4       F  pW,          pK  	  V# )r?   rR  333333@rc  abcr6  r   rN  s      r9   rF   -TestMore.test_unroll_named_tuple.<locals>.foo  s0    aS/CC#C( )Jr<   Nr~  r   r   rI   rJ   r3   rF   rN  s   & @r9   test_unroll_named_tuple TestMore.test_unroll_named_tuple  ;    0		 
	 	.r<   c                    \        R . RO4      p\        R 4       pV! ^RR4      pV P                  V! V4      VP                  V4      4       R# )rN  c                 >    ^ p\        V 4       F  pW,          pK  	  V# r   rc  rE   r6  r   s   &  r9   rF   1TestMore.test_unroll_named_tuple_arg.<locals>.foo  "    C#A& 'Jr<   rR  rP  Nr~  rT  r3   rN  rF   rR  s   &   r9   test_unroll_named_tuple_arg$TestMore.test_unroll_named_tuple_arg  sL    0		 
	 !RoS3;;s#34r<   c                   a \        R . RO4      o\        V3R l4       pV P                  V! 4       VP                  4       4       R# )rN  c                  T   < S! ^^^4      p ^ p\        V 4       F  pW,          pK  	  V# rr  rc  rQ  s      r9   rF   0TestMore.test_unroll_named_unituple.<locals>.foo  s0    aA,CC#C( )Jr<   Nr~  rT  rU  s   & @r9   test_unroll_named_unituple#TestMore.test_unroll_named_unituple  rX  r<   c                    \        R . RO4      p\        R 4       pV! ^^^4      pV P                  V! V4      VP                  V4      4       R# )rN  c                 >    ^ p\        V 4       F  pW,          pK  	  V# r   rc  r[  s   &  r9   rF   4TestMore.test_unroll_named_unituple_arg.<locals>.foo  r]  r<   Nr~  rT  r^  s   &   r9   test_unroll_named_unituple_arg'TestMore.test_unroll_named_unituple_arg  sL    0		 
	 !QlS3;;s#34r<   c                h    \         R  4       pV P                  V! 4       VP                  4       4       R# )c                  F    ^ p \        \        4       F  pW,          p K  	  V # r   )r
   	_X_GLOBAL)r6  r   s     r9   rF   .TestMore.test_unroll_global_tuple.<locals>.foo  s"    C#I. /Jr<   Nr#  rK   s   & r9   test_unroll_global_tuple!TestMore.test_unroll_global_tuple  s.    		 
	 	.r<   c                t   a Ro\         V3R l4       pV P                  V! 4       VP                  4       4       R# )r  c                  @   < ^ p \        S4       F  pW,          p K  	  V # r   rc  )r6  r   rE   s     r9   rF   /TestMore.test_unroll_freevar_tuple.<locals>.foo  s#    C#A& 'Jr<   Nr     r#  )r3   rF   rE   s   & @r9   test_unroll_freevar_tuple"TestMore.test_unroll_freevar_tuple  s4    		 
	 	.r<   c                   a \         R  4       p\         R 4       pW3o\         V3R l4       pV P                  V! 4       VP                  4       4       R# )c                      ^# rr  rC   rC   r<   r9   rQ   .TestMore.test_unroll_function_tuple.<locals>.a  ru  r<   c                      ^# rw  rC   rC   r<   r9   r   .TestMore.test_unroll_function_tuple.<locals>.b  ru  r<   c                  J   < ^ p \        S4       F  pW! 4       ,          p K  	  V # r   rc  )r6  r%  rE   s     r9   rF   0TestMore.test_unroll_function_tuple.<locals>.foo   s'    C#A&qs
 'Jr<   Nr#  )r3   rQ   r   rF   rE   s   &   @r9   test_unroll_function_tuple#TestMore.test_unroll_function_tuple  s^    		 
	 
	 
	 F		 
	 	.r<   c                   \         R  4       p\        ^4       Uu. uF  q"NK  	  pp\        4       ;_uu_ 4        V P                  V! V4      VP	                  V4      4       RRR4       \        4       ;_uu_ 4       pV! V4       RRR4       XP                  4       P                  4       pV P                  V. RO4       R# u upi   + '       g   i     Ll; i  + '       g   i     L\; i)c                     ^ p^ pV  Uu. uF  q3NK  	  ppRp\        V4       F&  pW$V,          ,          pV^,          p\        V4       K(  	  W3# u upi )r   )rQ      gq=
ףp?NrI  )contr   r   rQ   normal_listheter_tupleitems   &      r9   rF   /TestMore.test_unroll_indexing_list.<locals>.foo  s^    AC&*+d1dK+/K&{31~%Qd 4 6M ,s   
AN)rQ   25z0.23None)r   r   r   rI   rJ   rG  rH  )r3   rF   r   datarI  rJ  s   &     r9   test_unroll_indexing_list"TestMore.test_unroll_indexing_list	  s    			 
		 !8$8a8$ SYD(9:  &I !,,.'	
 %  s   
B?(C:	CC	C'	c                  aa \         P                  ! R4      \         P                  ! R4      \         P                  ! R4      3o^ RIHo \        VV3R l4       pV P                  V! 4       VP                  4       4       R# )r?   rc  c                  N   < ^ p S! S4       F  pWP                   ,          p K  	  V # r   )ndim)r6  r   freevar_unrollmixeds     r9   rF   .TestMore.test_unroller_as_freevar.<locals>.foo*  s'    C#E*vv +Jr<   Nrr  )r?   r?   )r?   r?   r?   )r<  r=  r  r
   r   rI   rJ   )r3   rF   r  r  s   & @@r9   test_unroller_as_freevar!TestMore.test_unroller_as_freevar&  sW    1CD:		 
	 	.r<   c                (    \        R 4      R 4       pR# )z(Tuple((int64, float64)),)c                 D    \        V 4       F  pK  	  ^pV^8X  d   ^ pK  R# )r?   Nrc  )r   r1  rE   s   &  r9   rF   CTestMore.test_unroll_with_non_conformant_loops_present.<locals>.foo6  s,    #C( ) Aq& r<   Nri  rK   s   & r9   -test_unroll_with_non_conformant_loops_present6TestMore.test_unroll_with_non_conformant_loops_present3  s     
*	+	 
,	r<   c                   a \         P                  ! RR.RR.R7      p\        VP                  P                  P                  4       4      o\        V3R l4       pV P                  V! V4      R4       R# )	r?   r  c                    < ^ p\        S4       F4  pV\        P                  ! W,          4      P                  4       ,           pK6  	  V# r   r
   r<  absr8  arrresr&  fieldss   &  r9   rF   >TestMore.test_literal_unroll_legalize_var_names01.<locals>.fooD  9    C#F+BFF36N..00 ,Jr<          @Nr  rA   rB   )r  f8)r  r  r<  arraytupler  r  r   r   rI   r3   testrF   r  s   &  @r9   (test_literal_unroll_legalize_var_names011TestMore.test_literal_unroll_legalize_var_names01?  sb    xx(|0LMtzz((--/0		 
	 	TC(r<   c                   a \         P                  ! RR.RR.R7      p\        VP                  P                  P                  4       4      o\        V3R l4       pV P                  V! V4      R4       R# )	r?   r  c                    < ^ p\        S4       F4  pV\        P                  ! W,          4      P                  4       ,           pK6  	  V# r   r  r  s   &  r9   rF   >TestMore.test_literal_unroll_legalize_var_names02.<locals>.fooS  r  r<   r  Nr  r  )za1[0]r  )za2[1]r  r  r  s   &  @r9   (test_literal_unroll_legalize_var_names021TestMore.test_literal_unroll_legalize_var_names02M  sf    xx(.@Btzz((--/0		 
	 	TC(r<   rC   N)ra   rb   rc   rd   r  r  r   r  r  r&  r,  r1  r8  r?  rK  rV  r_  rd  ri  ro  rv  r  r  r  r  r  r  re   rf   rg   s   @r9   r  r    s     
 
$ ]]67 80 ]]MN) O)
5	A/4$
./5/5	/
//(
:/
)) )r<   r  c                L   a  \        RRR7       ! V 3R lR\        4      4       pV# )zbReturns a compiler pass that captures the mutation state reported
by the pass used in the argumentFTri   c                   b   <a  ] tR tRt o R ZP                  ,          t ZtR tV3R ltRtV t	R# )capture.<locals>.ResultCaptureri`  z
capture_%sc                2    \         P                  ! V 4       R # rp   rq   rs   s   &r9   rr   (capture.<locals>.ResultCapturer.__init__e  s    !!$'r<   c                t   < S! 4       P                  V4      pVP                  P                  R / 4      pW#S&   V# )mutation_results)ry   r   
setdefault)r3   rx   resultr  	real_passs   &&  r9   ry   (capture.<locals>.ResultCapturer.run_passh  s:    [))%0F$~~889KRP*0Y'Mr<   rC   N)
ra   rb   rc   rd   r{   
_real_passrr   ry   re   rf   )rh   r  s   @r9   ResultCapturerr  `  s'     y.
	(	 	r<   r  )r   r   )r  r  s   f r9   capturer  ]  s-     uD9  : r<   c                   *   a  ] tR tRt o RtR tRtV tR# )CapturingCompileriq  z>Simple pipeline that wraps passes with the ResultCapturer passc                  a \        R 4      oV3R lpV! \        R4       V! \        R4       V! \        R4       V! \        R4       V! \
        R4       V! \        R4       V! \        R4       V! \        R	4       SP                  4        S.# )
zCapturing Compilerc                 :   < SP                  \        V 4      V4      # rp   )r   r  )rE   r   r   s   &&r9   r   4CapturingCompiler.define_pipelines.<locals>.add_passw  s    ;;wqz1--r<   r   zfix up argsr   zhandles literal_unrollr   z$ensure IR is legal prior to loweringr   r   )
r   r   r   r   r   r   r    r#   r!   r   )r3   r   r   s   & @r9   r   "CapturingCompiler.define_pipelinest  s    -.	. 	"$89M*/ 89 	&(;< 	7	9 	!23"9:
tr<   rC   N)ra   rb   rc   rd   __doc__r   re   rf   rg   s   @r9   r  r  q  s     I r<   r  c                   D   a  ] tR tRt o R tR tR tR tR tR t	Rt
V tR	# )
TestLiteralUnrollPassTriggeringi  c                    \        \        R 7      R 4       pV! 4        VP                  VP                  ^ ,          ,          pV P	                  VP
                  R,          \        ,          4       R# )r   c                  ,    ^ p R F  pW,          p K  	  V # r   rC   r   s     r9   rF   LTestLiteralUnrollPassTriggering.test_literal_unroll_not_invoked.<locals>.foo  s    C Jr<   r  Nr   r  r+   r,   assertFalser   r   r3   rF   r6   s   &  r9   test_literal_unroll_not_invoked?TestLiteralUnrollPassTriggering.test_literal_unroll_not_invoked  sU    	.	/	 
0	 	}}S^^A./'9:=IJr<   c                    \        \        R 7      R 4       pV! 4        VP                  VP                  ^ ,          ,          pV P	                  VP
                  R,          \        ,          4       R# )r   c                  >    ^ p \        R4       F  pW,          p K  	  V # r   rc  r   s     r9   rF   KTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked.<locals>.foo  s"    C#I. /Jr<   r  N)r   r  r+   r,   r/   r   r   r  s   &  r9   test_literal_unroll_is_invoked>TestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked  sS    	.	/	 
0	 	}}S^^A./&89-HIr<   c                   a \         o\        \        R 7      V3R l4       pV! 4        VP                  VP                  ^ ,          ,          pV P                  VP                  R,          \        ,          4       R# )r   c                  :   < ^ p S! R4       F  pW,          p K  	  V # r   rC   )r   r   aliass     r9   rF   UTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked_via_alias.<locals>.foo  s#    C9% &Jr<   r  N)r
   r   r  r+   r,   r/   r   r   )r3   rF   r6   r  s   &  @r9   (test_literal_unroll_is_invoked_via_aliasHTestLiteralUnrollPassTriggering.test_literal_unroll_is_invoked_via_alias  sY    	.	/	 
0	 	}}S^^A./&89-HIr<   c                    \        \        R 7      R 4       pV! 4        VP                  VP                  ^ ,          ,          pV P	                  VP
                  R,          \        ,          4       R# )r   c                      R # rp   rC   rC   r<   r9   rF   VTestLiteralUnrollPassTriggering.test_literal_unroll_assess_empty_function.<locals>.foo  s    r<   r  Nr  r  s   &  r9   )test_literal_unroll_assess_empty_functionITestLiteralUnrollPassTriggering.test_literal_unroll_assess_empty_function  sU    	.	/	 
0	 	}}S^^A./'9:=IJr<   c                   R p/ p\        V/ V4       \        \        R7      ! VR,          4      pV! 4        VP                  VP                  ^ ,          ,          pV P                  VP                  R,          \        ,          4       R# )zdef foo():
	passr   rF   r  N)execr   r  r+   r,   r  r   r   )r3   r%  r%  rF   r6   s   &    r9   "test_literal_unroll_not_in_globalsBTestLiteralUnrollPassTriggering.test_literal_unroll_not_in_globals  sd    $QA"34QuX>}}S^^A./'9:=IJr<   c                   R p/ p\        V/ V4       \        \        R7      ! VR,          4      pV P                  \        P
                  4      ;_uu_ 4       pV! 4        RRR4       T P                  R\        XP                  4      4       / p\        VR\        /V4       \        \        R7      ! VR,          4      pV! 4        VP                  VP                  ^ ,          ,          pV P                  VP                  R,          \        ,          4       ^ RIHp Rp/ p\        V! V4      / V4       \        \        R7      ! VR	,          4      pV! 4        VP                  VP                  ^ ,          ,          pV P                  VP                  R,          \        ,          4       ^ RIHp R
p/ p\        V! V4      / V4       \        \        R7      ! VR	,          4      pV! 4        VP                  VP                  ^ ,          ,          pV P                  VP                  R,          \        ,          4       R#   + '       g   i     EL; i)z1def foo():
	for x in literal_unroll((1,)):
		passr   rF   Nz$Untyped global name 'literal_unroll'r
   r  )dedentz
            def gen():
                from numba import literal_unroll
                def foo():
                    for x in literal_unroll((1,)):
                        pass
                return foo
            bar = gen()
            r  a  
            def gen():
                from numba import literal_unroll as something_else
                def foo():
                    for x in something_else((1,)):
                        pass
                return foo
            bar = gen()
            )r  r   r  rY   r   r  r[   r\   r]   r
   r+   r,   r/   r   r   textwrapr  )r3   r%  r%  rF   r  r6   r  s   &      r9   &test_literal_unroll_globals_and_localsFTestLiteralUnrollPassTriggering.test_literal_unroll_globals_and_locals  s   HQA"34QuX>v1122fE 3<&**+	- Q!>2A6"34QuX>}}S^^A./&89-HI 	$ VAYA"34QuX>}}S^^A./&89-HI 	$ VAYA"34QuX>}}S^^A./&89-HI_ 322s   H;;I	rC   N)ra   rb   rc   rd   r  r  r  r  r  r  re   rf   rg   s   @r9   r  r    s/     
K
JJKK4J 4Jr<   r  __main__rt  )=collectionsr   numpyr<  numba.tests.supportr   r   r   r   r  r   r	   r
   r   
numba.corer   r   r   numba.testingr   numba.core.extendingr   numba.core.compiler_machineryr   r   r   r   numba.core.compilerr   numba.core.untyped_passesr   r   r   r   r   r   r   r   numba.core.typed_passesr   r    r!   r"   r#   numba.core.ir_utilsr$   r%   numba.core.types.functionsr&   rm  r(   rm   r}   r  r  r  r  r  r  ra   mainrC   r<   r9   <module>r     s   " L L 5 5 ( ( " )G G ,B B B5 5 J 3	%7_h %7P 56
L 
 7
zC zCzY-?H Y-xc-/8 c-L	K)x K)\
( 8nJh nJb zMMO r<   