§
    ƒnóc0   ã                  ó  — d dl mZ ddlmZ ddlmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZ d d	lZd d	lZd d
lmZ ej        r3d dlmZ ddlmZ  ej        ddd¬¦  «        Z G d„ dee         ¦  «        Zej        eeee e!df         Z"ej#        ej        ej$        e"f                  Z%ej&        eej        ej$        e"f         f         Z' ej        dej(        dej)        f         ¬¦  «        Z*ej        eeeej#        ej)                 ej&        eej)        f         f         Z+ej        e+edf         Z,ej        e,ej$        f         Z-ej&        ee,f         Z.ej&        ee-f         Z/ej(        ej$        gef         Z0 ej1        de¦  «        Z2 G d„ d¦  «        Z3 G d„ de3¦  «        Z4 G d„ d¦  «        Z5eeeee e!fZ6ej        e+ef         Z7 ej        de7¬¦  «        Z8 G d„ de3ej9        e8         ¦  «        Z: G d „ d!e¬"¦  «        Z;d	S )#é    )Úannotationsé   )Úmparseré   )ÚInvalidCodeÚInvalidArguments)ÚflattenÚresolve_second_level_holders)ÚMesonOperator)ÚHoldableObjectÚMesonBugExceptionN)ÚABCMeta)ÚProtocol)ÚInterpreterÚ__TÚTYPE_varT)ÚboundÚcontravariantc                  ó   — e Zd Zdd„ZdS )ÚOperatorCallÚotherr   Úreturnú
'TYPE_var'c                ó   — d S ©N© ©Úselfr   s     úH/usr/lib/python3/dist-packages/mesonbuild/interpreterbase/baseobjects.pyÚ__call__zOperatorCall.__call__#   s   € € € ó    N)r   r   r   r   )Ú__name__Ú
__module__Ú__qualname__r    r   r!   r   r   r   "   s   € € € € € Ø9Ð9Ð9Ð9Ð9Ð9r!   r   ÚInterpreterObjectÚTV_func.)r   ÚMesonInterpreterObjectÚ
SubProjectc                  óL   — e Zd Zddœdd„Zdd	„Zdd„Zdd„Zdd„Zd d„Zd d„Z	dS )!r%   N©Ú
subprojectr+   úT.Optional['SubProject']r   ÚNonec               óâ   — i | _         i | _        i | _        d | _        |pt	          d¦  «        | _        | j                             t          j        | j	        t          j
        | j        i¦  «         d S )NÚ )ÚmethodsÚ	operatorsÚtrivial_operatorsÚcurrent_noder(   r+   Úupdater   ÚEQUALSÚ	op_equalsÚ
NOT_EQUALSÚop_not_equals)r   r+   s     r   Ú__init__zInterpreterObject.__init__5   s‚   € ð ð 	Œð ACˆŒð ð 	Ôð 04ˆÔØ$Ð6­
°2©¬ˆŒð 	Œ×ÒÝÔ  $¤.ÝÔ$ dÔ&8ð
ñ 	ô 	ð 	ð 	ð 	r!   Ústrc                ó*   — t          | ¦  «        j        S r   )Útyper"   ©r   s    r   Údisplay_namezInterpreterObject.display_nameN   s   € Ý�D‰zŒzÔ"Ð"r!   Úmethod_nameÚargsúT.List[TYPE_var]ÚkwargsÚTYPE_kwargsr   c           
     ó$  — || j         v r]| j         |         }t          |dd¦  «        st          |¦  «        }t          |dd¦  «        st          ||¦  «        \  }} |||¦  «        S t	          d|› d| › dt          | ¦  «        j        › d�¦  «        ‚)Nzno-args-flatteningFz!no-second-level-holder-flatteningzUnknown method "z" in object ú	 of type ú.)r0   Úgetattrr	   r
   r   r<   r"   )r   r?   r@   rB   Úmethods        r   Úmethod_callzInterpreterObject.method_callQ   s¯   € ð ˜$œ,Ð&Ð&Ø”\ +Ô.ˆFÝ˜6Ð#7¸Ñ?Ô?ð %Ý˜t‘}”}�Ý˜6Ð#FÈÑNÔNð JÝ;¸DÀ&ÑIÔI‘��fØ�6˜$ Ñ'Ô'Ð'ÝÐk¨[ÐkÐkÀdÐkÐkÕUYÐZ^ÑU_ÔU_ÔUhÐkÐkÐkÑlÔlÐlr!   Úoperatorr   r   c                óP  — || j         v rÏ| j         |         }|d         €F|�Dt          d|j        › d|                      ¦   «         › d|› dt	          |¦  «        j        › �¦  «        ‚|d         �[t          ||d         ¦  «        sEt          d|j        › d|                      ¦   «         › dt	          |¦  «        j        › d	|› d
�	¦  «        ‚ |d         |¦  «        S || j        v r | j        |         |¦  «        S t          d| › d|                      ¦   «         › d|j        › d�¦  «        ‚)Nr   zThe unary operator `z` of z was passed the object rE   zThe `z` operator of z! does not accept objects of type z (ú)r   zObject z does not support the `z` operator.)
r2   r   Úvaluer>   r<   r"   Ú
isinstancer   r1   r   )r   rJ   r   Úops       r   Úoperator_callzInterpreterObject.operator_call`   sÍ  € Ø�tÔ-Ð-Ð-ØÔ'¨Ô1ˆBØ�!Œuˆ} Ð!2Ý'ð  )g¸x¼~ð  )gð  )gÐTX×TeÒTeÑTgÔTgð  )gð  )gð  AFð  )gð  )gõ  QUð  V[ñ  Q\ô  Q\ô  Qeð  )gð  )gñ  hô  hð  hØ�!ŒuÐ ­°E¸2¸a¼5Ñ)AÔ)AÐ Ý&ð  (d¨x¬~ð  (dð  (dÈT×M^ÒM^ÑM`ÔM`ð  (dð  (dõ  DHð  INñ  DOô  DOô  DXð  (dð  (dð  \að  (dð  (dð  (dñ  eô  eð  eØ�2�a”5˜‘<”<ÐØ�t”~Ð%Ð%Ø+�4”> (Ô+¨EÑ2Ô2Ð2ÝÐz DÐzÐz°4×3DÒ3DÑ3FÔ3FÐzÐzÐ_gÔ_mÐzÐzÐzÑ{Ô{Ð{r!   Úopt_typeú
T.NoReturnc                ó    — t          t          j        d|                      ¦   «         › dt	          |¦  «        j        › d|› d�¦  «        ¦  «        ‚)Nz>
                Trying to compare values of different types (z, z) using zv.
                This was deprecated and undefined behavior previously and is as of 0.60.0 a hard error.
            )r   ÚtextwrapÚdedentr>   r<   r"   )r   r   rQ   s      r   Ú_throw_comp_exceptionz'InterpreterObject._throw_comp_exceptionm   sk   € Ý�xœðØ>B×>OÒ>OÑ>QÔ>Qðð ÝUYÐZ_ÑU`ÔU`ÔUiðð Øs{ðð ð ñ 
ô  
ñ ô ð 	r!   Úboolc                óz   — t          | ¦  «        t          |¦  «        k    r|                      |d¦  «         | |k    S ©Nz==©r<   rV   r   s     r   r6   zInterpreterObject.op_equalsu   s;   € õ �‰:Œ:�˜e™œÒ$Ð$Ø×&Ò& u¨dÑ3Ô3Ð3Ø�uŠ}Ðr!   c                óz   — t          | ¦  «        t          |¦  «        k    r|                      |d¦  «         | |k    S ©Nz!=rZ   r   s     r   r8   zInterpreterObject.op_not_equals}   s9   € Ý�‰:Œ:�˜e™œÒ$Ð$Ø×&Ò& u¨dÑ3Ô3Ð3Ø�uŠ}Ðr!   )r+   r,   r   r-   ©r   r:   )r?   r:   r@   rA   rB   rC   r   r   )rJ   r   r   r   r   r   )r   r   rQ   r:   r   rR   ©r   r   r   rW   )
r"   r#   r$   r9   r>   rI   rP   rV   r6   r8   r   r!   r   r%   r%   4   sµ   € € € € € ØAEð ð ð ð ð ð ð2#ð #ð #ð #ðmð mð mð mð
|ð 
|ð 
|ð 
|ðð ð ð ðð ð ð ðð ð ð ð ð r!   c                  ó   — e Zd ZdZdS )r'   zO All non-elementary objects and non-object-holders should be derived from this N©r"   r#   r$   Ú__doc__r   r!   r   r'   r'   ‚   s   € € € € € ØYÐYÐYÐYr!   c                  ó   — e Zd ZdZdS )ÚMutableInterpreterObjectz0 Dummy class to mark the object type as mutable Nr`   r   r!   r   rc   rc   …   s   € € € € € Ø:Ð:Ð:Ð:r!   rc   ÚInterpreterObjectTypeVarc                  ó@   ‡ — e Zd Zdˆ fd„Zdd	„Zdd„Zdd„Zdd„Zˆ xZS )ÚObjectHolderÚobjrd   Úinterpreterú'Interpreter'r   r-   c                ó&  •— t          ¦   «                              |j        ¬¦  «         t          j        s=t          |t          ¦  «        s(J dt          |¦  «        j        › dt          › d�¦   «         ‚|| _	        || _
        | j
        j        | _        d S )Nr*   z.This is a bug: Trying to hold object of type `z` that is not in `ú`)Úsuperr9   r+   ÚTÚTYPE_CHECKINGrN   ÚHoldableTypesr<   r"   Úheld_objectrh   ÚenvironmentÚenv)r   rg   rh   Ú	__class__s      €r   r9   zObjectHolder.__init__�   s´   ø€ Ý‰Œ×Ò KÔ$:ÐÑ;Ô;Ð;õ Œð 	[Ý˜c¥=Ñ1Ô1ð  [ð  [ð  4[ÕdhÐilÑdmÔdmÔdvð  4[ð  4[õ  KXð  4[ð  4[ð  4[ñ  [ô  [ð  [ØˆÔØ&ˆÔØÔ#Ô/ˆŒˆˆr!   r:   c                ó4   — t          | j        ¦  «        j        S r   )r<   rp   r"   r=   s    r   r>   zObjectHolder.display_name™   s   € Ý�DÔ$Ñ%Ô%Ô.Ð.r!   r   r   rW   c                óŽ   — t          | j        ¦  «        t          |¦  «        k    r|                      |d¦  «         | j        |k    S rY   ©r<   rp   rV   r   s     r   r6   zObjectHolder.op_equals�   sB   € å�Ô Ñ!Ô!¥T¨%¡[¤[Ò0Ð0Ø×&Ò& u¨dÑ3Ô3Ð3ØÔ 5Ò(Ð(r!   c                óŽ   — t          | j        ¦  «        t          |¦  «        k    r|                      |d¦  «         | j        |k    S r\   rv   r   s     r   r8   zObjectHolder.op_not_equals£   sB   € Ý�Ô Ñ!Ô!¥T¨%¡[¤[Ò0Ð0Ø×&Ò& u¨dÑ3Ô3Ð3ØÔ 5Ò(Ð(r!   c                óv   — dt          | ¦  «        j        › dt          | j        ¦  «        j        › d| j        ›d�S )Nz<[z	] holds [z]: ú>)r<   r"   rp   r=   s    r   Ú__repr__zObjectHolder.__repr__¨   s>   € Øk•D˜‘J”JÔ'ÐkÐkµ$°tÔ7GÑ2HÔ2HÔ2QÐkÐkÐVZÔVfÐkÐkÐkÐkr!   )rg   rd   rh   ri   r   r-   r]   r^   )	r"   r#   r$   r9   r>   r6   r8   rz   Ú__classcell__)rs   s   @r   rf   rf   Œ   s•   ø€ € € € € ð	0ð 	0ð 	0ð 	0ð 	0ð 	0ð/ð /ð /ð /ð)ð )ð )ð )ð)ð )ð )ð )ð
lð lð lð lð lð lð lð lr!   rf   c                  ó*   — e Zd ZdZd
d„Zdd„Zdd„Zd	S )ÚIterableObjectzFBase class for all objects that can be iterated over in a foreach loopr   úT.Optional[int]c                ó:   — t          d| j        j        › �¦  «        ‚)zaReturn the size of the tuple for each iteration. Returns None if only a single value is returned.z$iter_tuple_size not implemented for ©r   rs   r"   r=   s    r   Úiter_tuple_sizezIterableObject.iter_tuple_size®   s   € åÐ `ÀtÄ~ÔG^Ð `Ð `ÑaÔaÐar!   ú5T.Iterator[T.Union[TYPE_var, T.Tuple[TYPE_var, ...]]]c                ó:   — t          d| j        j        › �¦  «        ‚)Nziter not implemented for r€   r=   s    r   Ú	iter_selfzIterableObject.iter_self²   ó   € ÝÐ U¸D¼NÔ<SÐ UÐ UÑVÔVÐVr!   Úintc                ó:   — t          d| j        j        › �¦  «        ‚)Nzsize not implemented for r€   r=   s    r   ÚsizezIterableObject.sizeµ   r…   r!   N)r   r~   )r   r‚   )r   r†   )r"   r#   r$   ra   r�   r„   rˆ   r   r!   r   r}   r}   «   sd   € € € € € ØPÐPðbð bð bð bðWð Wð Wð WðWð Wð Wð Wð Wð Wr!   r}   )Ú	metaclass)<Ú
__future__r   r/   r   Ú
exceptionsr   r   Úhelpersr	   r
   rJ   r   Úmesonlibr   r   rT   Útypingrm   Úabcr   rn   Útyping_extensionsr   rh   r   ÚTypeVarr   r   ÚUnionr:   r†   rW   ÚlistÚdictÚ	TV_fw_varÚListÚBaseNodeÚ
TV_fw_argsÚDictÚTV_fw_kwargsÚCallableÚAnyr&   ÚTYPE_elementaryr   Ú	TYPE_nvarrC   ÚTYPE_nkwargsÚTYPE_key_resolverÚNewTyper(   r%   r'   rc   ro   ÚTYPE_HoldableTypesrd   ÚGenericrf   r}   r   r!   r   ú<module>r¤      s‡  ðð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø #Ð #Ð #Ð #Ð #Ð #Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø €€€à Ð Ð Ð Ø Ð Ð Ð Ð Ð à„?ð 	:Ø*Ð*Ð*Ð*Ð*Ð*ð *Ð)Ð)Ð)Ð)Ð)à
ˆ!Œ)�E ¸4Ð
@Ñ
@Ô
@€Cð:ð :ð :ð :ð :�x ”}ñ :ô :ð :ð ŒG�C˜˜d D¨$Ð0CÐCÔD€	ØŒV�A”G˜GÔ,¨iÐ7Ô8Ô9€
ØŒv�c˜1œ7 7Ô#3°YÐ#>Ô?Ð?Ô@€à
ˆ!Œ)�I Q¤Z°°Q´U°
Ô%;Ð
<Ñ
<Ô
<€à”'˜#˜s D¨!¬&°´¬-¸¼ÀÀQÄUÀ
Ô9KÐKÔL€ØŒ7�? NÐ4LÐLÔM€ØŒG�H˜gÔ.Ð.Ô/€	ØŒf�S˜(�]Ô#€ØŒv�c˜9�nÔ%€Ø”J Ô 0Ð1°3Ð6Ô7Ð àˆQŒY�| SÑ)Ô)€
ðLð Lð Lð Lð Lñ Lô Lð Lð\Zð Zð Zð Zð ZÐ.ñ Zô Zð Zð;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð    d¨C°°tÐ<€Ø”W˜_¨nÐ<Ô=Ð Ø$˜1œ9Ð%?ÐGYÐZÑZÔZÐ ðlð lð lð lð lÐ$ a¤iÐ0HÔ&Iñ lô lð lð>Wð Wð Wð Wð W˜wð Wñ Wô Wð Wð Wð Wr!   