Ë
    èÿæi¬®  ã                   ó  — d Z ddlZddlZddlmZ ddlZddlmZm	Z	m
Z
mZ ddlmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZ ddlmZ ddlmZm Z  dd	l!m"Z" dd
l#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ dZ, ed¬«      d„ «       Z-d„ Z. ee.d¬«      d„ «       Z/ G d„ de&«      Z0dZ1d„ Z2 G d„ de(e0«      Z3 G d„ de(e0«      Z4 G d„ de(e0«      Z5 G d„ de0«      Z6 G d„ de(e0«      Z7 G d „ d!e&«      Z8 G d"„ d#e&«      Z9e:d$k(  r e'jv                  «        yy)%zn
This tests the inline kwarg to @jit and @overload etc, it has nothing to do with
LLVM or low level inlining.
é    N)Úproduct)ÚnjitÚtypeofÚ	literallyÚprange)ÚtypesÚirÚir_utilsÚcgutilsÚerrorsÚutils)ÚoverloadÚoverload_methodÚoverload_attributeÚregister_modelÚmodelsÚmake_attribute_wrapperÚ	intrinsicÚregister_jitable)ÚInlineOptions)ÚDefaultPassBuilderÚCompilerBase)ÚInlineOverloads©Ú	signature)ÚTestCaseÚunittestÚMemoryLeakMixinÚIRPreservingTestPipelineÚskip_parfors_unsupportedÚignore_internal_warningsiÎÿÿÿÚalways©Úinlinec                 ó   — | dz   S ©Né   © ©Úxs    úq/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/tests/test_ir_inlining.pyÚ_global_funcr,   &   s   € àˆq‰5€Ló    c                 ó   — | dz   S r&   r(   r)   s    r+   Ú_global_defnr/   ,   s   € Øˆq‰5€Lr-   c                 ó   — t         S ©N©r/   r)   s    r+   Ú_global_overloadr3   0   s   € äÐr-   c                   ó&   — e Zd ZdZdddœZd„ Zd„ Zy)ÚInliningBaseFT©r"   Úneverc                 ó  — |j                   j                  «       D ]o  }|j                  D ]^  }t        |t        j
                  «      sŒt        |j                  t        j                  «      sŒC|j                  j                  dk(  sŒ]  y Œq y)Né   TF)ÚblocksÚvaluesÚbodyÚ
isinstancer	   ÚAssignÚvalueÚFreeVar)ÚselfÚfunc_irÚblkÚstmts       r+   Úsentinel_17_cost_modelz#InliningBase.sentinel_17_cost_model>   sc   € ð —>‘>×(Ñ(Ö*ˆCØŸœ�Ü˜d¤B§I¡IÕ.Ü! $§*¡*¬b¯j©jÕ9ØŸ:™:×+Ñ+¨rÓ1Ú#'ñ	 !ð +ð r-   c                 ó|  — |j                  dd «      }|sJ ‚|j                  dd«      }|rJ ‚|j                  «       D ])  \  }}t        |t        «      sJ ‚t        |t        «      rŒ)J ‚  t        t        ¬«      |«      }| j                   ||Ž  ||Ž «       |j                  |j                  d      j                  d   }	t        j                  |	j                  «      |	_        | j                  r+t        dj!                  dd	«      «       |	j#                  «        |d
k7  r%| j                  t%        |	j                  «      |«       t'        t)        |	j                  j+                  «       «      «      }
|
j-                  «       D �cg c]  }|‘Œ }}|sJ ‚|j                  «       D ]’  \  }}d}|D ]r  }t/        |dd«      dk(  r.|	j1                  |j2                  «      }||j4                  |k(  z  }ŒAt        j6                  |«      sŒW||j8                  j:                  |k(  z  }Œt | j=                  ||k(  «       Œ” |	S c c}w )NÚinline_expectÚblock_countr'   ©Úpipeline_classr   Úpreserved_irÚFIRéP   Ú-ÚSKIPFÚopÚcall)ÚpopÚitemsr=   ÚstrÚboolr   r   ÚassertEqualÚ	overloadsÚ
signaturesÚmetadatar
   Úsimplify_CFGr:   Ú_DEBUGÚprintÚcenterÚdumpÚlenÚnextÚiterr;   Ú
find_exprsÚgetattrÚget_definitionÚfuncÚnameÚis_operator_or_getitemÚfnÚ__name__ÚassertFalse)rA   Ú	test_implÚargsÚkwargsrG   rH   ÚkÚvÚj_funcÚfirÚblockr*   ÚexprsÚfoundÚexprÚ	func_defns                   r+   ÚcheckzInliningBase.checkK   s  € ØŸ
™
 ?°DÓ9ˆÙÐˆ}Ø—j‘j °Ó2ˆÙÐˆzØ!×'Ñ'Ö)‰DˆAˆqÜ˜a¤Ô%Ð%Ð%Ü˜a¤Õ&Ð&Ð&ð *ð ?”Ô%=Ô>¸yÓIˆð 	×Ñ™ DÐ)©6°4¨=Ô9ð ×Ñ˜v×0Ñ0°Ñ3Ñ4×=Ñ=¸nÑMˆÜ×*Ñ*¨3¯:©:Ó6ˆŒ
Ø�;Š;Ü�%—,‘,˜r 3Ó'Ô(Ø�H‰HŒJØ˜&Ò Ø×ÑœS §¡›_¨kÔ:Ü”T˜#Ÿ*™*×+Ñ+Ó-Ó.Ó/ˆð "×,Ñ,Ô.Ó/Ñ.�q’Ð.ˆÐ/ÙˆˆuØ!×'Ñ'Ö)‰DˆAˆqØˆEÛ�Ü˜4  uÓ-°Ò7Ø #× 2Ñ 2°4·9±9Ó =�IØ˜YŸ^™^¨qÑ0Ñ0‘EÜ×4Ñ4°TÕ:Ø˜TŸW™W×-Ñ-°Ñ2Ñ2‘Eð ð ×Ñ˜U a™ZÕ(ð *ð ˆ
ùò 0s   Æ	H9N)ri   Ú
__module__Ú__qualname__r[   Úinline_opt_as_boolrE   rw   r(   r-   r+   r5   r5   5   s   „ à€Fà$(°5Ñ9Ðò
	ó&r-   r5   éÒ  c                  ó   ‡— dŠdˆfd„	} | S )NiþÊ  c                 ó¤  •— | |z   }| ‰z  } t        j                  |t         j                  ¬«      }||z   }d|z  }d}	d}
t        j                  |«      dkD  rç||z  }t        j                  d|dz   «      }t        j
                  ||z
  «      ||z  z   }t        j                  |d   «      dk  r7t        | «      D ]!  }|	dz  }	t        j                  |	«      dk  sŒ! n |	|d   z  }	||z  }g }t        t        |«      «      D ];  }|j                  ||   «       |dkD  rd}d}
|d	|z
  kD  r|
|z  }
|
|d   t        z   z  }
Œ= |z   z   |
z   |z   | z   |	z   S )
N©Údtypeù              ð?r   r'   é   é   é   é{   éz   )
ÚnpÚzerosÚ	complex64ÚabsÚarangeÚsqrtÚranger_   ÚappendÚ_GLOBAL)ÚaÚbÚcÚdÚeÚfÚgÚhÚiÚnÚtrn   ÚlÚmÚoÚpÚqÚrÚsÚ_FREEVARs                      €r+   Úfooz_gen_involved.<locals>.foo{   s`  ø€ Ø�‰EˆØ	ˆX‰ˆÜ�H‰H�QœbŸl™lÔ+ˆØ�‰EˆØ�‰FˆàˆØˆÜ�6‰6�!‹9�qŠ=Ø�A‘ˆAÜ—	‘	˜!˜Q ™UÓ#ˆAÜ—‘˜˜A™“  Q¡Ñ&ˆAÜ�v‰v�a˜‘d‹|˜aÒÜ˜qž�AØ˜‘F�AÜ—v‘v˜a“y 1“}Ùð "ð �Q�q‘T‘	�Ø�A‘ˆAØˆAÜœ3˜q›6–]�Ø—‘˜˜1™”Ø�u’9Ø�AØ�AØ˜3 ™7’{Ø˜Q™˜Ø�Q�q‘TœG‘^Ñ#‘ð #ð �1‰u�q‰y˜1‰}˜qÑ  1Ñ$ qÑ(Ð(r-   )é   r€   Nr(   )r¢   r¡   s    @r+   Ú_gen_involvedr¤   x   s   ø€ Ø€Hõ)ð@ €Jr-   c                   óœ   — e Zd Zd„ Zd„ Zd„ Z ej                  d«      d„ «       Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestFunctionInliningc                 ó^   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddi¬«       y )Nr7   r#   c                   ó   — y r1   r(   r(   r-   r+   r¢   z9TestFunctionInlining.test_basic_inline_never.<locals>.foo¡   ó   € àr-   c                  ó   •—  ‰ «       S r1   r(   ©r¢   s   €r+   Úimplz:TestFunctionInlining.test_basic_inline_never.<locals>.impl¥   ó
   ø€ Ù“5ˆLr-   r¢   F©rG   ©r   rw   ©rA   r¬   r¢   s     @r+   Útest_basic_inline_neverz,TestFunctionInlining.test_basic_inline_never    s3   ø€ Ü	�WÔ	ñ	ó 
ð	ô	à�
‰
�4¨¨u ~ˆ
Õ6r-   c                 ó^   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddi¬«       y )Nr"   r#   c                   ó   — y r1   r(   r(   r-   r+   r¢   z:TestFunctionInlining.test_basic_inline_always.<locals>.fooª   r©   r-   c                  ó   •—  ‰ «       S r1   r(   r«   s   €r+   r¬   z;TestFunctionInlining.test_basic_inline_always.<locals>.impl®   r­   r-   r¢   Tr®   r¯   r°   s     @r+   Útest_basic_inline_alwaysz-TestFunctionInlining.test_basic_inline_always©   s3   ø€ Ü	�XÔ	ñ	ó 
ð	ô	à�
‰
�4¨¨t }ˆ
Õ5r-   c                 ó4  ‡‡‡	— ˆˆˆ	fd„}d}t        |||«      D ]|  \  }}}t        |¬«      d„ «       Š	t        |¬«      d„ «       Št        |¬«      d„ «       Š| j                  |   | j                  |   | j                  |   dœ}| j                  ||¬«       Œ~ y )	Nc                  ó8   •—  ‰«       }  ‰«       } ‰«       }| ||fS r1   r(   ©r*   ÚyÚzÚbarÚbazr¢   s      €€€r+   r¬   z;TestFunctionInlining.test_basic_inline_combos.<locals>.impl´   ó#   ø€ Ù“ˆAÙ“ˆAÙ“ˆAØ�a˜�7ˆNr-   r6   r#   c                   ó   — y r1   r(   r(   r-   r+   r¢   z:TestFunctionInlining.test_basic_inline_combos.<locals>.foo¾   ó   € àr-   c                   ó   — y r1   r(   r(   r-   r+   r»   z:TestFunctionInlining.test_basic_inline_combos.<locals>.barÂ   r¿   r-   c                   ó   — y r1   r(   r(   r-   r+   r¼   z:TestFunctionInlining.test_basic_inline_combos.<locals>.bazÆ   r¿   r-   ©r¢   r»   r¼   r®   )r   r   rz   rw   )
rA   r¬   ÚoptsÚ
inline_fooÚ
inline_barÚ
inline_bazrG   r»   r¼   r¢   s
          @@@r+   Útest_basic_inline_combosz-TestFunctionInlining.test_basic_inline_combos²   s¹   ú€ ö	ð 'ˆä29¸$ÀÀdÖ2KÑ.ˆJ˜
 Jä˜Ô$ñó %ðô ˜Ô$ñó %ðô ˜Ô$ñó %ðð %)×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GñIˆMð �J‰J�t¨=ˆJÕ9ñ# 3Lr-   z$Need to work out how to prevent thisc                 ój   ‡‡— t        d¬«      ˆfd„«       ŠdŠˆˆfd„}| j                  |ddi¬«       y )	Nr"   r#   c                 ó(   •— | dk(  ry ‰| dz
  «       y )Nr   r£   r'   r(   )r*   r¢   s    €r+   r¢   z7TestFunctionInlining.test_recursive_inline.<locals>.fooÒ   s   ø€ à�AŠvØá�A˜‘E•
r-   r�   c                  óD   •— d} ‰dkD  r| dz  }  ‰d«       | ‰k  r| dz  } y y )Nr   r'   rƒ   r(   )r�   r�   r¢   s    €€r+   r¬   z8TestFunctionInlining.test_recursive_inline.<locals>.implÛ   s4   ø€ ØˆAØ�1ŠuØ�Q‘�Ù�ŒFØ�1ŠuØ�Q‘‘ð r-   r¢   Tr®   r¯   )rA   r¬   r�   r¢   s     @@r+   Útest_recursive_inlinez*TestFunctionInlining.test_recursive_inlineÏ   s>   ù€ ô 
�XÔ	ó	ó 
ð	ð ˆõ	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 ó
  ‡‡	‡
— d„ }ˆˆ	ˆ
fd„}d}t        |||«      D ]d  \  }}} ||dd«      Š
 ||dd«      Š ||dd	«      Š	| j                  |   | j                  |   | j                  |   d
œ}| j                  ||¬«       Œf y )Nc                 óB   ‡‡‡— ‰dz   Št        | ¬«      ˆˆˆfd„«       }|S )Nr£   r#   c                  ó   •— ‰ ‰dz   ‰fS ©Nr�   r(   ©r*   r¹   rº   s   €€€r+   re   zITestFunctionInlining.test_freevar_bindings.<locals>.factory.<locals>.funcê   s   ø€ à˜1˜q™5 !�}Ð$r-   )r   )r$   r*   r¹   re   rº   s    `` @r+   Úfactoryz;TestFunctionInlining.test_freevar_bindings.<locals>.factoryç   s(   ú€ Ø�B‘ˆAä˜Ô õ%ó !ð%àˆKr-   c                  ó8   •—  ‰«       }  ‰«       } ‰«       }| ||fS r1   r(   r¸   s      €€€r+   r¬   z8TestFunctionInlining.test_freevar_bindings.<locals>.implï   r½   r-   r6   é
   é   é   é(   é2   é<   rÂ   r®   ©r   rz   rw   )rA   rÑ   r¬   rÃ   rÄ   rÅ   rÆ   rG   r»   r¼   r¢   s           @@@r+   Útest_freevar_bindingsz*TestFunctionInlining.test_freevar_bindingså   s�   ú€ ò	ö	ð 'ˆä29¸$ÀÀdÖ2KÑ.ˆJ˜
 Já˜* b¨"Ó-ˆCÙ˜* b¨"Ó-ˆCÙ˜* b¨"Ó-ˆCà$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GñIˆMð �J‰J�t¨=ˆJÕ9ñ 3Lr-   c                 ó4   — d„ }| j                  |ddi¬«       y )Nc                  ó   — d} t        | «      S ©Né   )r,   r)   s    r+   r¬   z6TestFunctionInlining.test_global_binding.<locals>.impl  ó   € ØˆAÜ “?Ð"r-   r,   Tr®   ©rw   ©rA   r¬   s     r+   Útest_global_bindingz(TestFunctionInlining.test_global_binding  ó   € ò	#ð 	�
‰
�4¨¸Ð'=ˆ
Õ>r-   c                 óF   ‡— ddl mŠ ˆfd„}| j                  |ddi¬«       y )Nr'   ©r»   c                  ó(   •— t         dz   }  ‰«       | fS ©Nr‚   ©Ú_GLOBAL1©rº   r»   s    €r+   r¬   zBTestFunctionInlining.test_inline_from_another_module.<locals>.impl  ó   ø€ Ü˜1‘ˆAÙ“5˜!�8ˆOr-   r»   Tr®   )Úinlining_usecasesr»   rw   ©rA   r¬   r»   s     @r+   Útest_inline_from_another_modulez4TestFunctionInlining.test_inline_from_another_module
  ó!   ø€ å*ô	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óL   ‡— dd l mc mŠ ˆfd„}| j                  |ddi¬«       y )Nr   c                  ó:   •— t         dz   } ‰j                  «       | fS rç   )ré   r»   ©rº   Úiucs    €r+   r¬   zLTestFunctionInlining.test_inline_from_another_module_w_getattr.<locals>.impl  ó   ø€ Ü˜1‘ˆAØ—7‘7“9˜a�<Ðr-   r»   Tr®   ©Únumba.tests.inlining_usecasesÚtestsrì   rw   ©rA   r¬   ró   s     @r+   Ú)test_inline_from_another_module_w_getattrz>TestFunctionInlining.test_inline_from_another_module_w_getattr  ó$   ø€ ç3Ð3ô	 ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óN   ‡— dd l }dd lmŠ ˆfd„}| j                  |ddi¬«       y )Nr   c                  óN   •— t         dz   } ‰j                  j                  «       | fS rç   )ré   rì   r»   ©rº   Únts    €r+   r¬   zNTestFunctionInlining.test_inline_from_another_module_w_2_getattr.<locals>.impl#  ó&   ø€ Ü˜1‘ˆAØ×'Ñ'×+Ñ+Ó-¨qÐ0Ð0r-   r»   Tr®   ©rö   Únumba.testsr÷   rw   ©rA   Únumbar¬   rþ   s      @r+   Ú+test_inline_from_another_module_w_2_getattrz@TestFunctionInlining.test_inline_from_another_module_w_2_getattr  ó$   ø€ ã,Ý ô	1ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óN   ‡— d„ } |«       Šˆfd„}| j                  |ddi¬«       y )Nc                  ó<   ‡— ddl mŠ t        d¬«      ˆfd„«       } | S )Nr'   rå   r"   r#   c                  ó   •—  ‰ «       S r1   r(   rå   s   €r+   Útmpz]TestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.factory.<locals>.tmp.  ó
   ø€ á“u�r-   )rì   r»   r   )r	  r»   s    @r+   rÑ   zPTestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.factory+  ó"   ø€ Ý.ä˜Ô"óó #ðàˆJr-   c                  ó(   •— t         dz   }  ‰«       | fS rç   rè   ©rº   r¼   s    €r+   r¬   zMTestFunctionInlining.test_inline_from_another_module_as_freevar.<locals>.impl5  rë   r-   r»   Tr®   rà   )rA   rÑ   r¬   r¼   s      @r+   Ú*test_inline_from_another_module_as_freevarz?TestFunctionInlining.test_inline_from_another_module_as_freevar)  ó,   ø€ ò	ñ ‹iˆô	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óX   ‡— ddl mŠ ˆfd„} |dd«      }| j                  |ddi¬«       y )	Nr'   )Úbaz_factoryc                 ó,   •‡ ‡‡—  ‰‰ «      Šˆ ˆˆfd„}|S )Nc                  ó0   •— t         ‰‰z  z   }  ‰«       | ‰fS r1   rè   ©rº   r�   r�   r»   s    €€€r+   r¬   zYTestFunctionInlining.test_inline_w_freevar_from_another_module.<locals>.gen.<locals>.implB  ó   ø€ Ü˜q 1™uÑ$�Ù“u˜a �{Ð"r-   r(   )r�   r�   r¬   r»   r  s   `` @€r+   ÚgenzKTestFunctionInlining.test_inline_w_freevar_from_another_module.<locals>.gen?  ó   û€ Ù˜a“.ˆCö#ð ˆKr-   rÓ   rÔ   r»   Tr®   )rì   r  rw   )rA   r  r¬   r  s      @r+   Ú)test_inline_w_freevar_from_another_modulez>TestFunctionInlining.test_inline_w_freevar_from_another_module;  ó,   ø€ å2ô	ñ �2�r‹{ˆØ�
‰
�4¨¨t }ˆ
Õ5r-   c                 ó  ‡ ‡‡‡‡— ˆ fd„}ˆ fd„}dD ]8  \  ŠŠt        |¬«      ˆfd„«       Šˆˆfd„}‰ j                  |dd‰d	k(  i¬
«       Œ: dD ]8  \  ŠŠt        |¬«      ˆfd„«       Šˆˆfd„}‰ j                  |dd‰d	k(  i¬
«       Œ: y )Nc                 óž   •— ‰j                  | t        j                  «       ‰j                  | j                  d«       ‰j                  |«      S ©NrQ   ©ÚassertIsInstancer	   ÚExprrV   rP   rE   ©ru   Úcaller_infoÚcallee_inforA   s      €r+   Ús17_caller_modelzCTestFunctionInlining.test_inlining_models.<locals>.s17_caller_modelL  ó<   ø€ Ø×!Ñ! $¬¯©Ô0Ø×Ñ˜TŸW™W fÔ-Ø×.Ñ.¨{Ó;Ð;r-   c                 óž   •— ‰j                  | t        j                  «       ‰j                  | j                  d«       ‰j                  |«      S r  r  r   s      €r+   Ús17_callee_modelzCTestFunctionInlining.test_inlining_models.<locals>.s17_callee_modelQ  r$  r-   )©é   r9   ©r9   r(  r#   c                  ó   •— ‰ S r1   r(   ©Úcallees   €r+   r¢   z6TestFunctionInlining.test_inlining_models.<locals>.fooY  ó   ø€ à�r-   c                 ó*   •— | ‰z   } ‰«       }|dz   |fS rÏ   r(   ©rº   r*   r¹   Úcallerr¢   s      €€r+   r¬   z7TestFunctionInlining.test_inlining_models.<locals>.impl]  ó    ø€ Ø˜‘J�Ù“E�Ø˜1‘u˜a�x�r-   rÓ   r¢   r9   r®   c                  ó   •— ‰ S r1   r(   r+  s   €r+   r»   z6TestFunctionInlining.test_inlining_models.<locals>.barg  r-  r-   c                 ó*   •— | ‰z   } ‰«       }|dz   |fS rÏ   r(   ©rº   r*   r¹   r»   r0  s      €€r+   r¬   z7TestFunctionInlining.test_inlining_models.<locals>.implk  r1  r-   r»   r¯   )rA   r#  r&  r¬   r»   r,  r0  r¢   s   `   @@@@r+   Útest_inlining_modelsz)TestFunctionInlining.test_inlining_modelsJ  s¡   ü€ ô	<ô
	<ó 3‰NˆF�FäÐ)Ô*óó +ðõ ð
 �J‰J�t˜R°°vÀ±|Ð/DˆJÕEð 3ó 3‰NˆF�FäÐ)Ô*óó +ðõ ð
 �J‰J�t˜R°°vÀ±|Ð/DˆJÕEñ 3r-   c                 ó`   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddid¬«       y )	Nr"   r#   c                   ó   — y©Nr£   r(   r(   r-   r+   r¢   z9TestFunctionInlining.test_inline_inside_loop.<locals>.foos  ó   € àr-   c                  ó@   •— d} t        d«      D ]  }|  ‰«       z  } Œ | S )Nç        rƒ   ©rŒ   )Úaccr—   r¢   s     €r+   r¬   z:TestFunctionInlining.test_inline_inside_loop.<locals>.implw  s&   ø€ ØˆCÜ˜1–X�Ø‘s“u‘‘ð àˆJr-   r¢   Té   ©rG   rH   r¯   r°   s     @r+   Útest_inline_inside_loopz,TestFunctionInlining.test_inline_inside_loopr  s7   ø€ Ü	�XÔ	ñ	ó 
ð	ô	ð 	�
‰
�4¨¨t }À!ˆ
ÕDr-   c                 ó`   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddid¬«       y )	Nr"   r#   c                   ó   — yr8  r(   r(   r-   r+   r¢   zHTestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.foo€  r9  r-   c                  óJ   •— d} t        d«      D ]  }ˆfd„}|  |«       z  } Œ | S )Nr;  rƒ   c                  ó   •—  ‰ «       dz   S ©Né   r(   r«   s   €r+   r»   zVTestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.impl.<locals>.bar‡  s   ø€ Ù›5 1™9Ð$r-   r<  )r=  r—   r»   r¢   s      €r+   r¬   zITestFunctionInlining.test_inline_inside_closure_inside_loop.<locals>.impl„  s-   ø€ ØˆCÜ˜1–X�ô%à‘s“u‘‘ð ð ˆJr-   r¢   Tr>  r?  r¯   r°   s     @r+   Ú&test_inline_inside_closure_inside_loopz;TestFunctionInlining.test_inline_inside_closure_inside_loop  s7   ø€ Ü	�XÔ	ñ	ó 
ð	ô	ð 	�
‰
�4¨¨t }À!ˆ
ÕDr-   c                 ó`   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddid¬«       y )	Nr"   r#   c                 ó"   ‡ — ˆ fd„} |«       dz   S )Nc                  ó   •— d‰ z   S r8  r(   )r�   s   €r+   r¼   zbTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.foo.<locals>.baz‘  s   ø€ Ø˜A‘v�r-   é   r(   )r�   r¼   s   ` r+   r¢   zUTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.foo�  s   ø€ ôá“5˜1‘9Ðr-   c                  ó,   •‡— dŠˆˆfd„}  | ‰dz   «      S )Né	   c                 ó    •—  ‰‰«      dz   | z   S rE  r(   ©r*   r¢   rº   s    €€r+   r»   zcTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.impl.<locals>.bar˜  ó   ø€ Ù˜1“v ‘z A‘~Ð%r-   r‚   r(   ©r»   rº   r¢   s    @€r+   r¬   zVTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closure.<locals>.impl•  ó   ù€ ØˆAõ&á�q˜1‘u“:Ðr-   r¢   Tr'   r?  r¯   r°   s     @r+   Ú3test_inline_closure_inside_inlinable_inside_closurezHTestFunctionInlining.test_inline_closure_inside_inlinable_inside_closureŽ  s7   ø€ Ü	�XÔ	ñ	ó 
ð	ô
	ð 	�
‰
�4¨¨t }À!ˆ
ÕDr-   c                 óP  ‡‡‡—  t        d¬«      t        «       «      Št        d¬«      ˆfd„«       Št        d¬«      ˆˆfd„«       Šˆfd„}t        j                  dv rd}n.t        j                  dv rd	}nt	        t        j                  «      ‚| j                  |d
d
d
dœ|¬«       y )Nr"   r#   c                 óz   •‡— dŠˆfd„}t        | «      D ]#  }‰ |d‰z   «       ‰d‰dd |‰«      «      z   z  ŠŒ% ‰S )Nr   c                 ó   •— | ‰z   S r1   r(   )r™   r=  s    €r+   ÚbizzCTestFunctionInlining.test_inline_involved.<locals>.boz.<locals>.biz¦  s   ø€ Ø˜3‘w�r-   rK  ç       @r'   y              (@r<  )ÚjrW  r*   r=  Úfortrans      @€r+   Úbozz6TestFunctionInlining.test_inline_involved.<locals>.boz¢  sH   ù€ àˆCôä˜1–X�Ø‘s˜1˜s™7“|¡g¨b°#°q¸#¹sÀ3»xÓ&HÑHÑH‘ð àˆJr-   c                 óš   •‡ ‡— d}t        d«      D ].  } ‰ddddd«      Šˆ ˆfd„}| ||«      dz    ‰|«      z   ‰z   z  }Œ0 | d«      z   S )Nr   r£   r'   c                 ó   •— d‰z   | z   ‰z   S r8  r(   )r*   r�   r	  s    €€r+   r¼   zCTestFunctionInlining.test_inline_involved.<locals>.foo.<locals>.baz²  s   ø€ Ø ™6 A™:¨Ñ+Ð+r-   rK  r‚   r<  )r�   r=  r�   r¼   r	  r[  rZ  s   `   @€€r+   r¢   z6TestFunctionInlining.test_inline_involved.<locals>.foo¬  s]   ú€ àˆCÜ˜2–Y�Ù˜a  A q¨!Ó,�õ,à‘s˜1“v ‘z¡C¨£FÑ*¨SÑ0Ñ0‘ð ð ™˜Q›‘<Ðr-   c                  ó,   •‡— dŠˆˆfd„}  | ‰dz   «      S )NrM  c                 ó    •—  ‰‰«      dz   | z   S rE  r(   rO  s    €€r+   r»   zDTestFunctionInlining.test_inline_involved.<locals>.impl.<locals>.barº  rP  r-   r‚   r(   rQ  s    @€r+   r¬   z7TestFunctionInlining.test_inline_involved.<locals>.impl·  rR  r-   ))r�   r£   )r�   é   )r�   é   é'   ))r�   rÓ   )r�   r(  é#   T)r¢   r[  rZ  r?  )r   r¤   r   Ú	PYVERSIONÚNotImplementedErrorrw   )rA   r¬   Úbcr[  r¢   rZ  s      @@@r+   Útest_inline_involvedz)TestFunctionInlining.test_inline_involvedž  s£   ú€ à'”$˜hÔ'¬«Ó8ˆä	�XÔ	ó	ó 
ð	ô 
�XÔ	ô	 ó 
ð	 ô	ô �?‰?Ð9Ñ9Ø‰BÜ�_‰_Ð 2Ñ2Ø‰Bä%¤e§o¡oÓ6Ð6à�
‰
�4¨t¸DØ37ñ(9ØFHð 	õ 	Jr-   c                 ó  ‡
— t        d¬«      d„ «       Š
t        t        ¬«      ˆ
fd„«       }| j                   |dd«      d«       |j                  |j                  d	      j
                  d
   }g }|j                  j                  «       D ]~  }|j                  D ]m  }t        |t        j                  «      sŒt        |j                  t        j                  «      sŒC|j                  j                  dk(  sŒ]|j                  |«       Œo Œ€ | j                  t        |«      d«       |D ]X  }|j                   j"                  }| j%                  «       j'                  | j(                  «      }|› d�}	| j+                  ||	«       ŒZ y )Nr"   r#   c                 ó   — d}d}||z   | z   S )Nrƒ   rÓ   r(   )rº   r*   r¹   s      r+   r»   z=TestFunctionInlining.test_inline_renaming_scheme.<locals>.barÍ  s   € àˆAØˆAØ�q‘5˜1‘9Ðr-   rI   c                 ó$   •—  ‰| «       ‰|«      fS r1   r(   )r�   r�   r»   s     €r+   r¢   z=TestFunctionInlining.test_inline_renaming_scheme.<locals>.fooÓ  ó   ø€ á�q“6™3˜q›6�>Ð!r-   rÓ   rÔ   )é   rc  r   rK   rƒ   r‚   z__locals__bar_v[0-9]+.x)r   r   rV   rW   rX   rY   r:   r;   r<   r=   r	   r>   r?   ÚConstr�   r_   Útargetrf   ÚidÚlstriprx   ÚassertRegex)rA   r¢   rB   ÚstorerC   rD   r—   rf   ÚbasenameÚregexr»   s             @r+   Útest_inline_renaming_schemez0TestFunctionInlining.test_inline_renaming_schemeÉ  s>  ø€ ô 
�XÔ	ñ	ó 
ð	ô
 
Ô5Ô	6ó	"ó 
7ð	"ð 	×Ñ™˜R › hÔ/ð —-‘- §¡¨qÑ 1Ñ2×;Ñ;¸NÑKˆØˆØ—>‘>×(Ñ(Ö*ˆCØŸœ�Ü˜d¤B§I¡IÕ.Ü! $§*¡*¬b¯h©hÕ7ØŸ:™:×+Ñ+¨qÓ0Ø!ŸL™L¨Õ.ñ	 !ð +ð 	×Ñœ˜U› QÔ'ÛˆAØ—8‘8—=‘=ˆDØ—w‘w“y×'Ñ'¨¯©Ó8ˆHØ �zÐ!8Ð9ˆEØ×Ñ˜T 5Õ)ñ	 r-   N)ri   rx   ry   r±   rµ   rÇ   r   ÚskiprË   rÚ   râ   rî   rù   r  r  r  r5  r@  rG  rS  rg  ru  r(   r-   r+   r¦   r¦   ž   sy   „ ò7ò6ò:ð: €X‡]�]Ð9Ó:ñ6ó ;ð6ò*:ò:?ò6ò6ò	6ò6ò$6ò&FòPEòEòEò )JóV#*r-   r¦   c                   ó   — e Zd Zd„ Zy)ÚTestRegisterJitableInliningc                 ó^   ‡— t        d¬«      d„ «       Šˆfd„}| j                  |ddi¬«       y )Nr"   r#   c                   ó   — yr&   r(   r(   r-   r+   r¢   zFTestRegisterJitableInlining.test_register_jitable_inlines.<locals>.fooó  s   € àr-   c                  ó   •—  ‰ «        y r1   r(   r«   s   €r+   r¬   zGTestRegisterJitableInlining.test_register_jitable_inlines.<locals>.impl÷  s   ø€ Ù�Er-   r¢   Tr®   )r   rw   r°   s     @r+   Útest_register_jitable_inlinesz9TestRegisterJitableInlining.test_register_jitable_inlinesñ  s5   ø€ ä	 Ô	*ñ	ó 
+ð	ô	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   N)ri   rx   ry   r|  r(   r-   r+   rx  rx  ï  s   „ ó	6r-   rx  c                   ó�   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestOverloadInliningc                 óf   ‡— d„ Št        ‰d¬«      d„ «       }ˆfd„}| j                  |ddi¬«       y )	Nc                   ó   — y r1   r(   r(   r-   r+   r¢   z9TestOverloadInlining.test_basic_inline_never.<locals>.foo   ó   € Ør-   r7   r#   c                  ó   — d„ } | S )Nc                   ó   — y r1   r(   r(   r-   r+   Úfoo_implzTTestOverloadInlining.test_basic_inline_never.<locals>.foo_overload.<locals>.foo_impl  ó   € Ør-   r(   )r„  s    r+   Úfoo_overloadzBTestOverloadInlining.test_basic_inline_never.<locals>.foo_overload  s   € òàˆOr-   c                  ó   •—  ‰ «       S r1   r(   r«   s   €r+   r¬   z:TestOverloadInlining.test_basic_inline_never.<locals>.impl	  r­   r-   r¢   Fr®   ©r   rw   ©rA   r†  r¬   r¢   s      @r+   r±   z,TestOverloadInlining.test_basic_inline_neverÿ  s>   ø€ ò	ô 
�#˜gÔ	&ñ	ó 
'ð	ô
	ð 	�
‰
�4¨¨u ~ˆ
Õ6r-   c                 óf   ‡— d„ Št        ‰d¬«      d„ «       }ˆfd„}| j                  |ddi¬«       y )	Nc                   ó   — y r1   r(   r(   r-   r+   r¢   z:TestOverloadInlining.test_basic_inline_always.<locals>.foo  r�  r-   r"   r#   c                  ó   — d„ } | S )Nc                   ó   — y r1   r(   r(   r-   r+   r¬   zQTestOverloadInlining.test_basic_inline_always.<locals>.foo_overload.<locals>.impl  r…  r-   r(   ©r¬   s    r+   r†  zCTestOverloadInlining.test_basic_inline_always.<locals>.foo_overload  s   € òàˆKr-   c                  ó   •—  ‰ «       S r1   r(   r«   s   €r+   r¬   z;TestOverloadInlining.test_basic_inline_always.<locals>.impl  r­   r-   r¢   Tr®   rˆ  r‰  s      @r+   rµ   z-TestOverloadInlining.test_basic_inline_always  s>   ø€ ò	ô 
�#˜hÔ	'ñ	ó 
(ð	ô
	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óf   ‡— d„ Št        ‰d¬«      d„ «       }ˆfd„}| j                  |ddi¬«       y )	Nc                 ó   — | |z   S r1   r(   ©r�   r�   s     r+   r¢   zBTestOverloadInlining.test_inline_always_kw_no_default.<locals>.foo   s   € Ø�q‘5ˆLr-   r"   r#   c                 ó   — d„ S )Nc                 ó   — | |z   S r1   r(   r’  s     r+   Ú<lambda>z]TestOverloadInlining.test_inline_always_kw_no_default.<locals>.overload_foo.<locals>.<lambda>%  s   €   A¢r-   r(   r’  s     r+   Úoverload_foozKTestOverloadInlining.test_inline_always_kw_no_default.<locals>.overload_foo#  s   € á%Ð%r-   c                  ó   •—  ‰ dd¬«      S )Nr�   r>  ©r�   r(   r«   s   €r+   r¬   zCTestOverloadInlining.test_inline_always_kw_no_default.<locals>.impl'  s   ø€ Ù�q˜A”;Ðr-   r¢   Tr®   rˆ  ©rA   r–  r¬   r¢   s      @r+   Ú test_inline_always_kw_no_defaultz5TestOverloadInlining.test_inline_always_kw_no_default  s>   ø€ ò	ô 
�#˜hÔ	'ñ	&ó 
(ð	&ô	ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óp  ‡‡— d„ }d„ }d„ Š| j                  «       \  }Št        |d‰«       t        |d‰«       t        t        j                  d¬«      ˆˆfd„«       }t        t        j
                  d	¬«      ˆˆfd
„«       }| j                  | |«       ddi¬«       | j                  | |«       ddi¬«       y )Nc                 ó   — |  S r1   r(   r)   s    r+   Úimpl_inlinezETestOverloadInlining.test_inline_operators_unary.<locals>.impl_inline.  ó	   € Ø�2ˆIr-   c                 ó   — | ­S r1   r(   r)   s    r+   Úimpl_noinlinezGTestOverloadInlining.test_inline_operators_unary.<locals>.impl_noinline1  rž  r-   c                  ó   — y©NTr(   r)   s    r+   r•  zBTestOverloadInlining.test_inline_operators_unary.<locals>.<lambda>4  s   €  Tr-   Ú__neg__Ú__pos__r"   r#   c                 ó"   •— t        | ‰«      r‰S y r1   ©r=   ©r*   Ú	DummyTypeÚdummy_unary_impls    €€r+   Úoverload_dummy_negzLTestOverloadInlining.test_inline_operators_unary.<locals>.overload_dummy_neg9  ó   ø€ ä˜!˜YÔ'Ø'Ð'ð (r-   r7   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  r§  s    €€r+   Úoverload_dummy_poszLTestOverloadInlining.test_inline_operators_unary.<locals>.overload_dummy_pos>  r«  r-   ÚnegTr®   ÚposF)Úmake_dummy_typeÚsetattrr   Úoperatorr®  r¯  rw   )rA   r�  r   ÚDummyrª  r­  r¨  r©  s         @@r+   Útest_inline_operators_unaryz0TestOverloadInlining.test_inline_operators_unary,  s°   ù€ ò	ò	ñ *ÐØ×/Ñ/Ó1ÑˆˆyÜ��yÐ"2Ô3Ü��yÐ"2Ô3ä	”(—,‘, xÔ	0ô	(ó 
1ð	(ô 
”(—,‘, wÔ	/ô	(ó 
0ð	(ð 	�
‰
�;¡£¸¸t°}ˆ
ÔEØ�
‰
�=¡%£'¸%À¸ˆ
ÕHr-   c                 óp  ‡‡— d„ }d„ }| j                  «       \  }Šd„ Št        |d‰«       t        |d‰«       t        t        j                  d¬«      ˆˆfd„«       }t        t        j
                  d	¬«      ˆˆfd
„«       }| j                  | |«       ddi¬«       | j                  | |«       ddi¬«       y )Nc                 ó   — | dk(  S r&   r(   r)   s    r+   r�  zETestOverloadInlining.test_inline_operators_binop.<locals>.impl_inlineH  ó   € Ø˜‘6ˆMr-   c                 ó   — | dk7  S r&   r(   r)   s    r+   r   zGTestOverloadInlining.test_inline_operators_binop.<locals>.impl_noinlineK  r·  r-   c                  ó   — yr¢  r(   r’  s     r+   r•  zBTestOverloadInlining.test_inline_operators_binop.<locals>.<lambda>P  s   € ¨r-   Ú__eq__Ú__ne__r"   r#   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  ©r�   r�   r¨  Údummy_binop_impls     €€r+   Úoverload_dummy_eqzKTestOverloadInlining.test_inline_operators_binop.<locals>.overload_dummy_eqT  r«  r-   r7   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  r½  s     €€r+   Úoverload_dummy_nezKTestOverloadInlining.test_inline_operators_binop.<locals>.overload_dummy_neY  r«  r-   ÚeqTr®   ÚneF)r°  r±  r   r²  rÂ  rÃ  rw   )rA   r�  r   r³  r¿  rÁ  r¨  r¾  s         @@r+   Útest_inline_operators_binopz0TestOverloadInlining.test_inline_operators_binopF  s°   ù€ ò	ò	ð  ×/Ñ/Ó1Ñˆˆyá,ÐÜ��xÐ!1Ô2Ü��xÐ!1Ô2ä	”(—+‘+ hÔ	/ô	(ó 
0ð	(ô 
”(—+‘+ gÔ	.ô	(ó 
/ð	(ð 	�
‰
�;¡£¸¸d°|ˆ
ÔDØ�
‰
�=¡%£'¸$À¸ˆ
ÕGr-   c                 ó   ‡‡	— d„ }d„ }| j                  «       \  }Šd„ Š	t        |d‰	«       t        |d‰	«       t        t        j                  d¬«      ˆˆ	fd„«       }t        t        j
                  d	¬«      ˆˆ	fd
„«       }t        t        j                  d¬«      ˆˆ	fd„«       }t        t        j                  d	¬«      ˆˆ	fd„«       }| j                  | |«       ddi¬«       | j                  | |«       ddi¬«       y )Nc                 ó   — | dz  } y r&   r(   r)   s    r+   r�  zMTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.impl_inlinec  ó   € Ø�‰F‰Ar-   c                 ó   — | dz  } y r&   r(   r)   s    r+   r   zOTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.impl_noinlinef  rÇ  r-   c                  ó   — yr¢  r(   r’  s     r+   r•  zJTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.<lambda>k  s   € °r-   Ú__iadd__Ú__isub__r"   r#   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  ©r�   r�   r¨  Údummy_inplace_binop_impls     €€r+   Úoverload_dummy_iaddzUTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_iaddo  ó   ø€ ä˜!˜YÔ'Ø/Ð/ð (r-   r7   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  rÍ  s     €€r+   Úoverload_dummy_isubzUTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_isubt  rÐ  r-   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  rÍ  s     €€r+   Úoverload_dummy_addzTTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_add{  rÐ  r-   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  rÍ  s     €€r+   Úoverload_dummy_subzTTestOverloadInlining.test_inline_operators_inplace_binop.<locals>.overload_dummy_sub€  rÐ  r-   ÚiaddTr®   ÚisubF)	r°  r±  r   r²  r×  rØ  ÚaddÚsubrw   )
rA   r�  r   r³  rÏ  rÒ  rÔ  rÖ  r¨  rÎ  s
           @@r+   Ú#test_inline_operators_inplace_binopz8TestOverloadInlining.test_inline_operators_inplace_binopa  sî   ù€ ò	ò	ð  ×/Ñ/Ó1Ñˆˆyá#4Ð Ü��zÐ#;Ô<Ü��zÐ#;Ô<ä	”(—-‘-¨Ô	1ô	0ó 
2ð	0ô 
”(—-‘-¨Ô	0ô	0ó 
1ð	0ô 
”(—,‘, xÔ	0ô	0ó 
1ð	0ô 
”(—,‘, wÔ	/ô	0ó 
0ð	0ð 	�
‰
�;¡£¸À°~ˆ
ÔFØ�
‰
�=¡%£'¸&À%¸ˆ
ÕIr-   c                 ó  ‡‡— d„ }d„ }| j                  «       \  }Šd„ Št        |d‰«       t        t        j                  d¬«      ˆˆfd„«       }| j                  | |«       dd	d
i¬«       | j                  | |«       d	d
i¬«       y )Nc                 ó   — | |   S r1   r(   ©r*   Úidxs     r+   r¬   zGTestOverloadInlining.test_inline_always_operators_getitem.<locals>.implŠ  ó   € Ø�S‘6ˆMr-   c                 ó   — | d   S r&   r(   r)   s    r+   Úimpl_static_getitemzVTestOverloadInlining.test_inline_always_operators_getitem.<locals>.impl_static_getitem�  ó   € Ø�Q‘4ˆKr-   c                  ó   — y r1   r(   ©Úobjrß  s     r+   r•  zKTestOverloadInlining.test_inline_always_operators_getitem.<locals>.<lambda>’  ó   € ¨dr-   Ú__getitem__r"   r#   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  ©ræ  rß  r¨  Údummy_getitem_impls     €€r+   Úoverload_dummy_getitemzYTestOverloadInlining.test_inline_always_operators_getitem.<locals>.overload_dummy_getitem•  ó   ø€ ä˜#˜yÔ)Ø)Ð)ð *r-   r'   ÚgetitemTr®   ©r°  r±  r   r²  rî  rw   ©rA   r¬   râ  r³  rì  r¨  rë  s        @@r+   Ú$test_inline_always_operators_getitemz9TestOverloadInlining.test_inline_always_operators_getitemˆ  s‘   ù€ ò	ò	ð  ×/Ñ/Ó1Ñˆˆyá2ÐÜ��}Ð&8Ô9ä	”(×"Ñ"¨8Ô	4ô	*ó 
5ð	*ð 	�
‰
�4™› !°I¸tÐ3Dˆ
ÔEØ�
‰
Ð&©«Ø"+¨TÐ!2ð 	õ 	4r-   c                 ó  ‡‡— d„ }d„ }| j                  «       \  }Šd„ Št        |d‰«       t        t        j                  d¬«      ˆˆfd„«       }| j                  | |«       dd	d
i¬«       | j                  | |«       d	d
i¬«       y )Nc                 ó   — | |   S r1   r(   rÞ  s     r+   r¬   zFTestOverloadInlining.test_inline_never_operators_getitem.<locals>.impl¢  rà  r-   c                 ó   — | d   S r&   r(   r)   s    r+   râ  zUTestOverloadInlining.test_inline_never_operators_getitem.<locals>.impl_static_getitem¥  rã  r-   c                  ó   — y r1   r(   rå  s     r+   r•  zJTestOverloadInlining.test_inline_never_operators_getitem.<locals>.<lambda>ª  rç  r-   rè  r7   r#   c                 ó"   •— t        | ‰«      r‰S y r1   r¦  rê  s     €€r+   rì  zXTestOverloadInlining.test_inline_never_operators_getitem.<locals>.overload_dummy_getitem­  rí  r-   r'   rî  Fr®   rï  rð  s        @@r+   Ú#test_inline_never_operators_getitemz8TestOverloadInlining.test_inline_never_operators_getitem   s‘   ù€ ò	ò	ð  ×/Ñ/Ó1Ñˆˆyá2ÐÜ��}Ð&8Ô9ä	”(×"Ñ"¨7Ô	3ô	*ó 
4ð	*ð 	�
‰
�4™› !°I¸uÐ3Eˆ
ÔFØ�
‰
Ð&©«Ø"+¨UÐ!3ð 	õ 	5r-   c                 ó  ‡— d„ Št        ‰d¬«      d„ «       }ˆfd„}| j                  t        «      5 }| j                  |ddi¬«       d d d «       | j	                  d	t        j                  «      «       y # 1 sw Y   Œ/xY w)
Nc                 ó   — | |d   z   S ©Nr   r(   r’  s     r+   r¢   z;TestOverloadInlining.test_inline_stararg_error.<locals>.foo¹  s   € Ø�q˜‘t‘8ˆOr-   r"   r#   c                 ó   — d„ S )Nc                 ó   — | |d   z   S rú  r(   r’  s     r+   r•  zVTestOverloadInlining.test_inline_stararg_error.<locals>.overload_foo.<locals>.<lambda>¾  s   €   Q q¡T¢r-   r(   r’  s     r+   r–  zDTestOverloadInlining.test_inline_stararg_error.<locals>.overload_foo¼  s   € á)Ð)r-   c                  ó   •—  ‰ ddd«      S )Nr�   rƒ   r(   r«   s   €r+   r¬   z<TestOverloadInlining.test_inline_stararg_error.<locals>.implÀ  s   ø€ Ù�q˜!˜Q“<Ðr-   r¢   Tr®   z-Stararg not supported in inliner for arg 1 *b)r   ÚassertRaisesre  rw   ÚassertInrT   Ú	exception)rA   r–  r¬   r“   r¢   s       @r+   Útest_inline_stararg_errorz.TestOverloadInlining.test_inline_stararg_error¸  sz   ø€ ò	ô 
�#˜hÔ	'ñ	*ó 
(ð	*ô	 ð ×ÑÔ2Ô3°qØ�J‰J�t¨E°4¨=ˆJÔ9÷ 4ð 	�‰ÐEÜ˜!Ÿ+™+Ó&õ	(÷ 4Ð3ús   ²A6Á6A?c                 óL  ‡
‡‡— ˆ
ˆˆfd„}d}t        |||«      D ]ˆ  \  }}}d„ Šd„ Š
d„ Št        ‰|¬«      d„ «       }t        ‰
|¬«      d„ «       }t        ‰|¬«      d	„ «       }| j                  |   | j                  |   | j                  |   d
œ}	| j                  ||	¬«       ŒŠ y )Nc                  ó8   •—  ‰«       }  ‰«       } ‰«       }| ||fS r1   r(   r¸   s      €€€r+   r¬   z;TestOverloadInlining.test_basic_inline_combos.<locals>.implË  r½   r-   r6   c                   ó   — y r1   r(   r(   r-   r+   r¢   z:TestOverloadInlining.test_basic_inline_combos.<locals>.fooÕ  r…  r-   c                   ó   — y r1   r(   r(   r-   r+   r»   z:TestOverloadInlining.test_basic_inline_combos.<locals>.barØ  r…  r-   c                   ó   — y r1   r(   r(   r-   r+   r¼   z:TestOverloadInlining.test_basic_inline_combos.<locals>.bazÛ  r…  r-   r#   c                  ó   — d„ } | S )Nc                   ó   — y r1   r(   r(   r-   r+   r¬   zQTestOverloadInlining.test_basic_inline_combos.<locals>.foo_overload.<locals>.implà  ó   € Ør-   r(   rŽ  s    r+   r†  zCTestOverloadInlining.test_basic_inline_combos.<locals>.foo_overloadÞ  ó   € òà�r-   c                  ó   — d„ } | S )Nc                   ó   — y r1   r(   r(   r-   r+   r¬   zQTestOverloadInlining.test_basic_inline_combos.<locals>.bar_overload.<locals>.implæ  r	  r-   r(   rŽ  s    r+   Úbar_overloadzCTestOverloadInlining.test_basic_inline_combos.<locals>.bar_overloadä  r
  r-   c                  ó   — d„ } | S )Nc                   ó   — y r1   r(   r(   r-   r+   r¬   zQTestOverloadInlining.test_basic_inline_combos.<locals>.baz_overload.<locals>.implì  r	  r-   r(   rŽ  s    r+   Úbaz_overloadzCTestOverloadInlining.test_basic_inline_combos.<locals>.baz_overloadê  r
  r-   rÂ   r®   )r   r   rz   rw   )rA   r¬   rÃ   rÄ   rÅ   rÆ   r†  r  r  rG   r»   r¼   r¢   s             @@@r+   rÇ   z-TestOverloadInlining.test_basic_inline_combosÉ  sÑ   ú€ ö	ð 'ˆä29¸$ÀÀdÖ2KÑ.ˆJ˜
 Jòòòô �c *Ô-ñó .ðô
 �c *Ô-ñó .ðô
 �c *Ô-ñó .ðð
 %)×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GñIˆMð �J‰J�t¨=ˆJÕ9ñA 3Lr-   c                 ó*  ‡‡	‡
— ˆˆ	ˆ
fd„}d}t        |||«      D ]w  \  }}}d„ Š
d„ Šd„ Š	dd„} |‰
dd|¬	«        |‰d
d|¬	«        |‰	dd|¬	«       | j                  |   | j                  |   | j                  |   dœ}| j                  ||¬«       Œy y )Nc                  ó8   •—  ‰«       }  ‰«       } ‰«       }| ||fS r1   r(   r¸   s      €€€r+   r¬   z8TestOverloadInlining.test_freevar_bindings.<locals>.impl÷  r½   r-   r6   c                  ó$   — d} d}| dz   }| |dz   |fS )NrÓ   rÔ   r£   r�   r(   rÐ   s      r+   r¢   z7TestOverloadInlining.test_freevar_bindings.<locals>.foo  ó%   € Ø�Ø�Ø˜‘F�Ø˜1˜q™5 !�}Ð$r-   c                  ó$   — d} d}| dz   }| |dz   |fS )NrÕ   rÖ   r£   r�   r(   rÐ   s      r+   r»   z7TestOverloadInlining.test_freevar_bindings.<locals>.bar	  r  r-   c                  ó$   — d} d}| dz   }| |dz   |fS )NrØ   rM   r£   r�   r(   rÐ   s      r+   r¼   z7TestOverloadInlining.test_freevar_bindings.<locals>.baz  r  r-   c                 óB   ‡‡‡— ‰dz   Št        | |¬«      ˆˆˆfd„«       }y )Nr£   r#   c                  ó   •— ˆˆˆfd„} | S )Nc                  ó   •— ‰ ‰dz   ‰fS rÏ   r(   rÐ   s   €€€r+   r¬   zWTestOverloadInlining.test_freevar_bindings.<locals>.factory.<locals>.func.<locals>.impl  s   ø€ Ø ! 1 q¡5¨!˜}Ð,r-   r(   )r¬   r*   r¹   rº   s    €€€r+   re   zITestOverloadInlining.test_freevar_bindings.<locals>.factory.<locals>.func  s   ø€ ö-à�Kr-   )r   )rn  r*   r¹   r$   re   rº   s    ``  @r+   rÑ   z;TestOverloadInlining.test_freevar_bindings.<locals>.factory  s%   ú€ Ø˜‘F�ä˜&¨Ô0õ ó 1ñ r-   rÓ   rÔ   r#   rÕ   rÖ   rØ   rM   rÂ   r®   r1   rÙ   )rA   r¬   rÃ   rÄ   rÅ   rÆ   rÑ   rG   r»   r¼   r¢   s           @@@r+   rÚ   z*TestOverloadInlining.test_freevar_bindingsõ  s¯   ú€ ö	ð 'ˆä29¸$ÀÀdÖ2KÑ.ˆJ˜
 Jò%ò%ò%ó ñ �C˜˜R¨
Õ3Ù�C˜˜R¨
Õ3Ù�C˜˜R¨
Õ3à$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GØ$(×$;Ñ$;¸JÑ$GñIˆMð �J‰J�t¨=ˆJÕ9ñO 3Lr-   c                 ó4   — d„ }| j                  |ddi¬«       y )Nc                  ó   — d} t        | «      S rÝ   r2   )rº   s    r+   r¬   z?TestOverloadInlining.test_global_overload_binding.<locals>.impl*  rß   r-   r/   Tr®   rà   rá   s     r+   Útest_global_overload_bindingz1TestOverloadInlining.test_global_overload_binding(  rã   r-   c                 óF   ‡— ddl mŠ ˆfd„}| j                  |ddi¬«       y )Nr'   ©r¼   c                  ó(   •— t         dz   }  ‰«       | fS rç   rè   r  s    €r+   r¬   zBTestOverloadInlining.test_inline_from_another_module.<locals>.impl4  rë   r-   r¼   Tr®   )rì   r¼   rw   )rA   r¬   r¼   s     @r+   rî   z4TestOverloadInlining.test_inline_from_another_module0  rï   r-   c                 óL   ‡— dd l mc mŠ ˆfd„}| j                  |ddi¬«       y )Nr   c                  ó:   •— t         dz   } ‰j                  «       | fS rç   )ré   r¼   rò   s    €r+   r¬   zLTestOverloadInlining.test_inline_from_another_module_w_getattr.<locals>.impl>  rô   r-   r¼   Tr®   rõ   rø   s     @r+   rù   z>TestOverloadInlining.test_inline_from_another_module_w_getattr:  rú   r-   c                 óN   ‡— dd l }dd lmŠ ˆfd„}| j                  |ddi¬«       y )Nr   c                  óN   •— t         dz   } ‰j                  j                  «       | fS rç   )ré   rì   r¼   rý   s    €r+   r¬   zNTestOverloadInlining.test_inline_from_another_module_w_2_getattr.<locals>.implI  rÿ   r-   r¼   Tr®   r   r  s      @r+   r  z@TestOverloadInlining.test_inline_from_another_module_w_2_getattrD  r  r-   c                 óN   ‡— d„ } |«       Šˆfd„}| j                  |ddi¬«       y )Nc                  ó<   ‡— ddl mŠ t        d¬«      ˆfd„«       } | S )Nr'   r  r"   r#   c                  ó   •—  ‰ «       S r1   r(   r  s   €r+   r	  z]TestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.factory.<locals>.tmpT  r
  r-   )rì   r¼   r   )r	  r¼   s    @r+   rÑ   zPTestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.factoryQ  r  r-   c                  ó(   •— t         dz   }  ‰«       | fS rç   rè   )rº   Úbops    €r+   r¬   zMTestOverloadInlining.test_inline_from_another_module_as_freevar.<locals>.impl[  rë   r-   r¼   Tr®   rà   )rA   rÑ   r¬   r(  s      @r+   r  z?TestOverloadInlining.test_inline_from_another_module_as_freevarO  r  r-   c                 óX   ‡— ddl mŠ ˆfd„} |dd«      }| j                  |ddi¬«       y )	Nr'   )Úbop_factoryc                 ó,   •‡ ‡‡—  ‰‰ «      Šˆ ˆˆfd„}|S )Nc                  ó0   •— t         ‰‰z  z   }  ‰«       | ‰fS r1   rè   r  s    €€€r+   r¬   zYTestOverloadInlining.test_inline_w_freevar_from_another_module.<locals>.gen.<locals>.implh  r  r-   r(   )r�   r�   r¬   r»   r*  s   `` @€r+   r  zKTestOverloadInlining.test_inline_w_freevar_from_another_module.<locals>.gene  r  r-   rÓ   rÔ   r»   Tr®   )rì   r*  rw   )rA   r  r¬   r*  s      @r+   r  z>TestOverloadInlining.test_inline_w_freevar_from_another_modulea  r  r-   c                 ó.  ‡ ‡‡‡‡	— ˆ fd„}ˆ fd„}dD ]>  \  ŠŠˆfd„Š	t        ‰	|¬«      ˆfd„«       }ˆˆ	fd„}‰ j                  |dd	‰d
k(  i¬«       Œ@ dD ]>  \  ŠŠˆfd„Št        ‰|¬«      ˆfd„«       }ˆˆfd„}‰ j                  |dd‰d
k(  i¬«       Œ@ y )Nc                 ó²   •— ‰j                  | t        j                  «       ‰j                  | j                  d«       ‰j                  |j                  «      S r  ©r  r	   r  rV   rP   rE   rB   r   s      €r+   r#  zCTestOverloadInlining.test_inlining_models.<locals>.s17_caller_modelr  óB   ø€ Ø×!Ñ! $¬¯©Ô0Ø×Ñ˜TŸW™W fÔ-Ø×.Ñ.¨{×/BÑ/BÓCÐCr-   c                 ó²   •— ‰j                  | t        j                  «       ‰j                  | j                  d«       ‰j                  |j                  «      S r  r/  r   s      €r+   r&  zCTestOverloadInlining.test_inlining_models.<locals>.s17_callee_modelw  r0  r-   ))rÓ   r(  r)  c                  ó   •— ‰ S r1   r(   r+  s   €r+   r¢   z6TestOverloadInlining.test_inlining_models.<locals>.foo  ó   ø€ Ø�r-   r#   c                  ó   •— ˆfd„} | S )Nc                  ó   •— ‰ S r1   r(   r+  s   €r+   r¬   zGTestOverloadInlining.test_inlining_models.<locals>.foo_ol.<locals>.impl„  ó   ø€ Ø!�Mr-   r(   ©r¬   r,  s    €r+   Úfoo_olz9TestOverloadInlining.test_inlining_models.<locals>.foo_ol‚  ó   ø€ ô"à�r-   c                 ó*   •— | ‰z   } ‰«       }|dz   |fS rÏ   r(   r/  s      €€r+   r¬   z7TestOverloadInlining.test_inlining_models.<locals>.implˆ  r1  r-   rÓ   r¢   r9   r®   )r'  )r(  rÓ   c                  ó   •— ‰ S r1   r(   r+  s   €r+   r»   z6TestOverloadInlining.test_inlining_models.<locals>.bar’  r3  r-   c                  ó   •— ˆfd„} | S )Nc                  ó   •— ‰ S r1   r(   r+  s   €r+   r¬   zGTestOverloadInlining.test_inlining_models.<locals>.bar_ol.<locals>.impl—  r6  r-   r(   r7  s    €r+   Úbar_olz9TestOverloadInlining.test_inlining_models.<locals>.bar_ol•  r9  r-   c                 ó*   •— | ‰z   } ‰«       }|dz   |fS rÏ   r(   r4  s      €€r+   r¬   z7TestOverloadInlining.test_inlining_models.<locals>.impl›  r1  r-   r»   rˆ  )
rA   r#  r&  r8  r¬   r>  r»   r,  r0  r¢   s
   `     @@@@r+   r5  z)TestOverloadInlining.test_inlining_modelsp  sµ   ü€ ô	Dô
	Dó 3‰NˆF�Fôô �cÐ"2Ô3óó 4ðõ
 ð
 �J‰J�t˜R°°vÀ±|Ð/DˆJÕEð! 3ó& 3‰NˆF�Fôô �cÐ"2Ô3óó 4ðõ
 ð
 �J‰J�t˜R°°vÀ±|Ð/DˆJÕEñ! 3r-   c           
      ó   ‡— d„ Št        ‰d¬«      d„ «       }t        ‰d¬«      d„ «       }d„ }t        ‰|¬«      d„ «       }ˆfd	„}| j                  |d
did¬«      }t        t        |j                  j                  «       «      «      d   }|j                  d¬«      D �cg c]  }|‘Œ }	}| j                  t        |	«      dk(  «       |j                  t        j                  «      D �cg c]3  }t        t        |dd «      t        j                  «      r|j                  ‘Œ5 }
}|
D ]  }| j!                  |j                  d«       Œ  y c c}w c c}w )Nc                 ó\   — t        t        | «      t        j                  «      r| dz   S | dz   S )Nr{   r'   )r=   r   r   ÚFloatr)   s    r+   r»   z_TestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar§  s&   € Üœ& ›)¤U§[¡[Ô1Ø˜4‘x�à˜1‘u�r-   r"   r#   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — | dz   S r&   r(   r)   s    r+   r¬   ztTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_int_ol.<locals>.impl°  ó   € Ø˜q™5�Lr-   ©r=   r   ÚInteger©r*   r¬   s     r+   Ú
bar_int_olzfTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_int_ol­  ó   € ä˜!œUŸ]™]Ô+ò!à�ð ,r-   r7   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — | dz   S )Nr{   r(   r)   s    r+   r¬   zvTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_float_ol.<locals>.impl·  s   € Ø˜t™8�Or-   )r=   r   rB  rH  s     r+   Úbar_float_olzhTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_float_ol´  s   € ä˜!œUŸ[™[Ô)ò$à�ð *r-   c                   ó   — yr¢  r(   ©rl   s    r+   Úalways_inline_cost_modelztTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.always_inline_cost_model»  ó   € Ør-   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — | dz   S r&   r(   r)   s    r+   r¬   zxTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_complex_ol.<locals>.implÁ  rE  r-   )r=   r   ÚComplexrH  s     r+   Úbar_complex_olzjTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.bar_complex_ol¾  rJ  r-   c                  óD   •—  ‰d«      }  ‰d«      } ‰d«      }| |z   |z   S )Nr'   gffffff@y              @r(   ©r�   r�   r‘   r»   s      €r+   r¬   z`TestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics.<locals>.implÅ  s,   ø€ Ù�A“ˆAÙ�C“ˆAá�B“ˆAØ�q‘5˜1‘9Ðr-   r»   Fr'   r?  rQ   )rP   r?   r{   )r   rw   r`   ra   r:   rS   rb   Ú
assertTruer_   Ú
find_instsr	   r>   r=   rc   rm  r?   ÚassertNotEqual)rA   rI  rM  rP  rU  r¬   rq   rr   r*   ÚcallsÚconstsÚvalr»   s               @r+   Ú=test_multiple_overloads_with_different_inline_characteristicszRTestOverloadInlining.test_multiple_overloads_with_different_inline_characteristics¢  sM  ø€ ò
	ô 
�#˜hÔ	'ñ	ó 
(ð	ô 
�#˜gÔ	&ñ	ó 
'ð	ò	ô 
�#Ð6Ô	7ñ	ó 
8ð	ô	ð �j‰j˜¨e°U¨^ÈˆjÓKˆô ”T˜#Ÿ*™*×*Ñ*Ó,Ó-Ó.¨qÑ1ˆØ!×,Ñ,°Ð,Ô7Ó8Ñ7�q’Ð7ˆÐ8Ø�‰œ˜E›
 a™Ô(ð $)×#3Ñ#3´B·I±IÔ#>ó FÑ#>˜aÜ¤¨¨7°DÓ 9¼2¿8¹8ÔDð —'“'Ð#>ˆð FãˆCØ×Ñ §	¡	¨4Õ0ñ ùò 9ùòFs   Â	EÃ(8Ec                 óÎ   ‡— d„ }d„ Š t        ‰d¬«      |«       ˆfd„}d}| j                  ||ddi¬	«       d
„ Š t        ‰d¬«      |«       d}| j                  ||ddi¬	«       y )Nc                 ó�   — t        | t        j                  «      sd„ }|S | j                  dk(  rd„ }|S | j                  dv rd„ }|S y )Nc                 ó   — t        | «      S r1   )r   r~   s    r+   Úfoo_noopznTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_noopà  s   € Ü$ UÓ+Ð+r-   rT   c                  ó   — y©NrÓ   r(   r~   s    r+   Úfoo_as_str_implzuTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_as_str_implå  ó   € Ør-   )Úint64Úfloat64c                  ó   — y©NrÔ   r(   r~   s    r+   Úfoo_as_num_implzuTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovld.<locals>.foo_as_num_implê  rf  r-   )r=   r   ÚStringLiteralÚliteral_value)r   rb  re  rk  s       r+   Úfoo_ovldz\TestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.foo_ovldÝ  sT   € ä˜e¤U×%8Ñ%8Ô9ò,à�à×"Ñ" eÒ+òà&Ð&à×"Ñ"Ð&:Ñ:òà&Ð&ð ;r-   c                  ó   — yrd  r(   r~   s    r+   r¢   zWTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.fooï  ó   € Ør-   r"   r#   c                 ó   •—  ‰| «      S r1   r(   )r   r¢   s    €r+   rk   z]TestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.test_implô  s   ø€ Ù�u“:Ðr-   rT   r¢   Tr®   c                  ó   — yrj  r(   r~   s    r+   r¢   zWTestOverloadInlining.test_overload_inline_always_with_literally_in_inlinee.<locals>.fooü  rp  r-   rg  rˆ  )rA   rn  rk   r   r¢   s       @r+   Ú5test_overload_inline_always_with_literally_in_inlineezJTestOverloadInlining.test_overload_inline_always_with_literally_in_inlineeÚ  su   ø€ ò	'ò$	ð 	'Œ�˜XÔ& xÔ0ô	ð ˆØ�
‰
�9˜e°E¸4°=ˆ
ÔAò	à&Œ�˜XÔ& xÔ0ð ˆØ�
‰
�9˜e°E¸4°=ˆ
ÕAr-   c                 ór   ‡‡— dŠd„ Št        ‰d¬«      ˆfd„«       }ˆfd„}| j                  |dddi¬	«       y )
NTc                  ó   — yr¢  r(   ©ÚAs    r+   r¢   z8TestOverloadInlining.test_inline_always_ssa.<locals>.foo	  rQ  r-   r"   r#   c                 ó   •— ˆfd„}|S )Nc                 ó`   •— ‰}t        t        | «      «      D ]  }‰}| |   r| |   }||z  }Œ |S r1   )rŒ   r_   )rw  r    r—   ÚdummyÚ
dummy_trues       €r+   r¬   zOTestOverloadInlining.test_inline_always_ssa.<locals>.foo_overload.<locals>.impl  s?   ø€ Ø�Üœs 1›vž�AØ&�EØ˜’tØ ! !¡˜Ø˜‘J‘Að	 'ð
 �r-   r(   )rw  r¬   r{  s     €r+   r†  zATestOverloadInlining.test_inline_always_ssa.<locals>.foo_overload  s   ø€ ôð ˆKr-   c                  ó>   •—  ‰ t        j                  g d¢«      «      S )N)TFT)r†   Úarrayr«   s   €r+   r¬   z9TestOverloadInlining.test_inline_always_ssa.<locals>.impl  s   ø€ Ù”r—x‘xÒ 3Ó4Ó5Ð5r-   rO   r¢   ©rH   rG   rˆ  )rA   r†  r¬   r{  r¢   s      @@r+   Útest_inline_always_ssaz+TestOverloadInlining.test_inline_always_ssa  sG   ù€ ð ˆ
ò	ô 
�#˜hÔ	'ó
	ó 
(ð
	ô	6ð 	�
‰
�4 V¸EÀ4¸=ˆ
ÕIr-   c                 ó„  ‡— d„ Št        ‰d¬«      ˆfd„«       }t        ˆfd„«       }t        j                  d¬«      5 }t        j                  dt
        j                  «       t        «        | j                   |«       |j                  «       «       d d d «       | j                  t        «      d«       y # 1 sw Y   Œ%xY w)	Nc                  ó(   — d} | dkD  r| dz  } | dkD  rŒy)Nrƒ   r'   r‚   rÓ   r(   r˜  s    r+   r»   zGTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.bar!  s%   € ØˆAØ�a’%Ø�a‘�ð �a“%ð r-   r"   r#   c                  ó   •— ‰ S r1   r(   rå   s   €r+   Úbar_implzLTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.bar_impl(  s   ø€ àˆJr-   c                  ó   •—  ‰ «        y r1   r(   rå   s   €r+   r¢   zGTestOverloadInlining.test_inline_always_ssa_scope_validity.<locals>.foo,  s   ø€ á�Er-   T)Úrecordr   )r   r   ÚwarningsÚcatch_warningsÚsimplefilterr   ÚNumbaIRAssumptionWarningr!   rV   Úpy_funcr_   )rA   rƒ  r¢   Úwr»   s       @r+   Ú%test_inline_always_ssa_scope_validityz:TestOverloadInlining.test_inline_always_ssa_scope_validity  s¡   ø€ ò	ô 
�#˜hÔ	'ó	ó 
(ð	ô 
ó	ó 
ð	ô ×$Ñ$¨DÕ1°QÜ×!Ñ! (¬F×,KÑ,KÔLÜ$Ô&Ø×Ñ™S›U C§K¡K£MÔ2÷ 2ð 	×Ñœ˜Q› Õ#÷ 2Ð1ús   ¾AB6Â6B?N)ri   rx   ry   r±   rµ   rš  r´  rÄ  rÛ  rñ  r÷  r  rÇ   rÚ   r  rî   rù   r  r  r  r5  r^  rs  r  rŒ  r(   r-   r+   r~  r~  ý  s|   „ ò7ò6ò 6òIò4Hò6%JòN4ò05ò0(ò"*:òX1:òf?ò6ò6ò	6ò6ò$6ò0Fòd61òp(BòTJó4$r-   r~  c                   ót   ‡ — e Zd Zˆ fd„Z	 dd„Z	 dd„Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚTestOverloadMethsAttrsInliningc                 óJ   •— | j                  «        t        t        | �  «        y r1   )r°  ÚsuperrŽ  ÚsetUp)rA   Ú	__class__s    €r+   r‘  z$TestOverloadMethsAttrsInlining.setUp;  s   ø€ Ø×ÑÔÜÔ,¨dÑ9Õ;r-   c                 óP  —  t        t        ¬«      |«      }| j                   ||Ž |«       |j                  |j                  d      j
                  d   }|j                  |_        | j                  t        |j                  «      |«       |rK|j                  j                  «       D ]-  }t        |j                  d«      «      }	| j                  |	«       Œ/ y g }
|j                  j                  «       D ]  }|
t        |j                  d«      «      z  }
Œ! | j                  |
«       y )NrI   r   rK   rQ   ©r   r   rV   rW   rX   rY   r:   r_   r;   Úlistrb   rj   rX  )rA   rk   rl   ÚexpectedrH   Úexpects_inlinedrp   rq   rr   r[  Úallcallss              r+   Úcheck_methodz+TestOverloadMethsAttrsInlining.check_method?  sô   € à>”Ô%=Ô>¸yÓIˆà×Ñ™ ˜¨Ô1ð ×Ñ˜v×0Ñ0°Ñ3Ñ4×=Ñ=¸nÑMˆØ—Z‘ZˆŒ
Ø×Ñœ˜SŸZ™Z›¨+Ô6ÙàŸ™×*Ñ*Ö,�Ü˜U×-Ñ-¨fÓ5Ó6�Ø× Ñ  Õ'ñ -ð
 ˆHØŸ™×*Ñ*Ö,�ØœD ×!1Ñ!1°&Ó!9Ó:Ñ:‘ð -à�O‰O˜HÕ%r-   c                 óP  —  t        t        ¬«      |«      }| j                   ||Ž |«       |j                  |j                  d      j
                  d   }|j                  |_        | j                  t        |j                  «      |«       |rK|j                  j                  «       D ]-  }t        |j                  d«      «      }	| j                  |	«       Œ/ y g }
|j                  j                  «       D ]  }|
t        |j                  d«      «      z  }
Œ! | j                  |
«       y )NrI   r   rK   rc   r”  )rA   rk   rl   r–  rH   r—  rp   rq   rr   ÚgetattrsÚallgetattrss              r+   Úcheck_getattrz,TestOverloadMethsAttrsInlining.check_getattrU  sô   € à>”Ô%=Ô>¸yÓIˆà×Ñ™ ˜¨Ô1ð ×Ñ˜v×0Ñ0°Ñ3Ñ4×=Ñ=¸nÑMˆØ—Z‘ZˆŒ
Ø×Ñœ˜SŸZ™Z›¨+Ô6ÙàŸ™×*Ñ*Ö,�Ü × 0Ñ 0°Ó ;Ó<�Ø× Ñ  Õ*ñ -ð
 ˆKØŸ™×*Ñ*Ö,�Øœt E×$4Ñ$4°YÓ$?Ó@Ñ@‘ð -à�O‰O˜KÕ(r-   c                 ó�   — | j                  «       \  }}t        |dd¬«      d	d„«       }d„ }| j                  | |«       gdd¬«       y )
NÚinline_methodr"   r#   c                 ó   — dd„}|S )Nc                 ó   — d||fS )NúTHIS IS INLINEDr(   )ræ  r]  Úval2s      r+   ÚgetzqTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>._get_inlined_method.<locals>.getp  s   € Ø)¨3°Ð5Ð5r-   ©NNr(   )ræ  r]  r£  r¤  s       r+   Ú_get_inlined_methodzdTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>._get_inlined_methodn  s   € ó6àˆJr-   c                 óH   — | j                  d«      | j                  d¬«      fS )Nr„   éA  )r£  ©rŸ  ©ræ  s    r+   r¢   zTTestOverloadMethsAttrsInlining.test_overload_method_default_args_always.<locals>.foot  s&   € Ø×$Ñ$ SÓ)¨3×+<Ñ+<À#Ð+<Ó+FÐFÐFr-   ))r¢  r„   N)r¢  Nr¨  r'   )rk   rl   r–  rH   r¥  ©r°  r   r™  )rA   r³  r¨  r¦  r¢   s        r+   Ú(test_overload_method_default_args_alwayszGTestOverloadMethsAttrsInlining.test_overload_method_default_args_alwaysk  s^   € Ø×/Ñ/Ó1Ñˆˆyä	˜ O¸HÔ	Eò	ó 
Fð	ò
	Gð 	×ÑØÙ“'�ð6àð 	õ 	
r-   c                 óœ   ‡— ˆfd„}| j                  «       \  }}t        |d|¬«      d„ «       }d„ }| j                  | |«       gdd‰¬«       y )	Nc                  ó   •— ‰S r1   r(   )rl   Úshould_inlines    €r+   Ú	costmodelzKTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>.costmodel€  s	   ø€ Ø Ð r-   rŸ  r#   c                 ó   — d„ }|S )Nc                 ó
   — d|fS )NúTHIS IS INLINED!!!r(   )ræ  r]  s     r+   r¤  zbTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>._get_inlined_method.<locals>.get‡  s   € Ø,¨cÐ2Ð2r-   r(   )ræ  r]  r¤  s      r+   r¦  zUTestOverloadMethsAttrsInlining.make_overload_method_test.<locals>._get_inlined_method…  s   € ò3àˆJr-   c                 ó$   — | j                  d«      S ©Nr„   r©  rª  s    r+   r¢   zETestOverloadMethsAttrsInlining.make_overload_method_test.<locals>.foo‹  s   € Ø×$Ñ$ SÓ)Ð)r-   )r³  r„   r'   ©rk   rl   r–  rH   r—  r«  )rA   r°  r¯  r³  r¨  r¦  r¢   s     `    r+   Úmake_overload_method_testz8TestOverloadMethsAttrsInlining.make_overload_method_test  sf   ø€ ô	!ð  ×/Ñ/Ó1Ñˆˆyä	˜ O¸IÔ	Fñ	ó 
Gð	ò
	*ð 	×ÑØÙ“'�Ø0ØØ)ð 	õ 	
r-   c                 ó*   — | j                  dd¬«       y ©Nr"   T©r°  r¯  ©r·  ©rA   s    r+   Ú'test_overload_method_cost_driven_alwayszFTestOverloadMethsAttrsInlining.test_overload_method_cost_driven_always–  s   € Ø×&Ñ&ØØð 	'õ 	
r-   c                 ó*   — | j                  dd¬«       y ©Nr7   Frº  r»  r¼  s    r+   Ú&test_overload_method_cost_driven_neverzETestOverloadMethsAttrsInlining.test_overload_method_cost_driven_neverœ  s   € Ø×&Ñ&ØØð 	'õ 	
r-   c                 ó,   — | j                  d„ d¬«       y )Nc                   ó   — yr¢  r(   rO  s    r+   r•  z]TestOverloadMethsAttrsInlining.test_overload_method_cost_driven_must_inline.<locals>.<lambda>¤  ó   €  Dr-   Trº  r»  r¼  s    r+   Ú,test_overload_method_cost_driven_must_inlinezKTestOverloadMethsAttrsInlining.test_overload_method_cost_driven_must_inline¢  s   € Ø×&Ñ&Ù(Øð 	'õ 	
r-   c                 ó,   — | j                  d„ d¬«       y )Nc                   ó   — y©NFr(   rO  s    r+   r•  z[TestOverloadMethsAttrsInlining.test_overload_method_cost_driven_no_inline.<locals>.<lambda>ª  ó   €  Er-   Frº  r»  r¼  s    r+   Ú*test_overload_method_cost_driven_no_inlinezITestOverloadMethsAttrsInlining.test_overload_method_cost_driven_no_inline¨  s   € Ø×&Ñ&Ù)Øð 	'õ 	
r-   c                 ó�   — | j                  «       \  }}t        |d|¬«      d„ «       }d„ }| j                  | |«       gdd|¬«       y )NÚinlinemer#   c                 ó   — d„ }|S )Nc                  ó   — y)NúMY INLINED ATTRSr(   rª  s    r+   r¤  z_TestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>._get_inlineme.<locals>.get³  s   € Ø)r-   r(   )ræ  r¤  s     r+   Ú_get_inlinemezRTestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>._get_inlineme±  s   € ò*àˆJr-   c                 ó   — | j                   S r1   )rË  rª  s    r+   r¢   zHTestOverloadMethsAttrsInlining.make_overload_attribute_test.<locals>.foo·  s   € Ø—<‘<Ðr-   rÎ  r'   r¶  )r°  r   r�  )rA   r°  r¯  r³  r¨  rÏ  r¢   s          r+   Úmake_overload_attribute_testz;TestOverloadMethsAttrsInlining.make_overload_attribute_test®  s^   € Ø×/Ñ/Ó1Ñˆˆyä	˜I z¸)Ô	Dñ	ó 
Eð	ò
	 ð 	×ÑØÙ“'�Ø'ØØ)ð 	õ 	
r-   c                 ó*   — | j                  dd¬«       y r¹  ©rÑ  r¼  s    r+   Útest_overload_attribute_alwaysz=TestOverloadMethsAttrsInlining.test_overload_attribute_alwaysÂ  s   € Ø×)Ñ)ØØð 	*õ 	
r-   c                 ó*   — | j                  dd¬«       y r¿  rÓ  r¼  s    r+   Útest_overload_attribute_neverz<TestOverloadMethsAttrsInlining.test_overload_attribute_neverÈ  s   € Ø×)Ñ)ØØð 	*õ 	
r-   c                 ó,   — | j                  d„ d¬«       y )Nc                   ó   — yr¢  r(   rO  s    r+   r•  z^TestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_must_inline.<locals>.<lambda>Ð  rÃ  r-   Trº  rÓ  r¼  s    r+   Ú-test_overload_attribute_costmodel_must_inlinezLTestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_must_inlineÎ  s   € Ø×)Ñ)Ù(Øð 	*õ 	
r-   c                 ó,   — | j                  d„ d¬«       y )Nc                   ó   — yrÇ  r(   rO  s    r+   r•  z\TestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_no_inline.<locals>.<lambda>Ö  rÈ  r-   Frº  rÓ  r¼  s    r+   Ú+test_overload_attribute_costmodel_no_inlinezJTestOverloadMethsAttrsInlining.test_overload_attribute_costmodel_no_inlineÔ  s   € Ø×)Ñ)Ù)Øð 	*õ 	
r-   )T)ri   rx   ry   r‘  r™  r�  r¬  r·  r½  rÀ  rÄ  rÉ  rÑ  rÔ  rÖ  rÙ  rÜ  Ú__classcell__©r’  s   @r+   rŽ  rŽ  :  sS   ø„ ô<ð
 &*ó&ð. '+ó)ò,
ò(
ò.
ò
ò
ò
ò
ò(
ò
ò
ö
r-   rŽ  c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestGeneralInliningc                 ób   — t        t        d¬«      d„ «       }d„ }| j                  |ddi¬«       y )Nr"   r#   c                  ó   — y r1   r(   rv  s    r+   Úoverload_lenzSTestGeneralInlining.test_with_inlined_and_noninlined_variants.<locals>.overload_lenâ  s   € àr-   c                  ó   — t        g d¢«      S )N)r‚   r�   r>  )r_   r(   r-   r+   r¬   zKTestGeneralInlining.test_with_inlined_and_noninlined_variants.<locals>.implç  s   € Ü’y“>Ð!r-   r_   Fr®   )r   r_   rw   )rA   rã  r¬   s      r+   Ú)test_with_inlined_and_noninlined_variantsz=TestGeneralInlining.test_with_inlined_and_noninlined_variantsÝ  s8   € ô
 
”#˜hÔ	'ñ	$ó 
(ð	$ò	"ð 	�
‰
�4¨¨u ~ˆ
Õ6r-   c                 ój   ‡— d	d„Št        ‰d¬«      d	d„«       }ˆfd„}| j                  |ddi¬«       y )
Nc                 ó   — | |z   |z   S r1   r(   ©r�   r�   r‘   s      r+   r¢   z1TestGeneralInlining.test_with_kwargs.<locals>.fooï  s   € Ø�q‘5˜1‘9Ðr-   r"   r#   c                 ó   — dd„}|S )Nc                 ó   — | |z   |z   S r1   r(   rè  s      r+   r¬   zHTestGeneralInlining.test_with_kwargs.<locals>.overload_foo.<locals>.implô  s   € Ø˜1‘u˜q‘yÐ r-   ©r�   rƒ   r(   )r�   r�   r‘   r¬   s       r+   r–  z:TestGeneralInlining.test_with_kwargs.<locals>.overload_fooò  s   € ó!àˆKr-   c                  ó   •—  ‰ dd¬«      S )Nr�   rÓ   ©r‘   r(   r«   s   €r+   r¬   z2TestGeneralInlining.test_with_kwargs.<locals>.implø  s   ø€ Ù�q˜B”<Ðr-   r¢   Tr®   rë  rˆ  r™  s      @r+   Útest_with_kwargsz$TestGeneralInlining.test_with_kwargsí  s>   ø€ ó	ô 
�#˜hÔ	'ò	ó 
(ð	ô
	 ð 	�
‰
�4¨¨t }ˆ
Õ5r-   c                 óf   ‡— t        d¬«      d
d„«       Šdˆfd„	}| j                  |ddddi¬	«       y )Nr"   r#   c                 ó   — | |z   S r1   r(   rè  s      r+   r»   z2TestGeneralInlining.test_with_kwargs2.<locals>.barÿ  s   € à�q‘5ˆLr-   c                 ó   •—  ‰| |z   d¬«      S )NrÞ   rí  r(   rW  s      €r+   r¬   z3TestGeneralInlining.test_with_kwargs2.<locals>.impl  s   ø€ Ù�q˜1‘u Ô#Ð#r-   r�   r>  r»   Tr®   )r£   rM  )rF  rƒ   r¯   rí   s     @r+   Útest_with_kwargs2z%TestGeneralInlining.test_with_kwargs2ý  s9   ø€ ä	�XÔ	ò	ó 
ð	õ	$ð 	�
‰
�4˜˜A¨e°T¨]ˆ
Õ;r-   c                 ób   ‡— t        d¬«      d	d„«       Šˆfd„}| j                  |dddi¬«       y )
Nr"   r#   c                 ó   — |€d}| |fS rµ  r(   r’  s     r+   r»   z@TestGeneralInlining.test_inlining_optional_constant.<locals>.bar  s   € àˆyØ�Ø�q�6ˆMr-   c                  ó2   •—  ‰ «        ‰ d«       ‰ d¬«      fS )Nr„   r¨  r˜  r(   rå   s   €r+   r¬   zATestGeneralInlining.test_inlining_optional_constant.<locals>.impl  s   ø€ Ù“5™#˜c›(¡C¨#¤JÐ.Ð.r-   rO   r»   Tr~  r¥  r¯   rí   s     @r+   Útest_inlining_optional_constantz3TestGeneralInlining.test_inlining_optional_constant  s9   ø€ ô 
�XÔ	ò	ó 
ð	ô
	/ð 	�
‰
�4 V¸EÀ4¸=ˆ
ÕIr-   N)ri   rx   ry   rå  rî  rò  rö  r(   r-   r+   rà  rà  Û  s   „ ò7ò 6ò 	<óJr-   rà  c                   ó   — e Zd Zd„ Zy)ÚTestInlineOptionsc                 óÚ  — t        d«      }| j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  |j                  d«       t        d«      }| j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  |j                  d«       d„ }t        |«      }| j                  |j                  «       | j                  |j                  «       | j                  |j
                  «       | j                  |j                  |«       y )Nr"   r7   c                 ó   — | S r1   r(   r)   s    r+   Ú
cost_modelz0TestInlineOptions.test_basic.<locals>.cost_model&  s   € ØˆHr-   )	r   rX  Úis_always_inlinerj   Úis_never_inlineÚhas_cost_modelrV   r?   ÚassertIs)rA   r"   r7   rû  Úmodels        r+   Ú
test_basiczTestInlineOptions.test_basic  s  € Ü˜xÓ(ˆØ�‰˜×/Ñ/Ô0Ø×Ñ˜×/Ñ/Ô0Ø×Ñ˜×.Ñ.Ô/Ø×Ñ˜Ÿ™ xÔ0ä˜gÓ&ˆØ×Ñ˜×/Ñ/Ô0Ø�‰˜×-Ñ-Ô.Ø×Ñ˜×-Ñ-Ô.Ø×Ñ˜Ÿ™ gÔ.ò	ä˜jÓ)ˆØ×Ñ˜×/Ñ/Ô0Ø×Ñ˜×.Ñ.Ô/Ø�‰˜×,Ñ,Ô-Ø�‰�e—k‘k :Õ.r-   N)ri   rx   ry   r  r(   r-   r+   rø  rø    s   „ ó/r-   rø  c                   ó:   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zed„ «       Z	y)ÚTestInlineMiscIssuesc                 óê   ‡— d„ Št        ‰d¬«      d„ «       }t        d¬«      ˆfd„«       }t        d¬«      d„ «       } |t        j                  d	«      «        |t        j                  d	«      «       y )
Nc                  ó   — y r1   r(   )r}  r   s     r+   Úoutput_factoryz;TestInlineMiscIssues.test_issue4691.<locals>.output_factory2  r�  r-   r"   r#   c                 óV   — t        | t        j                  j                  «      rd„ }|S y )Nc                 óN   — | j                   dd  }t        j                  ||¬«      S ©Nr�   r~   )Úshaper†   r‡   )r}  r   r
  s      r+   r¬   zLTestInlineMiscIssues.test_issue4691.<locals>.ol_output_factory.<locals>.impl8  s"   € Ø!ŸK™K¨¨˜O�EÜŸ8™8 E°Ô7Ð7r-   )r=   r   ÚnpytypesÚArray)r}  r   r¬   s      r+   Úol_output_factoryz>TestInlineMiscIssues.test_issue4691.<locals>.ol_output_factory5  s'   € ä˜%¤§¡×!5Ñ!5Ô6ò8ð �ð 7r-   T)Únogilc                 ó.   •—  ‰| | j                   «      }|S r1   r~   )r}  Úoutr  s     €r+   rh   z/TestInlineMiscIssues.test_issue4691.<locals>.fn>  s   ø€ á  ¨¯©Ó4ˆCØˆJr-   c                 ó^   — t        j                  | j                  dd  | j                  ¬«      S r	  )r†   r‡   r
  r   ©r}  s    r+   Úfn2z0TestInlineMiscIssues.test_issue4691.<locals>.fn2C  s!   € ä—8‘8˜EŸK™K¨¨˜O°5·;±;Ô?Ð?r-   )rÓ   rÔ   rÕ   rÖ   r×   )r   r   r†   Úones)rA   r  rh   r  r  s       @r+   Útest_issue4691z#TestInlineMiscIssues.test_issue46911  s}   ø€ ò	ô 
�.¨Ô	2ñ	ó 
3ð	ô 
�DÔ	ó	ó 
ð	ô 
�DÔ	ñ	@ó 
ð	@ñ 	Œ2�7‰7Ð'Ó(Ô)ÙŒB�G‰GÐ(Ó)Õ*r-   c                 ó|   ‡— t        d¬«      d„ «       Št         ˆfd„«       } |t        j                  d«      «       y )Nr"   r#   c                 ó:   — | j                   dk7  rt        d«      ‚| S )Nr'   zInvalid number of dimensions)ÚndimÚ
ValueErrorr  s    r+   Úinliningz5TestInlineMiscIssues.test_issue4693.<locals>.inliningL  s   € à�z‰z˜QŠÜ Ð!?Ó@Ð@àˆLr-   c                 ó   •—  ‰| «      S r1   r(   )r}  r  s    €r+   rh   z/TestInlineMiscIssues.test_issue4693.<locals>.fnS  s   ø€ á˜E“?Ð"r-   rÓ   )r   r†   r‡   )rA   rh   r  s     @r+   Útest_issue4693z#TestInlineMiscIssues.test_issue4693J  s@   ø€ ä	�XÔ	ñ	ó 
ð	ô 
ó	#ó 
ð	#ñ 	Œ2�8‰8�B‹<Õr-   c                 óò   ‡— t        d¬«      d„ «       Št         ˆfd„«       }| j                  t        «      5 } |«        d d d «       | j                  dt	        j
                  «      «       y # 1 sw Y   Œ/xY w)Nr"   r#   c                  ó   — d} t        | «      ‚)NúSomething happened)r  )Úmsgs    r+   r  z5TestInlineMiscIssues.test_issue5476.<locals>.inlining\  s   € à&ˆCÜ˜S“/Ð!r-   c                  ó   •—  ‰ «       S r1   r(   )r  s   €r+   rh   z/TestInlineMiscIssues.test_issue5476.<locals>.fna  s   ø€ á“:Ðr-   r  )r   rþ  r  rÿ  rT   r   )rA   rh   Úraisesr  s      @r+   Útest_issue5476z#TestInlineMiscIssues.test_issue5476Y  sq   ø€ ô 
�XÔ	ñ	"ó 
ð	"ô 
ó	ó 
ð	ð ×ÑœzÔ*¨fÙŒD÷ +ð 	�‰Ð*¬C°×0@Ñ0@Ó,AÕB÷ +Ð*ús   ·A-Á-A6c                 óŒ  ‡‡‡	‡
—  G ˆ	fd„d«      Š G d„ dt         j                  «      Št        ‰«       G d„ dt        j                  «      «       }t        ‰dd«       t        ˆfd	„«       Š
t        ‰d
¬«      ˆ
fd„«       }t        ‰dd
¬«      d„ «       }t        ˆfd„«       }dŠ	d} |‰	|«      }| j                  |‰	|z  «       y )Nc                   ó   •— e Zd Zd„ Zˆ fd„Zy)ú2TestInlineMiscIssues.test_issue5792.<locals>.Dummyc                 ó   — || _         y r1   ©Údata)rA   r)  s     r+   Ú__init__z;TestInlineMiscIssues.test_issue5792.<locals>.Dummy.__init__o  s	   € Ø �•	r-   c                 ó"   •— ‰|j                   z  S r1   r(  )rA   Úotherr)  s     €r+   Údivz6TestInlineMiscIssues.test_issue5792.<locals>.Dummy.divr  s   ø€ Ø˜eŸj™jÑ(Ð(r-   N)ri   rx   ry   r*  r-  r(  s   €r+   r³  r&  n  s   ø„ ò!õ)r-   r³  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú6TestInlineMiscIssues.test_issue5792.<locals>.DummyTypec                 óP   •— || _         t        ‰| �	  d| j                   › d�¬«       y )NzDummy(Ú))rf   ©r)  r�  r*  )rA   r)  r’  s     €r+   r*  z?TestInlineMiscIssues.test_issue5792.<locals>.DummyType.__init__v  s'   ø€ Ø �”	Ü‘Ñ ¨¨t¯y©y¨k¸Ð&;Ð Õ<r-   ©ri   rx   ry   r*  rÝ  rÞ  s   @r+   r¨  r/  u  s   ø„ ÷=ð =r-   r¨  c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú;TestInlineMiscIssues.test_issue5792.<locals>.DummyTypeModelc                 óF   •— d|j                   fg}t        ‰| �	  |||«       y )Nr)  r2  )rA   ÚdmmÚfe_typeÚmembersr’  s       €r+   r*  zDTestInlineMiscIssues.test_issue5792.<locals>.DummyTypeModel.__init__|  s)   ø€ à˜WŸ\™\Ð*ð�ô ‘Ñ   g¨wÕ7r-   r3  rÞ  s   @r+   ÚDummyTypeModelr5  z  s   ø„ ÷8ð 8r-   r:  r)  Ú_datac                 ó:   •— d„ } ‰|«      }t        ||«      }||fS )Nc                 óô   — |j                   }|\  } t        j                  |«      | |«      }||_        | j                  r*| j
                  j                  ||j                  d   |«       |j                  «       S rú  )	Úreturn_typer   Úcreate_struct_proxyr)  Ú
enable_nrtÚnrtÚincrefrl   Ú	_getvalue)ÚcontextÚbuilderÚsigrl   Útypr)  rz  s          r+   ÚcodegenzHTestInlineMiscIssues.test_issue5792.<locals>.init_dummy.<locals>.codegen†  sf   € Ø—o‘o�Ø‘�Ø8œ×3Ñ3°CÓ8¸À'ÓJ�Ø!�”
à×%Ò%Ø—K‘K×&Ñ& w°·±¸±¸TÔBà—‘Ó(Ð(r-   r   )Ú	typingctxr)  rH  Úret_typrF  r¨  s        €r+   Ú
init_dummyz7TestInlineMiscIssues.test_issue5792.<locals>.init_dummy„  s)   ø€ ò	)ñ   “oˆGÜ˜G TÓ*ˆCà˜�<Ðr-   r"   r#   c                 ó   •— ˆfd„}|S )Nc                 ó   •—  ‰| «      S r1   r(   )r)  rK  s    €r+   ÚctorzITestInlineMiscIssues.test_issue5792.<locals>.dummy_overload.<locals>.ctor˜  s   ø€ Ù! $Ó'Ð'r-   r(   )r)  rN  rK  s     €r+   Údummy_overloadz;TestInlineMiscIssues.test_issue5792.<locals>.dummy_overload–  s   ø€ ô(ð ˆKr-   r-  c                 ó   — d„ }|S )Nc                 ó4   — | j                   |j                   z  S r1   )r;  )rA   r,  s     r+   r¬   zGTestInlineMiscIssues.test_issue5792.<locals>.div_overload.<locals>.implŸ  s   € Ø—z‘z E§K¡KÑ/Ð/r-   r(   )rA   r,  r¬   s      r+   Údiv_overloadz9TestInlineMiscIssues.test_issue5792.<locals>.div_overload�  s   € ò0ð ˆKr-   c                 óF   •—  ‰| «      } ‰|«      }|j                  |«      S r1   )r-  )r)  Ú
other_datarz  r,  r³  s       €r+   rk   z6TestInlineMiscIssues.test_issue5792.<locals>.test_impl¤  s%   ø€ á˜$“KˆEÙ˜*Ó%ˆEà—9‘9˜UÓ#Ð#r-   g      ð?rX  )r   ÚTyper   r   ÚStructModelr   r   r   r   r   rV   )rA   r:  rO  rR  rk   rT  Úresr³  r¨  r)  rK  s          @@@@r+   Útest_issue5792z#TestInlineMiscIssues.test_issue5792j  sÜ   û€ ÷	)ó 	)ô	=œŸ
™
ô 	=ô
 
˜	Ó	"ô	8œV×/Ñ/ó 	8ó 
#ð	8ô 	˜y¨&°'Ô:ä	ó	 ó 
ð	 ô" 
�% Ô	)ó	ó 
*ð	ô 
˜ E°(Ô	;ñ	ó 
<ð	ô 
ó	$ó 
ð	$ð ˆØˆ
Ù˜˜jÓ)ˆØ×Ñ˜˜d ZÑ/Õ0r-   c                 ó¨   ‡—  G d„ dt         «      }d„ Št        ‰d¬«      d„ «       }t        |¬«      ˆfd„«       }| j                   |d	«      d
«       y)z] Similar to the above test_issue5792, checks mutation of the inlinee
        IR is local onlyc                   ó   — e Zd Zd„ Zy)ú;TestInlineMiscIssues.test_issue5824.<locals>.CustomCompilerc                 óš   — t        j                  | j                  «      }|j                  t        t        «       |j                  «        |gS r1   )r   Údefine_nopython_pipelineÚstateÚadd_pass_afterr   Úfinalize)rA   Úpms     r+   Údefine_pipelineszLTestInlineMiscIssues.test_issue5824.<locals>.CustomCompiler.define_pipelines¶  s6   € Ü'×@Ñ@ÀÇÁÓL�à×!Ñ!¤/´?ÔCØ—‘”Ø�t�r-   N)ri   rx   ry   rb  r(   r-   r+   ÚCustomCompilerr[  ´  s   „ ór-   rc  c                  ó   — y r1   r(   r)   s    r+   r»   z0TestInlineMiscIssues.test_issue5824.<locals>.bar½  s   € Ør-   r"   r#   c                 óB   — t        | t        j                  «      rd„ }|S y )Nc                 ó   — | dz   S )NgÍÌÌÌÌÌô?r(   r)   s    r+   r¬   zATestInlineMiscIssues.test_issue5824.<locals>.ol_bar.<locals>.implÃ  s   € Ø˜s™7�Nr-   rF  rH  s     r+   Úol_barz3TestInlineMiscIssues.test_issue5824.<locals>.ol_barÀ  s   € ä˜!œUŸ]™]Ô+ò#à�ð ,r-   rI   c                 ó$   •—  ‰| «       ‰| «      fS r1   r(   rê   s    €r+   r¢   z0TestInlineMiscIssues.test_issue5824.<locals>.fooÇ  rk  r-   rÓ   )çš™™™™™&@ri  N)r   r   r   rV   )rA   rc  rg  r¢   r»   s       @r+   Útest_issue5824z#TestInlineMiscIssues.test_issue5824°  s^   ø€ ô	œ\ô 	ò	ô 
�#˜hÔ	'ñ	ó 
(ð	ô 
˜^Ô	,ó	"ó 
-ð	"ð 	×Ñ™˜R› ,Õ/r-   c                 óÂ  ‡— t        d¬«      d„ «       Št        d¬«      ˆfd„«       }t        j                  d«      } ||«       | j                  |dt        j                  |«      z  «       t        d¬«      d	„ «       }| j                  t        j                  «      5 } ||«       d d d «       | j                  d
t        j                  «      «       y # 1 sw Y   Œ/xY w)Nr"   r#   c                 óR   — t        | j                  «      D ]  }| |xx   dz  cc<   Œ y r&   )rŒ   Úsize)r*   r—   s     r+   r»   z0TestInlineMiscIssues.test_issue7380.<locals>.barÖ  s!   € ä˜1Ÿ6™6–]�Ø�!“˜‘	”ñ #r-   T)Úparallelc                 óV   •— t        | j                  d   «      D ]  } ‰| |   «       Œ y rú  )r   r
  )r�   r—   r»   s     €r+   r¢   z0TestInlineMiscIssues.test_issue7380.<locals>.fooÛ  s%   ø€ ä˜AŸG™G A™JÖ'�Ù�A�a‘D•	ñ (r-   )rÓ   rÓ   r‚   c                 ó–   — t        | j                  d   «      D ].  }| |   }t        |j                  «      D ]  }||xx   dz  cc<   Œ Œ0 y )Nr   r'   )r   r
  rŒ   rm  )r�   r—   r*   s      r+   Úfoo_badz4TestInlineMiscIssues.test_issue7380.<locals>.foo_badæ  sA   € ä˜AŸG™G A™JÖ'�Ø�a‘D�Ü˜qŸv™vž�AØ�a“D˜A‘I”Dñ 'ñ (r-   z Overwrite of parallel loop index)r   r†   r  ÚassertPreciseEqualÚ	ones_likerþ  r   ÚUnsupportedRewriteErrorrÿ  rT   r   )rA   r¢   r�   rq  r“   r»   s        @r+   Útest_issue7380z#TestInlineMiscIssues.test_issue7380Í  sÉ   ø€ ô 
�XÔ	ñ	ó 
ð	ô 
�tÔ	ó	ó 
ð	ô �G‰G�HÓˆÙˆAŒà×Ñ  1¤r§|¡|°A£Ñ#6Ô7ô 
�tÔ	ñ	ó 
ð	ð ×Ñœv×=Ñ=Ô>À!Ù�AŒJ÷ ?ð 	�‰Ð8¼#¸a¿k¹kÓ:JÕK÷ ?Ð>ús   Â	CÃCN)
ri   rx   ry   r  r  r#  rX  rj  r    ru  r(   r-   r+   r  r  /  s4   „ ò+ò2òCò"D1òL0ð: ñ"Ló ñ"Lr-   r  Ú__main__)<Ú__doc__r²  r†  Ú	itertoolsr   Únumpyr†   r  r   r   r   r   Ú
numba.corer   r	   r
   r   r   r   Únumba.core.extendingr   r   r   r   r   r   r   r   Únumba.core.cpur   Únumba.core.compilerr   r   Únumba.core.typed_passesr   Únumba.core.typingr   Únumba.tests.supportr   r   r   r   r    r!   ré   r,   r/   r3   r5   rŽ   r¤   r¦   rx  r~  rŽ  rà  rø  r  ri   Úmainr(   r-   r+   Ú<module>r‚     s,  ðñó
 Û Ý Û ç 1Ó 1ß B× B÷	÷ 	ó 	õ )ß @Ý 3Ý '÷;÷ ;ð €ñ ˆXÔñó ðò
ñ 
ˆ,˜xÔ(ñó )ðô<�8ô <ð@ €ò#ôLN*˜?¨Lô N*ôb
6 /°<ô 6ôz$˜?¨Lô z$ôz^
 \ô ^
ôB9J˜/¨<ô 9Jôx/˜ô /ô0AL˜8ô ALðH ˆzÒØ€H‡M�M…Oð r-   