Ë
    pPêjà
  ã                  ó°   — d Z ddlmZ ddlmZ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 ddlmZmZmZmZmZmZmZ  G d„ de«      Zddd
„Z	 	 	 	 	 	 dd„Zy	)zLFind line-level reference information from a mypy AST (undocumented feature)é    )Úannotations)	ÚLDEFÚ
ExpressionÚFuncDefÚ
MemberExprÚMypyFileÚNameExprÚRefExprÚ
SymbolNodeÚTypeInfo)ÚTraverserVisitor)Útuple_fallback)ÚFunctionLikeÚInstanceÚ	TupleTypeÚTypeÚTypeTypeÚTypeVarLikeTypeÚget_proper_typec                  óL   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zdˆ fd„Zd	ˆ fd„Zd
d„Zˆ xZS )ÚRefInfoVisitorc                ó>   •— t         ‰| �  «        || _        g | _        y ©N)ÚsuperÚ__init__Útype_mapÚdata)Úselfr   Ú	__class__s     €úQ/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/refinfo.pyr   zRefInfoVisitor.__init__   s   ø€ Ü‰ÑÔØ ˆŒØ-/ˆ�	ó    c                óF   •— t         ‰| �  |«       | j                  |«       y r   )r   Úvisit_name_exprÚrecord_ref_expr©r   Úexprr   s     €r    r#   zRefInfoVisitor.visit_name_expr#   s   ø€ Ü‰Ñ Ô%Ø×Ñ˜TÕ"r!   c                óF   •— t         ‰| �  |«       | j                  |«       y r   )r   Úvisit_member_exprr$   r%   s     €r    r(   z RefInfoVisitor.visit_member_expr'   s   ø€ Ü‰Ñ! $Ô'Ø×Ñ˜TÕ"r!   c                ó    •— |j                   r2|j                   D ]"  }t        |t        «      sŒt        ‰| �  |«       Œ$ y t        ‰| �  |«       y r   )ÚexpandedÚ
isinstancer   r   Úvisit_func_def)r   ÚfuncÚitemr   s      €r    r,   zRefInfoVisitor.visit_func_def+   sC   ø€ Ø�=Š=ØŸ™ò 1�Ü˜d¤GÕ,Ü‘GÑ*¨4Õ0ñ1ô ‰GÑ" 4Õ(r!   c                ó  — d }|j                   t        k7  rd|j                  v r|j                  }n™t        |t        «      r‰| j
                  j                  |j                  «      }d }t        |j                  t        «      r|j                  j                  }|rt        ||«      }|r|› d|j                  › �}|sd|j                  › �}|�4| j                  j                  |j                  |j                  |dœ«       y y )Nú.z*.)ÚlineÚcolumnÚtarget)Úkindr   Úfullnamer+   r   r   Úgetr&   r
   ÚnodeÚtype_fullnameÚnamer   Úappendr1   r2   )r   r&   r5   ÚtypÚsymÚtfns         r    r$   zRefInfoVisitor.record_ref_expr3   sÏ   € ØˆØ�9‰9œÒ ¨¯©Ñ!5Ø—}‘}‰HÜ˜œjÔ)Ø—-‘-×#Ñ# D§I¡IÓ.ˆCØˆCÜ˜$Ÿ)™)¤WÔ-Ø—i‘i—n‘n�ÙÜ# C¨Ó-�ÙØ"%  a¨¯	©	 {Ð3�HÙØ §	¡	˜{Ð+�ØÐØ�I‰I×Ñ d§i¡i¸4¿;¹;ÐRZÑ[Õ\ð  r!   )r   údict[Expression, Type]ÚreturnÚNone)r&   r	   r?   r@   )r&   r   r?   r@   )r-   r   r?   r@   )r&   r
   r?   r@   )	Ú__name__Ú
__module__Ú__qualname__r   r#   r(   r,   r$   Ú__classcell__)r   s   @r    r   r      s   ø„ õ0õ
#õ#õ)÷]r!   r   Nc                óä  — t        | «      } t        | t        «      r| j                  j                  S t        | t
        «      rt        | j                  «      S t        | t        «      rA| j                  «       r1t        |t        «      r|j                  S t        | j                  «      S t        | t        «      rt        t        | «      «      S t        | t        «      rt        | j                  «      S y r   )r   r+   r   Útyper5   r   r8   r.   r   Úis_type_objr   Úfallbackr   r   r   Úupper_bound)r;   r7   s     r    r8   r8   F   s«   € Ü
˜#Ó
€CÜ�#”xÔ Ø�x‰x× Ñ Ð Ü	�CœÔ	"Ü˜SŸX™XÓ&Ð&Ü	�CœÔ	&¨3¯?©?Ô+<Ü�dœHÔ%Ø—=‘=Ð Ü˜SŸ\™\Ó*Ð*Ü	�CœÔ	#Üœ^¨CÓ0Ó1Ð1Ü	�CœÔ	)Ü˜SŸ_™_Ó-Ð-Ør!   c                óR   — t        |«      }| j                  |«       |j                  S r   )r   Úacceptr   )Útreer   Úvisitors      r    Úget_undocumented_ref_info_jsonrN   W   s$   € ô ˜XÓ&€GØ‡K�K�ÔØ�<‰<Ðr!   r   )r;   r   r7   zSymbolNode | Noner?   z
str | None)rL   r   r   r>   r?   zlist[dict[str, object]])Ú__doc__Ú
__future__r   Ú
mypy.nodesr   r   r   r   r   r	   r
   r   r   Úmypy.traverserr   Úmypy.typeopsr   Ú
mypy.typesr   r   r   r   r   r   r   r   r8   rN   © r!   r    ú<module>rV      sc   ðÙ Rå "÷
÷ 
õ 
õ ,Ý '÷÷ ñ ô&]Ð%ô &]ôRð"Ø
ðØ4ðàôr!   