+
    :i                         ^ RI HtHt ^ RIHtHtHtHt ^ RIH	t	 ^ RI
Ht ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIt^ RItR	 tR
 tR tR tR t ! R R]P8                  4      t]R8X  d   ]P>                  ! 4        R# R# )    )jitnjit)typesirconfigcompiler)
cpu_target)type_annotations)copy_propagateapply_copy_propagateget_name_var_table)type_inference_stage)IRPreservingTestPipelineNc                 H    ^pTpV ^ 8  d
   W,           pM^ p^V,          pW`8  #     )bzwxx1yas   &&&    ]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/numba/tests/test_copy_propagate.pytest_will_propagater      s/    	A	
B1uE	BA5L    c                 H    ^pV ^ 8  d   W,           p^pM^ p^V,          pWP8  # r   r   )r   r   r   r   r   r   s   &&&   r   test_wont_propagater      s/    	A1uE	AA5Lr   c                     R # )Nr   )r   r   cds   &&&&r   	null_funcr#   (   s    	r   c                 @    V  F  pVP                   V8X  g   K   R # 	  R# TF)name)list_varvaris   && r   	inListVarr*   ,   s    66S=  r   c                 P   V P                   P                  4        F  w  r#\        VP                  4       Fi  w  rE\	        V\
        P                  4      '       g   K'  VP                  P                  V8w  g   KD  VP                  4       p\        Wa4      '       g   Kg    R # 	  K  	  R# r%   )blocksitems	enumeratebody
isinstancer   Assigntargetr&   	list_varsr*   )func_irr(   labelblockr)   install_vars   &&     r   
findAssignr9   3   sq    ,,. ,GA$		**t{{/?/?/D..*W**	 - / r   c                   8   a  ] tR t^>t o R tR tR tR tRtV t	R# )TestCopyPropagatec                R   \         P                  p\         P                  p\        P                  ! \
        4      pVP                  4        VP                  4        \        P                  \        P                  \        P                  3p\        VVVVR 4      w  rVrx\        P                  ! VVVRR VV\        P                  R7      p	\        VP                  V4      w  r\!        VP                  V
\#        VP                  4      VV4       V P%                  \'        VR4      4       R # )Nr4   typemap	calltypesliftedlifted_fromargsreturn_typehtml_outputr   r   )r	   typing_contexttarget_contextr   run_frontendr   refreshr   int64r   r
   TypeAnnotationr   HTMLr   r,   r   r   assertFalser9   self	typingctx	targetctxtest_irrB   r>   rC   r?   _type_annotationin_cpsout_cpss   &           r   test1TestCopyPropagate.test1?   s    --	--	''(;<U[[%++6-A)DMDKDHDH	.J*i
 +99#% )AW^^V 27>> BG )	+ 	GT23r   c                P   \         P                  p\         P                  p\        P                  ! \
        4      pVP                  4        VP                  4        \        P                  \        P                  \        P                  3p\        VVVVR 4      w  rVrx\        P                  ! VVVRR VV\        P                  R7      p	\        VP                  V4      w  r\!        VP                  V
\#        VP                  4      WW4       V P%                  \'        VR4      4       R # )Nr=   r   r   )r	   rE   rF   r   rG   r   rH   r   rI   r   r
   rJ   r   rK   r   r,   r   r   
assertTruer9   rM   s   &           r   test2TestCopyPropagate.test2[   s    --	--	''(;<U[[%++6-A)DMDKDHDH	.J*i
 +99#% )AW^^V5G5WY`l
7C01r   c                P   R p\        \        R7      ! V4      pV P                  V! ^4      V! ^4      4       VP                  VP                  ^ ,          ,          P
                  R,          pV P                  \        VP                  4      ^8H  4       \        \        VP                  P                  4       4      4      pRpVP                   F  p\        V\        P                  4      '       g   K%  VP                   P"                  R8X  g   KB  RpT P                  \        VP$                  \        P&                  4      ;'       dE    VP$                  P(                  R8H  ;'       d$    VP$                  P*                  P"                  R8H  4       K  	  V P                  V4       R	# )
zmake sure Interpreter._remove_unused_temporaries() has removed extra copies
in the IR in simple cases so copy propagation is faster
c                     V ^,           pV# r   r   )r   r   s   & r   	test_impl?TestCopyPropagate.test_input_ir_extra_copies.<locals>.test_imply   s    AAHr   )pipeline_classpreserved_irFr   Tbinopr   N)r   r   assertEqual	overloads
signaturesmetadatarY   lenr,   nextitervaluesr/   r0   r   r1   r2   r&   valueExproplhs)rN   r^   j_funcfirr6   b_foundstmts   &      r   test_input_ir_extra_copies,TestCopyPropagate.test_input_ir_extra_copiesu   s2   	 %=>yI1vay1 v0034==nMCJJ1,-T#**++-./JJD$		**t{{/?/?3/F
4::rww ? !P !P

0!P !P59ZZ^^5H5HC5OQ  	 r   c                   R pR pR p ! R R4      pV P                  V! ^4      \        V4      ! ^4      4       V P                  V! \        P                  ! ^4      ^ ^4      \        V4      ! \        P                  ! ^4      ^ ^4      4       V P                  V! V! 4       ^4      \	        RR7      ! V4      ! V! 4       ^4      4       R# )	ztmake sure Interpreter._remove_unused_temporaries() does not generate
invalid code for rare chained assignment cases
c                     V ^,           ;rW3#    r   )r   r   r!   s   &  r   impl1DTestCopyPropagate.test_input_ir_copy_remove_transform.<locals>.impl1   s    EMA6Mr   c                 >    V^,           ;q0V&   W0V,          ^,           3# rw   r   )Ar)   r   r   s   &&& r   impl2DTestCopyPropagate.test_input_ir_copy_remove_transform.<locals>.impl2   s"    1uA!dQh;r   c                 H    V^,           ;q n         W P                   ^,           3# rw   )r   )r|   r   r   s   && r   impl3DTestCopyPropagate.test_input_ir_copy_remove_transform.<locals>.impl3   s    !eOAccAg:r   c                       ] tR t^tRtR# )@TestCopyPropagate.test_input_ir_copy_remove_transform.<locals>.Cr   N)__name__
__module____qualname____firstlineno____static_attributes__r   r   r   Cr      s    r   r   T)forceobjN)rc   r   nponesr   )rN   ry   r}   r   r   s   &    r   #test_input_ir_copy_remove_transform5TestCopyPropagate.test_input_ir_copy_remove_transform   s    
	
	
		 	 	q4;q>2rwwqz1a0$u+bggaj!Q2OPqsAT(:5(A!#q(IJr   r   N)
r   r   r   r   rV   rZ   rs   r   r   __classdictcell__)__classdict__s   @r   r;   r;   >   s      4824!0K Kr   r;   __main__) numbar   r   
numba.corer   r   r   r   numba.core.registryr	   numba.core.annotationsr
   numba.core.ir_utilsr   r   r   numba.core.typed_passesr   numba.tests.supportr   numpyr   unittestr   r   r#   r*   r9   TestCaser;   r   mainr   r   r   <module>r      st     2 2 * 30 0 8 8  
gK)) gKT zMMO r   