Ë
    pPêj  ã                  óL   — d Z ddlmZ ddlZddlmZmZmZ ddlm	Z	 dd„Z
d	d„Zy)
z.Compute vtables of native (extension) classes.é    )ÚannotationsN)ÚClassIRÚVTableEntriesÚVTableMethod)Úis_same_method_signaturec           
     ó   ‡— | j                   �y| j                  s!t        d„ | j                  D «       «      | _        | j                  dd D ]w  }t        |«       |j                  sŒ|j                  j                  «       D ]@  \  Š}| j                  rŒt        ˆfd„| j                  D «       «      rŒ2|| j                  ‰<   ŒB Œy i | _         | j                  rb| j                  j                   €J ‚| j                   j                  | j                  j                   «       t        | | j                  «      | _        | j                  }| j                  D �cg c]  }|j                  sŒ|‘Œ }}| g|D �cg c]	  }|| usŒ|‘Œ c}z   D ]Å  }t        j                  |j                   j#                  «       «      D ]“  }|| j%                  |j&                  d¬«      k(  sŒ$t)        |«      | j                   |j&                  <   | j*                  j-                  | |j&                  f«      }|j/                  t1        ||j&                  ||«      «       Œ• ŒÇ | j                  s,|D ]&  }t        |«       t        | |«      | j2                  |<   Œ( yyc c}w c c}w )z)Compute the vtable structure for a class.Nc              3  ó4   K  — | ]  }|j                   –— Œ y ­w©N)Úinherits_python)Ú.0Úxs     úY/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypyc/irbuild/vtable.pyú	<genexpr>z!compute_vtable.<locals>.<genexpr>   s   è ø€ Ò>°˜1×,Õ,Ñ>ùs   ‚é   c              3  ó:   •K  — | ]  }‰|j                   v –— Œ y ­wr
   )Ú
attributes)r   ÚbÚnames     €r   r   z!compute_vtable.<locals>.<genexpr>   s   øè ø€ Ò+WÀQ¨D°A·L±LÔ,@Ñ+Wùs   ƒT©Úprefer_method)ÚvtableÚis_generatedÚanyÚmroÚhas_dictÚcompute_vtableÚis_traitr   ÚitemsÚbase_mroÚbaseÚupdateÚspecialize_parent_vtableÚvtable_entriesÚ	itertoolsÚchainÚmethodsÚvaluesÚ
get_methodr   ÚlenÚglue_methodsÚgetÚappendr   Útrait_vtables)	ÚclsÚtÚtypÚentriesÚ
all_traitsÚfnÚshadowÚtraitr   s	           @r   r   r      s  ø€ à
‡z�zÐØà×ÒÜÑ>°c·g±gÔ>Ó>ˆŒà�W‰W�Q�Rˆ[ò +ˆä�qÔà�zŠzØØŸ™×+Ñ+Ó-ò 	+‰IˆD�#Ø—<“<¬Ó+WÈ#Ï,É,Ô+WÕ(WØ'*�—‘˜tÒ$ñ	+ð+ð €C„JØ
‡x‚xØ�x‰x�‰Ð*Ð*Ð*Ø�
‰
×Ñ˜#Ÿ(™(Ÿ/™/Ô*Ü5°c¸3¿8¹8ÓDˆÔð × Ñ €Gà ŸW™WÖ3˜¨¯
«
’!Ð3€JÐ3àˆU Ö<˜A¨q¸ª|’aÒ<Ñ<ò EˆÜ—/‘/ !§)¡)×"2Ñ"2Ó"4Ó5ò 	EˆBà�S—^‘^ B§G¡G¸4�^Ó@Ó@Ü&)¨'£l�—
‘
˜2Ÿ7™7Ñ#ð ×)Ñ)×-Ñ-¨s°B·G±G¨nÓ=�Ø—‘œ|¨A¨r¯w©w¸¸FÓCÕDñ	EðEð �<Š<Øò 	LˆEÜ˜5Ô!Ü'?ÀÀUÓ'KˆC×Ñ˜eÒ$ñ	Lð ùò 4ùâ<s   ÅJÅ&JÅ2	JÅ<Jc                óF  — g }|j                   D �]  }|j                  j                  |j                  d¬«      }|sJ ‚| j	                  |j                  d¬«      }|r°|\  }}t        |j                  |j                  «      s|j                  dk(  r-t        |j                  |j                  ||j                  «      }nOt        |j                  |j                  |j                  |j                  |j                  f   |j                  «      }|j                  |«       �Œ |S )zFGenerate the part of a vtable corresponding to a parent class or traitTr   Ú__init__)r#   r.   r(   r   Úget_method_and_classr   Úsigr   Úshadow_methodr*   r,   )r.   ÚparentÚupdatedÚentryÚorig_parent_methodÚ
method_clsÚchild_methodÚdefining_clss           r   r"   r"   9   s  € à€GØ×&Ñ&ó ˆð #ŸY™Y×1Ñ1°%·*±*ÈDÐ1ÓQÐÙ!Ð!Ð!Ø×-Ñ-¨e¯j©jÈÐ-ÓMˆ
ÙØ)3Ñ&ˆL˜,ô )Ð);×)?Ñ)?À×AQÑAQÔRØ%×*Ñ*¨jÒ8ä$ U§Y¡Y°·
±
¸LÈ%×J]ÑJ]Ó^‘ä$Ø—I‘IØ—J‘JØ ×-Ñ-¨u¯y©y¸%¿*¹*Ð.EÑFØ×'Ñ'ó	�ð 	�‰�uÖð+ð, €Nó    )r.   r   ÚreturnÚNone)r.   r   r;   r   rC   r   )Ú__doc__Ú
__future__r   r$   Úmypyc.ir.class_irr   r   r   Úmypyc.sametyper   r   r"   © rB   r   ú<module>rJ      s#   ðÙ 4å "ã ç BÑ BÝ 3ó+Lô\rB   