Ë
    pPêjÎA  ã                  ó@  — U d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
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mZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZB dZCdeDd<   dZEdeDd<   dZFdeDd<   dZGdeDd<   dZHdeDd<   g d¢ZIdeDd<    G d„ de0«      ZJ	 	 d*	 	 	 	 	 	 	 	 	 	 	 d+d„ZKd,d„ZLd-d „ZM G d!„ d"e3«      ZNd-d#„ZO G d$„ d%eN«      ZPd-d&„ZQd-d'„ZRd.d(„ZSd/d)„ZTy)0z?Utilities for calculating and reporting statistics about types.é    )ÚannotationsN)ÚCounter)ÚIterator)Úcontextmanager)ÚFinal)Únodes)Úmap_formals_to_actuals)ÚAssignmentExprÚAssignmentStmtÚ	BreakStmtÚ	BytesExprÚCallExprÚClassDefÚComparisonExprÚComplexExprÚContinueStmtÚEllipsisExprÚ
ExpressionÚExpressionStmtÚ	FloatExprÚFuncDefÚImportÚ	ImportAllÚ
ImportFromÚ	IndexExprÚIntExprÚ
MemberExprÚMypyFileÚNameExprÚNodeÚOpExprÚPassStmtÚRefExprÚStrExprÚTypeApplicationÚ	UnaryExprÚYieldFromExpr)ÚTraverserVisitor)ÚANY_STRATEGYÚBoolTypeQuery)Úcollect_all_inner_types)
ÚAnyTypeÚCallableTypeÚFunctionLikeÚInstanceÚ	TupleTypeÚTypeÚ	TypeOfAnyÚTypeVarTypeÚget_proper_typeÚget_proper_types)Úcorrect_relative_importr   Ú
TYPE_EMPTYé   ÚTYPE_UNANALYZEDé   ÚTYPE_PRECISEé   ÚTYPE_IMPRECISEé   ÚTYPE_ANY)ÚemptyÚ
unanalyzedÚpreciseÚ	impreciseÚanyÚprecision_namesc                  ó   ‡ — e Zd Z	 	 	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 d(d„Zd)ˆ fd„Zd*d„Zd+d„Zd,d„Zd-d„Zd.ˆ fd„Z	e
d/d„«       Zd0d	„Zd1d
„Zd2ˆ fd„Zd3ˆ fd„Zd4ˆ fd„Zd5d„Zd6d„Zd7d„Zd8ˆ fd„Zd9d„Zd:d„Zd:d„Zd;d„Zd<ˆ fd„Zd=ˆ fd„Zd>ˆ fd„Zd?ˆ fd„Zd@ˆ fd„ZdAˆ fd„ZdBd„ZdCd„Z dDd„Z!dEd„Z"dFd „Z#dGd!„Z$dHd"„Z%dId#„Z&dJd$„Z'dKd%„Z(dLd&„Z)ˆ xZ*S )MÚStatisticsVisitorc                ót  — || _         || _        || _        || _        || _        || _        d| _        d| _        d| _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        d| _        i | _        t%        «       | _        i | _        dg| _        g | _        t/        j0                  | «       y )Nr   éÿÿÿÿT)ÚinferredÚfilenameÚmodulesÚtypemapÚ	all_nodesÚvisit_untyped_defsÚnum_precise_exprsÚnum_imprecise_exprsÚnum_any_exprsÚnum_simple_typesÚnum_generic_typesÚnum_tuple_typesÚnum_function_typesÚnum_typevar_typesÚnum_complex_typesÚnum_any_typesÚlineÚline_mapr   Útype_of_any_counterÚany_line_mapÚchecked_scopesÚoutputr(   Ú__init__)ÚselfrJ   rK   rL   rM   rN   rO   s          úO/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/stats.pyr`   zStatisticsVisitor.__init__H   sÀ   € ð !ˆŒØ ˆŒØˆŒØˆŒØ"ˆŒØ"4ˆÔà!"ˆÔØ#$ˆÔ ØˆÔà !ˆÔØ!"ˆÔØ ˆÔØ"#ˆÔØ!"ˆÔØ!"ˆÔØˆÔàˆŒ	à(*ˆŒä18³ˆÔ Ø68ˆÔð  $˜fˆÔà!#ˆŒä×!Ñ! $Õ'ó    c                óT   •— || _         |j                  | _        t        ‰| �  |«       y ©N)Úcur_mod_nodeÚfullnameÚ
cur_mod_idÚsuperÚvisit_mypy_file©ra   ÚoÚ	__class__s     €rb   rj   z!StatisticsVisitor.visit_mypy_fileu   s#   ø€ ØˆÔØŸ*™*ˆŒÜ‰Ñ Õ"rc   c                ó&   — | j                  |«       y re   ©Úprocess_import©ra   Úimps     rb   Úvisit_import_fromz#StatisticsVisitor.visit_import_fromz   ó   € Ø×Ñ˜CÕ rc   c                ó&   — | j                  |«       y re   ro   rq   s     rb   Úvisit_import_allz"StatisticsVisitor.visit_import_all}   rt   rc   c                ó  — t        | j                  |j                  |j                  | j                  j                  «       «      \  }}|r|| j                  v rt        }nt        }| j                  |j                  |«       y re   )r6   rh   ÚrelativeÚidrf   Úis_package_init_filerL   r;   r?   Úrecord_linerZ   )ra   rr   Ú	import_idÚokÚkinds        rb   rp   z StatisticsVisitor.process_import€   sb   € Ü/Ø�O‰O˜SŸ\™\¨3¯6©6°4×3DÑ3D×3YÑ3YÓ3[ó
‰ˆ	�2ñ �)˜tŸ|™|Ñ+Ü‰DäˆDØ×Ñ˜Ÿ™ 4Õ(rc   c                ó”   ‡ — t        ˆ fd„|j                  D «       «      rt        }nt        }‰ j	                  |j
                  |«       y )Nc              3  ó@   •K  — | ]  \  }}|‰j                   v –— Œ y ­wre   )rL   )Ú.0ry   Ú_ra   s      €rb   ú	<genexpr>z1StatisticsVisitor.visit_import.<locals>.<genexpr>‹   s   øè ø€ Ò7¡e b¨!ˆr�T—\‘\Ô!Ñ7ùs   ƒ)ÚallÚidsr;   r?   r{   rZ   )ra   rr   r~   s   `  rb   Úvisit_importzStatisticsVisitor.visit_importŠ   s3   ø€ ÜÓ7¨s¯w©wÔ7Ô7Ü‰DäˆDØ×Ñ˜Ÿ™ 4Õ(rc   c                óÜ  •— | j                  |«      5  |j                  | _        t        |j                  «      dkD  r¢|j                  |gt        |j                  «      z  k7  r|||j                  v r9t	        dj                  | j                  |j                  «      «       	 d d d «       y |j                  D ]%  }t        |t        «      sJ ‚| j                  |«       Œ' nú|j                  r—t        |j                  t        «      sJ ‚|j                  }|j                  }|j                  r#|j                  d   dk(  r| j                  s|dd  }|D ]  }| j                  |«       Œ | j                  |j                  «       n,| j                   r | j#                  | j                  t$        «       |j'                  «       r| j(                  rt*        ‰| �%  |«       d d d «       y # 1 sw Y   y xY w)Nr8   z3{}:{}: ERROR: cycle in function expansion; skippingr   ra   )Úenter_scoperZ   ÚlenÚexpandedÚprintÚformatrK   Ú
isinstancer   Úvisit_func_defÚtyper-   Ú	arg_typesÚ	arg_namesrJ   Úret_typerN   r{   r?   Ú
is_dynamicrO   ri   )ra   rl   ÚdefnÚsigr�   Úargrm   s         €rb   rŽ   z StatisticsVisitor.visit_func_def‘   s…  ø€ Ø×Ñ˜aÓ ñ 	.ØŸ™ˆDŒIÜ�1—:‘:‹ Ò" q§z¡z°a°S¼3¸q¿z¹z»?Ñ5JÒ'JØ˜Ÿ
™
‘?ÜØM×TÑTØ ŸM™M¨1¯6©6óôð
 ÷	.ð 	.ð ŸJ™Jò .�DÜ% d¬GÔ4Ð4Ð4Ø×'Ñ'¨Õ-ñ.ð —6’6Ü% a§f¡f¬lÔ;Ð;Ð;ØŸ&™&�CØ #§¡�IØ—}’}¨¯©°qÑ)9¸VÒ)CÈDÏMÊMØ$-¨a¨b M˜	Ø(ò '˜ØŸ	™	 #�ð'à—I‘I˜cŸl™lÕ+Ø—^’^Ø×$Ñ$ T§Y¡Y´Ô9Ø—|‘|”~¨×)@Ò)@Ü‘GÑ*¨1Ô-÷5	.÷ 	.ñ 	.ús   “BG"Â*D/G"Ç"G+c              #  ó¸   K  — | j                   j                  |j                  d uxr | j                   d   «       d –— | j                   j                  «        y ­w©NrI   )r^   Úappendr�   Úpop©ra   rl   s     rb   rˆ   zStatisticsVisitor.enter_scope®   sJ   è ø€ à×Ñ×"Ñ" 1§6¡6°Ð#5Ò#Q¸$×:MÑ:MÈbÑ:QÔRØŠ
Ø×Ñ×ÑÕ!ùs   ‚AAc                ó    — | j                   d   S r˜   )r^   )ra   s    rb   Úis_checked_scopez"StatisticsVisitor.is_checked_scope´   s   € Ø×"Ñ" 2Ñ&Ð&rc   c                ó¾   — | j                  |j                  t        «       |j                  D ]  }|j	                  | «       Œ |j
                  j	                  | «       y re   )r{   rZ   r;   Ú
decoratorsÚacceptÚdefs)ra   rl   Úds      rb   Úvisit_class_defz!StatisticsVisitor.visit_class_def·   sF   € Ø×Ñ˜Ÿ™¤Ô.ð
 —‘ò 	ˆAØ�H‰H�T�Nð	à	�‰�‰�dÕrc   c                óŠ   •— |j                   | _         |j                  D ]  }| j                  |«       Œ t        ‰| �  |«       y re   )rZ   Útypesr�   ri   Úvisit_type_application)ra   rl   Útrm   s      €rb   r¦   z(StatisticsVisitor.visit_type_applicationÁ   s9   ø€ Ø—F‘FˆŒ	Ø—‘ò 	ˆAØ�I‰I�a�Lð	ä‰Ñ& qÕ)rc   c                óÐ  •— |j                   | _         t        |j                  t        j                  «      r/t        |j                  j
                  t        j                  «      ry |j                  r7| j                  |j                  «       |j                  j                  | «       y | j                  r£| j                  s—|j                  D ]ˆ  }t        |t        j                  «      r|j                  }n|g}|D ]W  }t        |t        «      sŒ|j                  sŒ!| j                   €Œ.| j                  | j                   j#                  |«      «       ŒY ŒŠ t$        ‰| �M  |«       y re   )rZ   r�   Úrvaluer   r   ÚanalyzedÚTypeVarExprr�   r    rJ   rN   ÚlvaluesÚ	TupleExprÚitemsr#   Úis_inferred_defrM   Úgetri   Úvisit_assignment_stmt)ra   rl   Úlvaluer®   Úitemrm   s        €rb   r±   z'StatisticsVisitor.visit_assignment_stmtÇ   s   ø€ Ø—F‘FˆŒ	Ü�a—h‘h¤§¡Ô/´JØ�H‰H×Ñœu×0Ñ0ô5
ð Ø�6Š6ð �I‰I�a—f‘fÔØ�H‰H�O‰O˜DÔ!ØØ�]Š] 4§>¢>àŸ)™)ò >�Ü˜f¤e§o¡oÔ6Ø"ŸL™L‘Eà#˜H�EØ!ò >�DÜ! $¬Õ0°T×5IÓ5IØŸ<™<Ñ3Ø ŸI™I d§l¡l×&6Ñ&6°tÓ&<Õ=ñ>ð>ô 	‰Ñ% aÕ(rc   c                ó¦   •— t        |j                  t        t        f«      r!| j	                  |j
                  t        «       y t        ‰| �!  |«       y re   )	r�   Úexprr$   r   r{   rZ   r7   ri   Úvisit_expression_stmtrk   s     €rb   r¶   z'StatisticsVisitor.visit_expression_stmtá   s7   ø€ Ü�a—f‘fœw¬	Ð2Ô3à×Ñ˜QŸV™V¤ZÕ0ä‰GÑ)¨!Õ,rc   c                ó&   — | j                  |«       y re   ©Úrecord_precise_if_checked_scoper›   s     rb   Úvisit_pass_stmtz!StatisticsVisitor.visit_pass_stmtè   ó   € Ø×,Ñ,¨QÕ/rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_break_stmtz"StatisticsVisitor.visit_break_stmtë   r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_continue_stmtz%StatisticsVisitor.visit_continue_stmtî   r»   rc   c                ó†   •— |j                   dv r| j                  |«       y | j                  |«       t        ‰| �  |«       y )N)zbuiltins.Nonezbuiltins.Truezbuiltins.Falsezbuiltins.Ellipsis)rg   r¹   Úprocess_noderi   Úvisit_name_exprrk   s     €rb   rÂ   z!StatisticsVisitor.visit_name_exprñ   s9   ø€ Ø�:‰:ÐbÑbØ×0Ñ0°Õ3à×Ñ˜aÔ Ü‰GÑ# AÕ&rc   c                óT   — |j                   r|j                   j                  | «       y y re   )rµ   r    r›   s     rb   Úvisit_yield_from_exprz'StatisticsVisitor.visit_yield_from_exprø   s   € Ø�6Š6Ø�F‰F�M‰M˜$Õð rc   c                ó  — | j                  |«       |j                  r|j                  j                  | «       y |j                  j                  | «       |j                  D ]  }|j                  | «       Œ | j                  |«       y re   )rÁ   rª   r    ÚcalleeÚargsÚrecord_call_target_precision)ra   rl   Úas      rb   Úvisit_call_exprz!StatisticsVisitor.visit_call_exprü   se   € Ø×Ñ˜!ÔØ�:Š:Ø�J‰J×Ñ˜dÕ#à�H‰H�O‰O˜DÔ!Ø—V‘Vò �Ø—‘˜•ðà×-Ñ-¨aÕ0rc   c                óØ   — | j                   r|j                  | j                   vryt        | j                   |j                     «      }t        |t        «      r| j                  ||«       yy)z9Record precision of formal argument types used in a call.N)rM   rÆ   r4   r�   r-   Ú record_callable_target_precision)ra   rl   Úcallee_types      rb   rÈ   z.StatisticsVisitor.record_call_target_precision  sO   € à�|Š|˜qŸx™x¨t¯|©|Ñ;àÜ% d§l¡l°1·8±8Ñ&<Ó=ˆÜ�k¤<Ô0Ø×1Ñ1°!°[ÕAàrc   c                ó¸  ‡‡— | j                   sJ ‚| j                   Št        ‰j                  ‰j                  |j                  |j                  ˆˆfd„«      }|D ]~  }|D ]w  }t	        |j
                  |   «      }t        |t        «      r!| j                  ‰j                  t        «       ŒLt        |«      sŒX| j                  ‰j                  t        «       Œy Œ€ y)aJ  Record imprecision caused by callee argument types.

        This only considers arguments passed in a call expression. Arguments
        with default values that aren't provided in a call arguably don't
        contribute to typing imprecision at the *call site* (but they
        contribute at the function definition).
        c                ó(   •— ‰‰j                   |       S re   )rÇ   )Únrl   rM   s    €€rb   ú<lambda>zDStatisticsVisitor.record_callable_target_precision.<locals>.<lambda>   s   ø€ �g˜aŸf™f Q™iÑ(€ rc   N)rM   r	   Ú	arg_kindsr‘   r4   r�   r�   r,   r{   rZ   r?   Úis_impreciser=   )ra   rl   rÆ   Úactual_to_formalÚformalsrÐ   ÚformalrM   s    `     @rb   rÌ   z2StatisticsVisitor.record_callable_target_precision  s·   ù€ ð �|Š|Ðˆ|Ø—,‘,ˆÜ1Ø�K‰KØ�K‰KØ×ÑØ×ÑÜ(ó
Ðð (ò 	=ˆGØò =�Ü(¨×)9Ñ)9¸!Ñ)<Ó=�Ü˜f¤gÔ.Ø×$Ñ$ Q§V¡V¬XÕ6Ü! &Õ)Ø×$Ñ$ Q§V¡V¬^Õ<ñ=ñ	=rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_member_exprrk   s     €rb   rØ   z#StatisticsVisitor.visit_member_expr*  s   ø€ Ø×Ñ˜!ÔÜ‰Ñ! !Õ$rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_op_exprrk   s     €rb   rÚ   zStatisticsVisitor.visit_op_expr.  s   ø€ Ø×Ñ˜!ÔÜ‰Ñ˜aÕ rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_comparison_exprrk   s     €rb   rÜ   z'StatisticsVisitor.visit_comparison_expr2  ó   ø€ Ø×Ñ˜!ÔÜ‰Ñ% aÕ(rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_index_exprrk   s     €rb   rß   z"StatisticsVisitor.visit_index_expr6  ó   ø€ Ø×Ñ˜!ÔÜ‰Ñ  Õ#rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_assignment_exprrk   s     €rb   râ   z'StatisticsVisitor.visit_assignment_expr:  rÝ   rc   c                óF   •— | j                  |«       t        ‰| �	  |«       y re   )rÁ   ri   Úvisit_unary_exprrk   s     €rb   rä   z"StatisticsVisitor.visit_unary_expr>  rà   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_str_exprz StatisticsVisitor.visit_str_exprB  r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_bytes_exprz"StatisticsVisitor.visit_bytes_exprE  r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_int_exprz StatisticsVisitor.visit_int_exprH  r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_float_exprz"StatisticsVisitor.visit_float_exprK  r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_complex_exprz$StatisticsVisitor.visit_complex_exprN  r»   rc   c                ó&   — | j                  |«       y re   r¸   r›   s     rb   Úvisit_ellipsisz StatisticsVisitor.visit_ellipsisQ  r»   rc   c                ó®   — | j                   rI| j                  �<|j                  | _        | j                  | j                  j	                  |«      «       y y y re   )rN   rM   rZ   r�   r°   )ra   Únodes     rb   rÁ   zStatisticsVisitor.process_nodeV  sC   € Ø�>Š>Ø�|‰|Ð'Ø ŸI™I�”	Ø—	‘	˜$Ÿ,™,×*Ñ*¨4Ó0Õ1ð (ð rc   c                óØ   — t        |t        «      r!| j                  r|| j                  vrt        }n| j	                  «       rt
        }nt        }| j                  |j                  |«       y re   )	r�   r   rM   r9   r�   r;   r?   r{   rZ   )ra   rò   r~   s      rb   r¹   z1StatisticsVisitor.record_precise_if_checked_scope\  sL   € Ü�dœJÔ'¨D¯LªL¸TÈÏÉÑ=UÜ"‰DØ×"Ñ"Ô$Ü‰DäˆDØ×Ñ˜Ÿ™ DÕ)rc   c                ó  — t        |«      }|s!| j                  | j                  t        «       y t	        |t
        «      r,t        |«      r!| j                  | j                  t        «       y t	        |t
        «      rT| j                  d| j                  z  «       | xj                  dz  c_	        | j                  | j                  t        «       n·| j                  st        |«      s| j                  r_t        |«      rT| j                  d| j                  z  «       | xj                  dz  c_        | j                  | j                  t        «       n5| xj                   dz  c_        | j                  | j                  t        «       t#        t%        |«      «      |gz   D �]á  }t	        |t
        «      r©t'        |«      }t        |«      rŒ+| j(                  |j*                  xx   dz  cc<   | xj,                  dz  c_        | j                  | j.                  v r)| j.                  | j                     j1                  |«       Œ¢|g| j.                  | j                  <   Œ½t	        |t2        «      rm|j4                  rJt7        d„ |j4                  D «       «      r| xj8                  dz  c_        �Œ| xj:                  dz  c_        �Œ#| xj<                  dz  c_        �Œ:t	        |t>        «      r| xj@                  dz  c_         �Œat	        |tB        «      rJt7        d„ |jD                  D «       «      r| xj8                  dz  c_        �Œ¤| xjF                  dz  c_#        �Œ»t	        |tH        «      s�ŒÍ| xjJ                  dz  c_%        �Œä y )Nz  !! Any type around line %dr8   z"  !! Imprecise type around line %dc              3  ó2   K  — | ]  }t        |«      –— Œ y ­wre   ©Ú
is_complex)r�   r–   s     rb   rƒ   z)StatisticsVisitor.type.<locals>.<genexpr>�  s   è ø€ Ò?¨sœ: cŸ?Ñ?ùó   ‚c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wre   rö   )r�   r³   s     rb   rƒ   z)StatisticsVisitor.type.<locals>.<genexpr>–  s   è ø€ Ò>¨D”z $×'Ñ>ùrø   )&r4   r{   rZ   r9   r�   r,   Úis_special_form_anyr;   ÚlogrR   r?   rN   rÓ   Úis_imprecise2rQ   r=   rP   r5   r+   Úget_original_anyr\   Útype_of_anyrY   r]   r™   r/   rÇ   rD   rX   rT   rS   r.   rV   r0   r®   rU   r3   rW   )ra   r§   Útyps      rb   r�   zStatisticsVisitor.typee  s‹  € Ü˜AÓˆáð ×Ñ˜TŸY™Y¬Ô8Øä�aœÔ!Ô&9¸!Ô&<à×Ñ˜TŸY™Y¬Ô5Øä�aœÔ!Ø�H‰HÐ3°d·i±iÑ?Ô@Ø×Ò !Ñ#ÕØ×Ñ˜TŸY™Y¬Õ1Ø—.’.¤\°!¤_¸$¿.º.Ì]Ð[\ÔM]Ø�H‰HÐ9¸D¿I¹IÑEÔFØ×$Ò$¨Ñ)Õ$Ø×Ñ˜TŸY™Y¬Õ7à×"Ò" aÑ'Õ"Ø×Ñ˜TŸY™Y¬Ô5ä#Ô$;¸AÓ$>Ó?À1À#ÑEó 	,ˆCÜ˜#œwÔ'Ü& sÓ+�Ü& sÔ+ØØ×(Ñ(¨¯©Ó9¸QÑ>Ó9Ø×"Ò" aÑ'Õ"Ø—9‘9 × 1Ñ 1Ñ1Ø×%Ñ% d§i¡iÑ0×7Ñ7¸Õ<à47°5�D×%Ñ% d§i¡iÒ0Ü˜C¤Ô*Ø—8’8ÜÑ?°c·h±hÔ?Ô?Ø×.Ò.°!Ñ3×.à×.Ò.°!Ñ3×.à×)Ò)¨QÑ.×)Ü˜C¤Ô.Ø×'Ò'¨1Ñ,×'Ü˜C¤Ô+ÜÑ>°C·I±IÔ>Ô>Ø×*Ò*¨aÑ/×*à×(Ò(¨AÑ-×(Ü˜C¤Ö-Ø×&Ò&¨!Ñ+×&ñ7	,rc   c                ó:   — | j                   j                  |«       y re   )r_   r™   )ra   Ústrings     rb   rû   zStatisticsVisitor.log�  s   € Ø�‰×Ñ˜6Õ"rc   c                ór   — t        || j                  j                  |t        «      «      | j                  |<   y re   )Úmaxr[   r°   r7   )ra   rZ   Ú	precisions      rb   r{   zStatisticsVisitor.record_line   s(   € Ü! )¨T¯]©]×->Ñ->¸tÄZÓ-PÓQˆ�‰�dÒrc   )NFT)rJ   ÚboolrK   ÚstrrL   údict[str, MypyFile]rM   údict[Expression, Type] | NonerN   r  rO   r  ÚreturnÚNone)rl   r   r	  r
  )rr   r   r	  r
  )rr   r   r	  r
  )rr   zImportFrom | ImportAllr	  r
  )rr   r   r	  r
  )rl   r   r	  r
  )rl   r   r	  zIterator[None])r	  r  )rl   r   r	  r
  )rl   r%   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r"   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r'   r	  r
  )rl   r   r	  r
  )rl   r   rÆ   r-   r	  r
  )rl   r   r	  r
  )rl   r!   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r
   r	  r
  )rl   r&   r	  r
  )rl   r$   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rl   r   r	  r
  )rò   r   r	  r
  )rò   r    r	  r
  )r§   zType | Noner	  r
  )r  r  r	  r
  )rZ   Úintr  r  r	  r
  )+Ú__name__Ú
__module__Ú__qualname__r`   rj   rs   rv   rp   r†   rŽ   r   rˆ   r�   r£   r¦   r±   r¶   rº   r½   r¿   rÂ   rÄ   rÊ   rÈ   rÌ   rØ   rÚ   rÜ   rß   râ   rä   ræ   rè   rê   rì   rî   rð   rÁ   r¹   r�   rû   r{   Ú__classcell__©rm   s   @rb   rG   rG   G   s"  ø„ ð 26ØØ#'ð+(àð+(ð ð+(ð %ð	+(ð
 /ð+(ð ð+(ð !ð+(ð 
ó+(õZ#ó
!ó!ó)ó)õ.ð: ò"ó ð"ó
'óõ*õ)õ4-ó0ó0ó0õ'ó ó1ó	ó=õ2%õ!õ)õ$õ)õ$ó0ó0ó0ó0ó0ó0ó
2ó*ó6,óp#÷Rrc   rG   c                ó¢  — t        |«      ry t        |«       t        || j                  ||¬«      }| j	                  |«       |j
                  D ]  }t        |«       Œ t        d«       t        d|j                  «       t        d|j                  «       t        d|j                  «       t        d«       t        d|j                  «       t        d|j                  «       t        d	|j                  «       t        d
|j                  «       t        d|j                  «       t        d|j                  «       t        d|j                  «       y )N)rK   rL   rM   z  ** precision **z  precise  z  imprecisez  any      z  ** kinds **z  simple   z  generic  z  function z  tuple    z  TypeVar  z  complex  )Úis_special_moduler‹   rG   rg   r    r_   rP   rQ   rR   rS   rT   rV   rU   rW   rX   rY   )ÚtreeÚpathrL   rJ   rM   ÚvisitorrZ   s          rb   Údump_type_statsr  ¤  s  € ô ˜ÔØÜ	ˆ$„KÜ °4·=±=È'Ð[bÔc€GØ‡K�K�ÔØ—‘ò ˆÜˆd�ðä	Ð
ÔÜ	ˆ-˜×2Ñ2Ô3Ü	ˆ-˜×4Ñ4Ô5Ü	ˆ-˜×.Ñ.Ô/Ü	ˆ/ÔÜ	ˆ-˜×1Ñ1Ô2Ü	ˆ-˜×2Ñ2Ô3Ü	ˆ-˜×3Ñ3Ô4Ü	ˆ-˜×0Ñ0Ô1Ü	ˆ-˜×2Ñ2Ô3Ü	ˆ-˜×2Ñ2Ô3Ü	ˆ-˜×.Ñ.Õ/rc   c                óD   — t         j                  j                  | «      dv S )N)zabc.pyiz
typing.pyizbuiltins.pyi)Úosr  Úbasename)r  s    rb   r  r  À  s   € Ü�7‰7×Ñ˜DÓ!Ð%NÐNÐNrc   c                ó4   — | j                  t        «       «      S re   )r    ÚHasAnyQuery©r§   s    rb   rÓ   rÓ   Ä  s   € Ø�8‰8”K“MÓ"Ð"rc   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )r  c                ó,   •— t         ‰| �  t        «       y re   )ri   r`   r)   )ra   rm   s    €rb   r`   zHasAnyQuery.__init__É  s   ø€ Ü‰ÑœÕ&rc   c                ó   — t        |«       S re   )rú   ©ra   r§   s     rb   Ú	visit_anyzHasAnyQuery.visit_anyÌ  s   € Ü& qÓ)Ð)Ð)rc   )r	  r
  ©r§   r,   r	  r  )r  r  r  r`   r!  r  r  s   @rb   r  r  È  s   ø„ õ'÷*rc   r  c                ó4   — | j                  t        «       «      S re   )r    ÚHasAnyQuery2r  s    rb   rü   rü   Ð  s   € Ø�8‰8”L“NÓ#Ð#rc   c                  ó   — e Zd Zdd„Zy)r$  c                 ó   — y)NF© r   s     rb   Úvisit_callable_typez HasAnyQuery2.visit_callable_typeÕ  s   € ð rc   N)r§   r-   r	  r  )r  r  r  r(  r'  rc   rb   r$  r$  Ô  s   „ ôrc   r$  c                óf   — t        | «      } t        | t        «      xr t        | j                  «      S re   )r4   r�   r/   r  rÇ   r  s    rb   Ú
is_genericr*  Û  s&   € Ü˜Ó€AÜ�aœÓ"Ò3¤t¨A¯F©F£|Ð3rc   c                óh   — t        | «      } t        | «      xs t        | t        t        t
        f«      S re   )r4   r*  r�   r.   r0   r3   r  s    rb   r÷   r÷   à  s)   € Ü˜Ó€AÜ�a‹=ÒQœJ q¬<¼ÄKÐ*PÓQÐQrc   c                óN   — t        | «      j                  t        j                  k(  S re   )rý   rþ   r2   Úspecial_formr  s    rb   rú   rú   å  s   € Ü˜AÓ×*Ñ*¬i×.DÑ.DÑDÐDrc   c                óÆ   — | j                   t        j                  k(  rC| j                  sJ ‚| j                  j                   t        j                  k7  sJ ‚| j                  } | S re   )rþ   r2   Úfrom_another_anyÚ
source_anyr  s    rb   rý   rý   é  sL   € Ø‡}�}œ	×2Ñ2Ò2Ø�|Š|Ðˆ|Ø�|‰|×'Ñ'¬9×+EÑ+EÒEÐEÐEØ�L‰LˆØ€Hrc   )FN)r  r   r  r  rL   r  rJ   r  rM   r  r	  r
  )r  r  r	  r  )r§   r1   r	  r  r"  )r§   r,   r	  r,   )UÚ__doc__Ú
__future__r   r  Úcollectionsr   Úcollections.abcr   Ú
contextlibr   Útypingr   Úmypyr   Úmypy.argmapr	   Ú
mypy.nodesr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   Úmypy.traverserr(   Úmypy.type_visitorr)   r*   Úmypy.typeanalr+   Ú
mypy.typesr,   r-   r.   r/   r0   r1   r2   r3   r4   r5   Ú	mypy.utilr6   r7   Ú__annotations__r9   r;   r=   r?   rE   rG   r  r  rÓ   r  rü   r$  r*  r÷   rú   rý   r'  rc   rb   ú<module>r@     s9  ðÚ Eå "ã 	Ý Ý $Ý %Ý å Ý .÷÷ ÷ ÷ ÷ ÷ ÷ ÷ õ@ ,ß 9Ý 1÷÷ ÷ õ .à€
ˆEÓ Ø€�Ó Ø€ˆeÓ Ø€�Ó Ø€ˆ%Ó âO€�Ó OôZRÐ(ô ZRðB Ø-1ð0Ø
ð0à
ð0ð !ð0ð ð	0ð
 +ð0ð 
ó0ó8Oó#ô*�-ô *ó$ô�;ô ó4ó
Ró
Eôrc   