Ë
    pPêjsz  ã                  ó  — d Z ddlmZ ddlmZ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$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW ddlXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z` ddlambZb e ed¬«       G d	„ d
ebd   «      «       «       Zc G d„ dec«      Zd G d„ dec«      Zed*d„Zf G d„ dec«      Zgd+d„Zh G d„ dec«      Zid,d„Zj G d„ dec«      Zk G d„ dek«      Zld*d„Zm G d„ dek«      Znd*d„Zo G d„ d ec«      Zpd-d!„Zq G d"„ d#ek«      Zrd.d$„Zs G d%„ d&ek«      Ztd/d'„Zu G d(„ d)ek«      Zvy)0zGeneric node traverser visitoré    )Úannotations)Ú
mypyc_attrÚtrait)QÚREVEAL_TYPEÚ
AssertStmtÚAssertTypeExprÚAssignmentExprÚAssignmentStmtÚ	AwaitExprÚBlockÚ	BreakStmtÚ	BytesExprÚCallExprÚCastExprÚClassDefÚComparisonExprÚComplexExprÚConditionalExprÚContinueStmtÚ	DecoratorÚDelStmtÚDictExprÚDictionaryComprehensionÚEllipsisExprÚEnumCallExprÚ
ExpressionÚExpressionStmtÚ	FloatExprÚForStmtÚFuncBaseÚFuncDefÚFuncItemÚGeneratorExprÚ
GlobalDeclÚIfStmtÚImportÚ	ImportAllÚ
ImportFromÚ	IndexExprÚIntExprÚ
LambdaExprÚListComprehensionÚListExprÚ	MatchStmtÚ
MemberExprÚMypyFileÚNamedTupleExprÚNameExprÚNewTypeExprÚNodeÚNonlocalDeclÚOperatorAssignmentStmtÚOpExprÚOverloadedFuncDefÚParamSpecExprÚPassStmtÚPromoteExprÚ	RaiseStmtÚ
ReturnStmtÚ
RevealExprÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚStrExprÚ	SuperExprÚTemplateStrExprÚTempNodeÚTryStmtÚ	TupleExprÚ	TypeAliasÚTypeAliasExprÚTypeAliasStmtÚTypeApplicationÚTypedDictExprÚTypeFormExprÚTypeVarExprÚTypeVarTupleExprÚ	UnaryExprÚVarÚ	WhileStmtÚWithStmtÚ	YieldExprÚYieldFromExpr)Ú	AsPatternÚClassPatternÚMappingPatternÚ	OrPatternÚSequencePatternÚSingletonPatternÚStarredPatternÚValuePattern)ÚNodeVisitorT)Úallow_interpreted_subclassesc                  óÀ  — e Zd ZdZdYd„ZdZd„Zd[d„Zd\d„Zd]d„Zd^d„Z	d_d„Z
d`d	„Zdad
„Zdbd„Zdcd„Zddd„Zded„Zdfd„Zdgd„Zdhd„Zdid„Zdjd„Zdkd„Zdld„Zdmd„Zdnd„Zdod„Zdpd„Zdqd„Zdrd„Zdsd„Zdtd„Zdud„Z dvd„Z!dwd „Z"dxd!„Z#dyd"„Z$dzd#„Z%d{d$„Z&d|d%„Z'd}d&„Z(d~d'„Z)dd(„Z*d€d)„Z+d�d*„Z,d‚d+„Z-dƒd,„Z.d„d-„Z/d…d.„Z0d†d/„Z1d‡d0„Z2dˆd1„Z3d‰d2„Z4dŠd3„Z5d‹d4„Z6dŒd5„Z7d�d6„Z8dŽd7„Z9d�d8„Z:d�d9„Z;d‘d:„Z<d’d;„Z=d“d<„Z>d”d=„Z?d•d>„Z@d–d?„ZAd—d@„ZBd˜dA„ZCd™dB„ZDdšdC„ZEd›dD„ZFdœdE„ZGd�dF„ZHdždG„ZIdŸdH„ZJd dI„ZKd¡dJ„ZLd¢dK„ZMd£dL„ZNd¤dM„ZOd¥dN„ZPd¦dO„ZQd§dP„ZRd¨dQ„ZSd©dR„ZTdªdS„ZUd«dT„ZVd¬dU„ZWd­dV„ZXd®dW„ZYyX)¯ÚTraverserVisitora  A parse tree visitor that traverses the parse tree during visiting.

    It does not perform any actions outside the traversal. Subclasses
    should override visit methods to perform actions during
    traversal. Calling the superclass method allows reusing the
    traversal implementation.

    TODO: split this into more limited visitor (e.g. statements-only etc).
    This will improve performance since in many cases we don't need to recurse
    all the way down in various visitors that subclass this.
    c                 ó   — y ©N© ©Úselfs    úS/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/traverser.pyÚ__init__zTraverserVisitor.__init__v   ó   € Øó    c               óH   — |j                   D ]  }|j                  | «       Œ y rd   )ÚdefsÚaccept)rg   ÚoÚds      rh   Úvisit_mypy_filez TraverserVisitor.visit_mypy_file{   s    € Ø—‘ò 	ˆAØ�H‰H�T�Nñ	rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   )Úbodyrn   )rg   ÚblockÚss      rh   Úvisit_blockzTraverserVisitor.visit_block   s    € Ø—‘ò 	ˆAØ�H‰H�T�Nñ	rk   c               ó  — |j                   �]|j                   D ]"  }|j                  }|€Œ|j                  | «       Œ$ |j                   D ]  }| j                  |j                  «       Œ |j
                  j                  | «       y rd   )Ú	argumentsÚinitializerrn   Ú	visit_varÚvariablers   )rg   ro   ÚargÚinits       rh   Ú
visit_funczTraverserVisitor.visit_funcƒ   sq   € Ø�;‰;Ð"Ø—{‘{ò &�Ø—‘�ØÑ#Ø—K‘K Õ%ð&ð
 —{‘{ò -�Ø—‘˜sŸ|™|Õ,ð-ð 	
�‰�‰�dÕrk   c               ó&   — | j                  |«       y rd   ©r~   ©rg   ro   s     rh   Úvisit_func_defzTraverserVisitor.visit_func_def�   ó   € Ø�‰˜Õrk   c               ó˜   — |j                   D ]  }|j                  | «       Œ |j                  r|j                  j                  | «       y y rd   )Úitemsrn   Úimpl©rg   ro   Úitems      rh   Úvisit_overloaded_func_defz*TraverserVisitor.visit_overloaded_func_def’   s=   € Ø—G‘Gò 	ˆDØ�K‰K˜Õð	à�6Š6Ø�F‰F�M‰M˜$Õð rk   c               óÀ  — |j                   D ]  }|j                  | «       Œ |j                  D ]  }|j                  | «       Œ |j                  r|j                  j                  | «       |j                  j                  «       D ]  }|j                  | «       Œ |j                  j                  | «       |j                  r|j                  j                  | «       y y rd   )Ú
decoratorsrn   Úbase_type_exprsÚ	metaclassÚkeywordsÚvaluesrm   Úanalyzed)rg   ro   rp   ÚbaseÚvs        rh   Úvisit_class_defz TraverserVisitor.visit_class_def˜   s¯   € Ø—‘ò 	ˆAØ�H‰H�T�Nð	à×%Ñ%ò 	ˆDØ�K‰K˜Õð	à�;Š;Ø�K‰K×Ñ˜tÔ$Ø—‘×"Ñ"Ó$ò 	ˆAØ�H‰H�T�Nð	à	�‰�‰�dÔØ�:Š:Ø�J‰J×Ñ˜dÕ#ð rk   c               ó´   — |j                   j                  | «       |j                  j                  | «       |j                  D ]  }|j                  | «       Œ y rd   )Úfuncrn   Úvarr‹   )rg   ro   Ú	decorators      rh   Úvisit_decoratorz TraverserVisitor.visit_decorator¥   sC   € Ø	�‰�‰�dÔØ	�‰�‰�TÔØŸ™ò 	#ˆIØ×Ñ˜TÕ"ñ	#rk   c               ó:   — |j                   j                  | «       y rd   ©Úexprrn   r�   s     rh   Úvisit_expression_stmtz&TraverserVisitor.visit_expression_stmt«   ó   € Ø	�‰�‰�dÕrk   c               ó~   — |j                   j                  | «       |j                  D ]  }|j                  | «       Œ y rd   )Úrvaluern   Úlvalues)rg   ro   Úls      rh   Úvisit_assignment_stmtz&TraverserVisitor.visit_assignment_stmt®   s0   € Ø	�‰�‰˜ÔØ—‘ò 	ˆAØ�H‰H�T�Nñ	rk   c               óp   — |j                   j                  | «       |j                  j                  | «       y rd   )rŸ   rn   Úlvaluer�   s     rh   Úvisit_operator_assignment_stmtz/TraverserVisitor.visit_operator_assignment_stmt³   s"   € Ø	�‰�‰˜ÔØ	�‰�‰˜Õrk   c               óÀ   — |j                   j                  | «       |j                  j                  | «       |j                  r|j                  j                  | «       y y rd   ©r›   rn   rs   Ú	else_bodyr�   s     rh   Úvisit_while_stmtz!TraverserVisitor.visit_while_stmt·   s@   € Ø	�‰�‰�dÔØ	�‰�‰�dÔØ�;Š;Ø�K‰K×Ñ˜tÕ$ð rk   c               óö   — |j                   j                  | «       |j                  j                  | «       |j                  j                  | «       |j                  r|j                  j                  | «       y y rd   )Úindexrn   r›   rs   r¨   r�   s     rh   Úvisit_for_stmtzTraverserVisitor.visit_for_stmt½   sP   € Ø	�‰�‰�tÔØ	�‰�‰�dÔØ	�‰�‰�dÔØ�;Š;Ø�K‰K×Ñ˜tÕ$ð rk   c               óT   — |j                   �|j                   j                  | «       y y rd   rš   r�   s     rh   Úvisit_return_stmtz"TraverserVisitor.visit_return_stmtÄ   ó!   € Ø�6‰6ÐØ�F‰F�M‰M˜$Õð rk   c               ó¢   — |j                   �|j                   j                  | «       |j                  �|j                  j                  | «       y y rd   )r›   rn   Úmsgr�   s     rh   Úvisit_assert_stmtz"TraverserVisitor.visit_assert_stmtÈ   s;   € Ø�6‰6ÐØ�F‰F�M‰M˜$ÔØ�5‰5ÐØ�E‰E�L‰L˜Õð rk   c               óT   — |j                   �|j                   j                  | «       y y rd   rš   r�   s     rh   Úvisit_del_stmtzTraverserVisitor.visit_del_stmtÎ   r¯   rk   c               óÜ   — |j                   D ]  }|j                  | «       Œ |j                  D ]  }|j                  | «       Œ |j                  r|j                  j                  | «       y y rd   r§   )rg   ro   ÚeÚbs       rh   Úvisit_if_stmtzTraverserVisitor.visit_if_stmtÒ   s\   € Ø—‘ò 	ˆAØ�H‰H�T�Nð	à—‘ò 	ˆAØ�H‰H�T�Nð	à�;Š;Ø�K‰K×Ñ˜tÕ$ð rk   c               ó¢   — |j                   �|j                   j                  | «       |j                  �|j                  j                  | «       y y rd   )r›   rn   Ú	from_exprr�   s     rh   Úvisit_raise_stmtz!TraverserVisitor.visit_raise_stmtÚ   s=   € Ø�6‰6ÐØ�F‰F�M‰M˜$ÔØ�;‰;Ð"Ø�K‰K×Ñ˜tÕ$ð #rk   c               óè  — |j                   j                  | «       t        t        |j                  «      «      D ]B  }|j                  |   }|�|j                  | «       |j
                  |   j                  | «       ŒD |j                  D ]  }|€Œ|j                  | «       Œ |j                  �|j                  j                  | «       |j                  �|j                  j                  | «       y y rd   )	rs   rn   ÚrangeÚlenÚtypesÚhandlersÚvarsr¨   Úfinally_body)rg   ro   ÚiÚtpr’   s        rh   Úvisit_try_stmtzTraverserVisitor.visit_try_stmtà   sÅ   € Ø	�‰�‰�dÔÜ”s˜1Ÿ7™7“|Ó$ò 	'ˆAØ—‘˜‘ˆBØˆ~Ø—	‘	˜$”Ø�J‰J�q‰M× Ñ  Õ&ð		'ð
 —‘ò 	ˆAØ‰}Ø—‘˜•ð	ð �;‰;Ð"Ø�K‰K×Ñ˜tÔ$Ø�>‰>Ð%Ø�N‰N×!Ñ! $Õ'ð &rk   c               ó  — t        t        |j                  «      «      D ]C  }|j                  |   j                  | «       |j                  |   }|€Œ3|j                  | «       ŒE |j
                  j                  | «       y rd   )r½   r¾   r›   rn   Útargetrs   )rg   ro   rÃ   Útargs       rh   Úvisit_with_stmtz TraverserVisitor.visit_with_stmtï   se   € Ü”s˜1Ÿ6™6“{Ó#ò 	"ˆAØ�F‰F�1‰I×Ñ˜TÔ"Ø—8‘8˜A‘;ˆDØÑØ—‘˜DÕ!ð		"ð
 	
�‰�‰�dÕrk   c               ó<  — |j                   j                  | «       t        t        |j                  «      «      D ]`  }|j                  |   j                  | «       |j
                  |   }|�|j                  | «       |j                  |   j                  | «       Œb y rd   )Úsubjectrn   r½   r¾   ÚpatternsÚguardsÚbodies)rg   ro   rÃ   Úguards       rh   Úvisit_match_stmtz!TraverserVisitor.visit_match_stmt÷   s{   € Ø	�	‰	×Ñ˜ÔÜ”s˜1Ÿ:™:“Ó'ò 	%ˆAØ�J‰J�q‰M× Ñ  Ô&Ø—H‘H˜Q‘KˆEØÐ Ø—‘˜TÔ"Ø�H‰H�Q‰K×Ñ˜tÕ$ñ	%rk   c               óp   — |j                   j                  | «       |j                  j                  | «       y rd   )Únamern   Úvaluer�   s     rh   Úvisit_type_alias_stmtz&TraverserVisitor.visit_type_alias_stmt   s"   € Ø	�‰�‰�dÔØ	�‰�‰�tÕrk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_member_exprz"TraverserVisitor.visit_member_expr  r�   rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_yield_from_exprz&TraverserVisitor.visit_yield_from_expr  r�   rk   c               óT   — |j                   r|j                   j                  | «       y y rd   rš   r�   s     rh   Úvisit_yield_exprz!TraverserVisitor.visit_yield_expr
  s   € Ø�6Š6Ø�F‰F�M‰M˜$Õð rk   c               óÎ   — |j                   j                  | «       |j                  D ]  }|j                  | «       Œ |j                  r|j                  j                  | «       y y rd   )Úcalleern   Úargsr�   ©rg   ro   Úas      rh   Úvisit_call_exprz TraverserVisitor.visit_call_expr  sN   € Ø	�‰�‰˜ÔØ—‘ò 	ˆAØ�H‰H�T�Nð	à�:Š:Ø�J‰J×Ñ˜dÕ#ð rk   c               óÀ   — |j                   j                  | «       |j                  j                  | «       |j                  �|j                  j                  | «       y y rd   )Úleftrn   Úrightr�   r�   s     rh   Úvisit_op_exprzTraverserVisitor.visit_op_expr  sC   € Ø	�‰�‰�dÔØ	�‰�‰�tÔØ�:‰:Ð!Ø�J‰J×Ñ˜dÕ#ð "rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   )Úoperandsrn   )rg   ro   Úoperands      rh   Úvisit_comparison_exprz&TraverserVisitor.visit_comparison_expr  s!   € Ø—z‘zò 	!ˆGØ�N‰N˜4Õ ñ	!rk   c               óð   — |j                   �|j                   j                  | «       |j                  �|j                  j                  | «       |j                  �|j                  j                  | «       y y rd   )Úbegin_indexrn   Ú	end_indexÚstrider�   s     rh   Úvisit_slice_exprz!TraverserVisitor.visit_slice_expr  sY   € Ø�=‰=Ð$Ø�M‰M× Ñ  Ô&Ø�;‰;Ð"Ø�K‰K×Ñ˜tÔ$Ø�8‰8ÐØ�H‰H�O‰O˜DÕ!ð  rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_cast_exprz TraverserVisitor.visit_cast_expr'  r�   rk   c                ó   — y rd   re   r�   s     rh   Úvisit_type_form_exprz%TraverserVisitor.visit_type_form_expr*  rj   rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_assert_type_exprz'TraverserVisitor.visit_assert_type_expr-  r�   rk   c               ó~   — |j                   t        k(  r*|j                  €J ‚|j                  j                  | «       y y rd   )Úkindr   r›   rn   r�   s     rh   Úvisit_reveal_exprz"TraverserVisitor.visit_reveal_expr0  s3   € Ø�6‰6”[Ò Ø—6‘6Ð%Ð%Ð%Ø�F‰F�M‰M˜$Õð rk   c               óp   — |j                   j                  | «       |j                  j                  | «       y rd   )rÇ   rn   rÓ   r�   s     rh   Úvisit_assignment_exprz&TraverserVisitor.visit_assignment_expr8  s"   € Ø	�‰�‰˜ÔØ	�‰�‰�tÕrk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_unary_exprz!TraverserVisitor.visit_unary_expr<  r�   rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   ©r…   rn   r‡   s      rh   Úvisit_list_exprz TraverserVisitor.visit_list_expr?  ó!   € Ø—G‘Gò 	ˆDØ�K‰K˜Õñ	rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   rü   r‡   s      rh   Úvisit_tuple_exprz!TraverserVisitor.visit_tuple_exprC  rþ   rk   c               ót   — |j                   D ])  \  }}|�|j                  | «       |j                  | «       Œ+ y rd   rü   )rg   ro   Úkr’   s       rh   Úvisit_dict_exprz TraverserVisitor.visit_dict_exprG  s4   € Ø—G‘Gò 	‰DˆAˆqØˆ}Ø—‘˜”Ø�H‰H�T�Nñ	rk   c               óÆ   — |j                   D ]R  }t        |t        «      r/|d   j                  | «       |d   €Œ-|d   j                  | «       ŒB|j                  | «       ŒT y )Nr   é   )r…   Ú
isinstanceÚtuplern   r‡   s      rh   Úvisit_template_str_exprz(TraverserVisitor.visit_template_str_exprM  sU   € Ø—G‘Gò 	"ˆDÜ˜$¤Ô&Ø�Q‘—‘˜tÔ$Ø˜‘7Ñ&Ø˜‘G—N‘N 4Õ(à—‘˜DÕ!ñ	"rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   rü   r‡   s      rh   Úvisit_set_exprzTraverserVisitor.visit_set_exprV  rþ   rk   c               óÀ   — |j                   j                  | «       |j                  j                  | «       |j                  r|j                  j                  | «       y y rd   )r‘   rn   r«   r�   r�   s     rh   Úvisit_index_exprz!TraverserVisitor.visit_index_exprZ  s@   € Ø	�‰�‰�dÔØ	�‰�‰�tÔØ�:Š:Ø�J‰J×Ñ˜dÕ#ð rk   c               ó  — t        |j                  |j                  |j                  «      D ]@  \  }}}|j	                  | «       |j	                  | «       |D ]  }|j	                  | «       Œ ŒB |j
                  j	                  | «       y rd   )ÚzipÚindicesÚ	sequencesÚ	condlistsrn   Ú	left_expr©rg   ro   r«   ÚsequenceÚ
conditionsÚconds         rh   Úvisit_generator_exprz%TraverserVisitor.visit_generator_expr`  st   € Ü+.¨q¯y©y¸!¿+¹+ÀqÇ{Á{Ó+Sò 	"Ñ'ˆE�8˜ZØ�O‰O˜DÔ!Ø�L‰L˜ÔØ"ò "�Ø—‘˜DÕ!ñ"ð	"ð
 	
�‰×Ñ˜4Õ rk   c               ód  — t        |j                  |j                  |j                  «      D ]@  \  }}}|j	                  | «       |j	                  | «       |D ]  }|j	                  | «       Œ ŒB |j
                  �|j
                  j	                  | «       |j                  j	                  | «       y rd   )r  r  r  r  rn   ÚkeyrÓ   r  s         rh   Úvisit_dictionary_comprehensionz/TraverserVisitor.visit_dictionary_comprehensionh  sŒ   € Ü+.¨q¯y©y¸!¿+¹+ÀqÇ{Á{Ó+Sò 	"Ñ'ˆE�8˜ZØ�O‰O˜DÔ!Ø�L‰L˜ÔØ"ò "�Ø—‘˜DÕ!ñ"ð	"ð
 �5‰5ÐØ�E‰E�L‰L˜ÔØ	�‰�‰�tÕrk   c               ó:   — |j                   j                  | «       y rd   ©Ú	generatorrn   r�   s     rh   Úvisit_list_comprehensionz)TraverserVisitor.visit_list_comprehensionr  ó   € Ø	�‰×Ñ˜4Õ rk   c               ó:   — |j                   j                  | «       y rd   r  r�   s     rh   Úvisit_set_comprehensionz(TraverserVisitor.visit_set_comprehensionu  r  rk   c               ó¦   — |j                   j                  | «       |j                  j                  | «       |j                  j                  | «       y rd   )r  rn   Úif_exprÚ	else_exprr�   s     rh   Úvisit_conditional_exprz'TraverserVisitor.visit_conditional_exprx  s6   € Ø	�‰�‰�dÔØ	�	‰	×Ñ˜ÔØ	�‰×Ñ˜4Õ rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_type_applicationz'TraverserVisitor.visit_type_application}  r�   rk   c               ó&   — | j                  |«       y rd   r€   r�   s     rh   Úvisit_lambda_exprz"TraverserVisitor.visit_lambda_expr€  rƒ   rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_star_exprz TraverserVisitor.visit_star_exprƒ  r�   rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_await_exprz!TraverserVisitor.visit_await_expr†  r�   rk   c               ó:   — |j                   j                  | «       y rd   )Úcallrn   r�   s     rh   Úvisit_super_exprz!TraverserVisitor.visit_super_expr‰  r�   rk   c               ó¢   — |j                   �|j                   j                  | «       |j                  �|j                  j                  | «       y y rd   )Úpatternrn   rÒ   r�   s     rh   Úvisit_as_patternz!TraverserVisitor.visit_as_patternŒ  s=   € Ø�9‰9Ð Ø�I‰I×Ñ˜TÔ"Ø�6‰6ÐØ�F‰F�M‰M˜$Õð rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   ©rÌ   rn   ©rg   ro   Úps      rh   Úvisit_or_patternz!TraverserVisitor.visit_or_pattern’  ó    € Ø—‘ò 	ˆAØ�H‰H�T�Nñ	rk   c               ó:   — |j                   j                  | «       y rd   rš   r�   s     rh   Úvisit_value_patternz$TraverserVisitor.visit_value_pattern–  r�   rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   r5  r6  s      rh   Úvisit_sequence_patternz'TraverserVisitor.visit_sequence_pattern™  r9  rk   c               óT   — |j                   �|j                   j                  | «       y y rd   )Úcapturern   r�   s     rh   Úvisit_starred_patternz&TraverserVisitor.visit_starred_pattern�  s#   € Ø�9‰9Ð Ø�I‰I×Ñ˜TÕ"ð !rk   c               óÜ   — |j                   D ]  }|j                  | «       Œ |j                  D ]  }|j                  | «       Œ |j                  �|j                  j                  | «       y y rd   )Úkeysrn   r�   Úrest)rg   ro   r  rÓ   s       rh   Úvisit_mapping_patternz&TraverserVisitor.visit_mapping_pattern¡  s_   € Ø—6‘6ò 	ˆCØ�J‰J�tÕð	à—X‘Xò 	ˆEØ�L‰L˜Õð	à�6‰6ÐØ�F‰F�M‰M˜$Õð rk   c               óÂ   — |j                   j                  | «       |j                  D ]  }|j                  | «       Œ |j                  D ]  }|j                  | «       Œ y rd   )Ú	class_refrn   ÚpositionalsÚkeyword_values)rg   ro   r7  r’   s       rh   Úvisit_class_patternz$TraverserVisitor.visit_class_pattern©  sR   € Ø	�‰×Ñ˜4Ô Ø—‘ò 	ˆAØ�H‰H�T�Nð	à×!Ñ!ò 	ˆAØ�H‰H�T�Nñ	rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   ©Úassignmentsrn   rÞ   s      rh   Úvisit_importzTraverserVisitor.visit_import°  ó    € Ø—‘ò 	ˆAØ�H‰H�T�Nñ	rk   c               óH   — |j                   D ]  }|j                  | «       Œ y rd   rK  rÞ   s      rh   Úvisit_import_fromz"TraverserVisitor.visit_import_from´  rN  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_name_exprz TraverserVisitor.visit_name_expr¹  ó   € Ørk   c                ó   — y rd   re   r�   s     rh   Úvisit_str_exprzTraverserVisitor.visit_str_expr¼  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_int_exprzTraverserVisitor.visit_int_expr¿  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_float_exprz!TraverserVisitor.visit_float_exprÂ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_bytes_exprz!TraverserVisitor.visit_bytes_exprÅ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_ellipsiszTraverserVisitor.visit_ellipsisÈ  rS  rk   c                ó   — y rd   re   r�   s     rh   rz   zTraverserVisitor.visit_varË  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_continue_stmtz$TraverserVisitor.visit_continue_stmtÎ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_pass_stmtz TraverserVisitor.visit_pass_stmtÑ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_break_stmtz!TraverserVisitor.visit_break_stmtÔ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_temp_nodez TraverserVisitor.visit_temp_node×  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_nonlocal_declz$TraverserVisitor.visit_nonlocal_declÚ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_global_declz"TraverserVisitor.visit_global_declÝ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_import_allz!TraverserVisitor.visit_import_allà  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_type_var_exprz$TraverserVisitor.visit_type_var_exprã  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_paramspec_exprz%TraverserVisitor.visit_paramspec_expræ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_type_var_tuple_exprz*TraverserVisitor.visit_type_var_tuple_expré  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_type_alias_exprz&TraverserVisitor.visit_type_alias_exprì  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_type_aliasz!TraverserVisitor.visit_type_aliasï  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_namedtuple_exprz&TraverserVisitor.visit_namedtuple_exprò  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_typeddict_exprz%TraverserVisitor.visit_typeddict_exprõ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_newtype_exprz#TraverserVisitor.visit_newtype_exprø  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit__promote_exprz$TraverserVisitor.visit__promote_exprû  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_complex_exprz#TraverserVisitor.visit_complex_exprþ  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_enum_call_exprz%TraverserVisitor.visit_enum_call_expr  rS  rk   c                ó   — y rd   re   r�   s     rh   Úvisit_singleton_patternz(TraverserVisitor.visit_singleton_pattern  rS  rk   N©ÚreturnÚNone©ro   r0   r†  r‡  ©rt   r   r†  r‡  )ro   r"   r†  r‡  ©ro   r!   r†  r‡  ©ro   r8   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  ©ro   r
   r†  r‡  ©ro   r6   r†  r‡  ©ro   rS   r†  r‡  ©ro   r   r†  r‡  ©ro   r=   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  ©ro   r%   r†  r‡  ©ro   r<   r†  r‡  ©ro   rG   r†  r‡  ©ro   rT   r†  r‡  ©ro   r.   r†  r‡  )ro   rK   r†  r‡  ©ro   r/   r†  r‡  ©ro   rV   r†  r‡  ©ro   rU   r†  r‡  ©ro   r   r†  r‡  ©ro   r7   r†  r‡  ©ro   r   r†  r‡  ©ro   rA   r†  r‡  ©ro   r   r†  r‡  ©ro   rN   r†  r‡  ©ro   r   r†  r‡  ©ro   r>   r†  r‡  ©ro   r	   r†  r‡  ©ro   rQ   r†  r‡  ©ro   r-   r†  r‡  ©ro   rH   r†  r‡  ©ro   r   r†  r‡  ©ro   rE   r†  r‡  ©ro   r@   r†  r‡  ©ro   r)   r†  r‡  ©ro   r#   r†  r‡  ©ro   r   r†  r‡  ©ro   r,   r†  r‡  ©ro   r?   r†  r‡  ©ro   r   r†  r‡  ©ro   rL   r†  r‡  ©ro   r+   r†  r‡  ©ro   rB   r†  r‡  ©ro   r   r†  r‡  ©ro   rD   r†  r‡  ©ro   rW   r†  r‡  ©ro   rZ   r†  r‡  ©ro   r^   r†  r‡  ©ro   r[   r†  r‡  ©ro   r]   r†  r‡  ©ro   rY   r†  r‡  ©ro   rX   r†  r‡  ©ro   r&   r†  r‡  ©ro   r(   r†  r‡  ©ro   r2   r†  r‡  ©ro   rC   r†  r‡  ©ro   r*   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  )ro   rR   r†  r‡  ©ro   r   r†  r‡  ©ro   r:   r†  r‡  ©ro   r   r†  r‡  )ro   rF   r†  r‡  ©ro   r5   r†  r‡  ©ro   r$   r†  r‡  ©ro   r'   r†  r‡  ©ro   rO   r†  r‡  ©ro   r9   r†  r‡  ©ro   rP   r†  r‡  ©ro   rJ   r†  r‡  ©ro   rI   r†  r‡  ©ro   r1   r†  r‡  ©ro   rM   r†  r‡  ©ro   r3   r†  r‡  )ro   r;   r†  r‡  ©ro   r   r†  r‡  ©ro   r   r†  r‡  ©ro   r\   r†  r‡  )ZÚ__name__Ú
__module__Ú__qualname__Ú__doc__ri   rq   rv   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   r  r  r
  r  r  r  r  r!  r%  r'  r)  r+  r-  r0  r3  r8  r;  r=  r@  rD  rI  rM  rP  rR  rU  rW  rY  r[  r]  rz   r`  rb  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  rx  rz  r|  r~  r€  r‚  r„  re   rk   rh   rb   rb   g   sµ  „ ñ
óó
óó
óó ó$ó#óóó
ó%ó%ó óó ó%ó%ó(óó%óóóó ó$ó$ó!ó"óóóóóóóóóó"óó$ó!óó!ó!ó!ó
óóóóó óóóó#ó óóóó
óóóóóóóóóóóóóóóóóóóóóóóóôrk   rb   Nc                  óà  ‡ — e Zd ZdZdSd„ZdTˆ fd„ZdUˆ fd„ZdVˆ fd„ZdWˆ fd„ZdXˆ fd„Z	dYˆ fd„Z
dZˆ fd	„Zd[ˆ f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dbˆ fd„Zdcˆ fd„Zddˆ fd„Zdeˆ fd„Zdfˆ fd„Zdgˆ fd„Zdhˆ fd„Zdiˆ fd„Zdjˆ fd„Zdkˆ fd„Zdlˆ fd„Zdmˆ fd„Zdnˆ fd„Zdoˆ fd„Z dpˆ fd„Z!dqˆ fd „Z"drˆ fd!„Z#dsˆ fd"„Z$dtˆ fd#„Z%duˆ fd$„Z&dvˆ fd%„Z'dwˆ fd&„Z(dxˆ fd'„Z)dyˆ fd(„Z*dzˆ fd)„Z+d{ˆ fd*„Z,d|ˆ fd+„Z-d}ˆ fd,„Z.d~ˆ fd-„Z/dˆ fd.„Z0d€ˆ fd/„Z1d�ˆ fd0„Z2d‚ˆ fd1„Z3dƒˆ fd2„Z4d„ˆ fd3„Z5d…ˆ fd4„Z6d†ˆ fd5„Z7d‡ˆ fd6„Z8dˆˆ fd7„Z9d‰ˆ fd8„Z:dŠˆ fd9„Z;d‹ˆ fd:„Z<dŒˆ fd;„Z=d�ˆ fd<„Z>dŽˆ fd=„Z?d�ˆ fd>„Z@d�ˆ fd?„ZAd‘ˆ fd@„ZBd’ˆ fdA„ZCd“ˆ fdB„ZDd”ˆ fdC„ZEd•ˆ fdD„ZFd–ˆ fdE„ZGd—ˆ fdF„ZHd˜ˆ fdG„ZId™ˆ fdH„ZJdšˆ fdI„ZKd›ˆ fdJ„ZLdœˆ fdK„ZMd�ˆ fdL„ZNdžˆ fdM„ZOdŸˆ fdN„ZPd ˆ fdO„ZQd¡ˆ fdP„ZRd¢ˆ fdQ„ZSd£ˆ fdR„ZTˆ xZUS )¤ÚExtendedTraverserVisitora]  This is a more flexible traverser.

    In addition to the base traverser it:
        * has visit_ methods for leaf nodes
        * has common method that is called for all nodes
        * allows skipping recursing into a node

    Note that this traverser still doesn't visit some internal
    mypy constructs like _promote expression and Var.
    c                 ó   — y©NTre   r�   s     rh   ÚvisitzExtendedTraverserVisitor.visit  s   € àrk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  Úsuperrq   ©rg   ro   Ú	__class__s     €rh   rq   z(ExtendedTraverserVisitor.visit_mypy_file  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ Õ"rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rM  rã  s     €rh   rM  z%ExtendedTraverserVisitor.visit_import  s   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ˜QÕrk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rP  rã  s     €rh   rP  z*ExtendedTraverserVisitor.visit_import_from$  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ! !Õ$rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rl  rã  s     €rh   rl  z)ExtendedTraverserVisitor.visit_import_all)  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ  Õ#rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r‚   rã  s     €rh   r‚   z'ExtendedTraverserVisitor.visit_func_def0  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ˜qÕ!rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r‰   rã  s     €rh   r‰   z2ExtendedTraverserVisitor.visit_overloaded_func_def5  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ)¨!Õ,rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r“   rã  s     €rh   r“   z(ExtendedTraverserVisitor.visit_class_def:  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rj  rã  s     €rh   rj  z*ExtendedTraverserVisitor.visit_global_decl?  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rh  rã  s     €rh   rh  z,ExtendedTraverserVisitor.visit_nonlocal_declD  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ# AÕ&rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r˜   rã  s     €rh   r˜   z(ExtendedTraverserVisitor.visit_decoratorI  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rv  rã  s     €rh   rv  z)ExtendedTraverserVisitor.visit_type_aliasN  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rv   )rg   rt   rä  s     €rh   rv   z$ExtendedTraverserVisitor.visit_blockU  s   ø€ Ø�z‰z˜%Ô ØÜ‰Ñ˜EÕ"rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rœ   rã  s     €rh   rœ   z.ExtendedTraverserVisitor.visit_expression_stmtZ  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ% aÕ(rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r¢   rã  s     €rh   r¢   z.ExtendedTraverserVisitor.visit_assignment_stmt_  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r¥   rã  s     €rh   r¥   z7ExtendedTraverserVisitor.visit_operator_assignment_stmtd  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ.¨qÕ1rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r©   rã  s     €rh   r©   z)ExtendedTraverserVisitor.visit_while_stmti  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r¬   rã  s     €rh   r¬   z'ExtendedTraverserVisitor.visit_for_stmtn  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r®   rã  s     €rh   r®   z*ExtendedTraverserVisitor.visit_return_stmts  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r²   rã  s     €rh   r²   z*ExtendedTraverserVisitor.visit_assert_stmtx  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r´   rã  s     €rh   r´   z'ExtendedTraverserVisitor.visit_del_stmt}  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r¸   rã  s     €rh   r¸   z&ExtendedTraverserVisitor.visit_if_stmt‚  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ˜aÕ rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rd  rã  s     €rh   rd  z)ExtendedTraverserVisitor.visit_break_stmt‡  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r`  rã  s     €rh   r`  z,ExtendedTraverserVisitor.visit_continue_stmtŒ  rò  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rb  rã  s     €rh   rb  z(ExtendedTraverserVisitor.visit_pass_stmt‘  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r»   rã  s     €rh   r»   z)ExtendedTraverserVisitor.visit_raise_stmt–  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rÅ   rã  s     €rh   rÅ   z'ExtendedTraverserVisitor.visit_try_stmt›  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rÉ   rã  s     €rh   rÉ   z(ExtendedTraverserVisitor.visit_with_stmt   rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rÐ   rã  s     €rh   rÐ   z)ExtendedTraverserVisitor.visit_match_stmt¥  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rW  rã  s     €rh   rW  z'ExtendedTraverserVisitor.visit_int_expr¬  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rU  rã  s     €rh   rU  z'ExtendedTraverserVisitor.visit_str_expr±  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r[  rã  s     €rh   r[  z)ExtendedTraverserVisitor.visit_bytes_expr¶  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rY  rã  s     €rh   rY  z)ExtendedTraverserVisitor.visit_float_expr»  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r€  rã  s     €rh   r€  z+ExtendedTraverserVisitor.visit_complex_exprÀ  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ" 1Õ%rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r]  rã  s     €rh   r]  z'ExtendedTraverserVisitor.visit_ellipsisÅ  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r+  rã  s     €rh   r+  z(ExtendedTraverserVisitor.visit_star_exprÊ  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rR  rã  s     €rh   rR  z(ExtendedTraverserVisitor.visit_name_exprÏ  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rÖ   rã  s     €rh   rÖ   z*ExtendedTraverserVisitor.visit_member_exprÔ  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rØ   rã  s     €rh   rØ   z.ExtendedTraverserVisitor.visit_yield_from_exprÙ  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rÚ   rã  s     €rh   rÚ   z)ExtendedTraverserVisitor.visit_yield_exprÞ  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rà   rã  s     €rh   rà   z(ExtendedTraverserVisitor.visit_call_exprã  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rä   rã  s     €rh   rä   z&ExtendedTraverserVisitor.visit_op_exprè  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rè   rã  s     €rh   rè   z.ExtendedTraverserVisitor.visit_comparison_exprí  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rï   rã  s     €rh   rï   z(ExtendedTraverserVisitor.visit_cast_exprò  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rñ   rã  s     €rh   rñ   z-ExtendedTraverserVisitor.visit_type_form_expr÷  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ$ QÕ'rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  ró   rã  s     €rh   ró   z/ExtendedTraverserVisitor.visit_assert_type_exprü  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ& qÕ)rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rö   rã  s     €rh   rö   z*ExtendedTraverserVisitor.visit_reveal_expr  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r0  rã  s     €rh   r0  z)ExtendedTraverserVisitor.visit_super_expr  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rø   rã  s     €rh   rø   z.ExtendedTraverserVisitor.visit_assignment_expr  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rú   rã  s     €rh   rú   z)ExtendedTraverserVisitor.visit_unary_expr  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rý   rã  s     €rh   rý   z(ExtendedTraverserVisitor.visit_list_expr  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z(ExtendedTraverserVisitor.visit_dict_expr  rå  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z0ExtendedTraverserVisitor.visit_template_str_expr  ó   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ'¨Õ*rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r   rã  s     €rh   r   z)ExtendedTraverserVisitor.visit_tuple_expr$  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r
  rã  s     €rh   r
  z'ExtendedTraverserVisitor.visit_set_expr)  rì  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z)ExtendedTraverserVisitor.visit_index_expr.  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r'  rã  s     €rh   r'  z/ExtendedTraverserVisitor.visit_type_application3  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r)  rã  s     €rh   r)  z*ExtendedTraverserVisitor.visit_lambda_expr8  rè  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z1ExtendedTraverserVisitor.visit_list_comprehension=  s   ø€ Ø�z‰z˜!Œ}ØÜ‰Ñ(¨Õ+rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r!  rã  s     €rh   r!  z0ExtendedTraverserVisitor.visit_set_comprehensionB  r$  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z7ExtendedTraverserVisitor.visit_dictionary_comprehensionG  rú  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r  rã  s     €rh   r  z-ExtendedTraverserVisitor.visit_generator_exprL  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rí   rã  s     €rh   rí   z)ExtendedTraverserVisitor.visit_slice_exprQ  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r%  rã  s     €rh   r%  z/ExtendedTraverserVisitor.visit_conditional_exprV  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rn  rã  s     €rh   rn  z,ExtendedTraverserVisitor.visit_type_var_expr[  rò  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rp  rã  s     €rh   rp  z-ExtendedTraverserVisitor.visit_paramspec_expr`  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rr  rã  s     €rh   rr  z2ExtendedTraverserVisitor.visit_type_var_tuple_expre  rî  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rt  rã  s     €rh   rt  z.ExtendedTraverserVisitor.visit_type_alias_exprj  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rx  rã  s     €rh   rx  z.ExtendedTraverserVisitor.visit_namedtuple_expro  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r‚  rã  s     €rh   r‚  z-ExtendedTraverserVisitor.visit_enum_call_exprt  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rz  rã  s     €rh   rz  z-ExtendedTraverserVisitor.visit_typeddict_expry  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r|  rã  s     €rh   r|  z+ExtendedTraverserVisitor.visit_newtype_expr~  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r-  rã  s     €rh   r-  z)ExtendedTraverserVisitor.visit_await_exprƒ  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r3  rã  s     €rh   r3  z)ExtendedTraverserVisitor.visit_as_patternŠ  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r8  rã  s     €rh   r8  z)ExtendedTraverserVisitor.visit_or_pattern�  rê  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r;  rã  s     €rh   r;  z,ExtendedTraverserVisitor.visit_value_pattern”  rò  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r„  rã  s     €rh   r„  z0ExtendedTraverserVisitor.visit_singleton_pattern™  r$  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r=  rã  s     €rh   r=  z/ExtendedTraverserVisitor.visit_sequence_patternž  r  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  r@  rã  s     €rh   r@  z.ExtendedTraverserVisitor.visit_starred_pattern£  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rD  rã  s     €rh   rD  z.ExtendedTraverserVisitor.visit_mapping_pattern¨  r÷  rk   c               óH   •— | j                  |«      sy t        ‰| �	  |«       y rd   )rà  râ  rI  rã  s     €rh   rI  z,ExtendedTraverserVisitor.visit_class_pattern­  rò  rk   )ro   r4   r†  Úboolrˆ  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µ  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Ö  rÓ  rÔ  r¶  r¸  r¹  rº  r×  r»  r¼  r½  r¾  )VrØ  rÙ  rÚ  rÛ  rà  rq   rM  rP  rl  r‚   r‰   r“   rj  rh  r˜   rv  rv   rœ   r¢   r¥   r©   r¬   r®   r²   r´   r¸   rd  r`  rb  r»   rÅ   rÉ   rÐ   rW  rU  r[  rY  r€  r]  r+  rR  rÖ   rØ   rÚ   rà   rä   rè   rï   rñ   ró   rö   r0  rø   rú   rý   r  r  r   r
  r  r'  r)  r  r!  r  r  rí   r%  rn  rp  rr  rt  rx  r‚  rz  r|  r-  r3  r8  r;  r„  r=  r@  rD  rI  Ú__classcell__©rä  s   @rh   rÝ  rÝ    s¢  ø„ ñ	óõ#õ õ
%õ
$õ"õ
-õ
#õ
%õ
'õ
#õ
$õ#õ
)õ
)õ
2õ
$õ
"õ
%õ
%õ
"õ
!õ
$õ
'õ
#õ
$õ
"õ
#õ
$õ"õ
"õ
$õ
$õ
&õ
"õ
#õ
#õ
%õ
)õ
$õ
#õ
!õ
)õ
#õ
(õ
*õ
%õ
$õ
)õ
$õ
#õ
#õ
+õ
$õ
"õ
$õ
*õ
%õ
,õ
+õ
2õ
(õ
$õ
*õ
'õ
(õ
-õ
)õ
)õ
(õ
(õ
&õ
$õ$õ
$õ
'õ
+õ
*õ
)õ
)÷
'ñ 'rk   rÝ  c                  ó   — e Zd Zdd„Zdd„Zy)ÚReturnSeekerc                ó   — d| _         y ©NF©Úfoundrf   s    rh   ri   zReturnSeeker.__init__´  ó	   € Øˆ�
rk   c                ó’   — |j                   �3t        |j                   t        «      r|j                   j                  dk(  ry d| _        y )Nr‡  T)r›   r  r2   rÒ   rI  r�   s     rh   r®   zReturnSeeker.visit_return_stmt·  s1   € Ø�6‰6ˆ>œZ¨¯©´Ô9¸a¿f¹f¿k¹kÈVÒ>SØØˆ�
rk   Nr…  r“  )rØ  rÙ  rÚ  ri   r®   re   rk   rh   rE  rE  ³  s   „ óôrk   rE  c                óP   — t        «       }| j                  |«       |j                  S )znFind if a function has a non-trivial return statement.

    Plain 'return' and 'return None' don't count.
    )rE  rn   rI  ©ÚfdefÚseekers     rh   Úhas_return_statementrP  ½  s!   € ô
 ‹^€FØ‡K�K�ÔØ�<‰<Ðrk   c                  ó8   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zdˆ fd„Zˆ xZS )ÚNameAndMemberCollectorc                ó>   •— t         ‰| �  «        g | _        g | _        y rd   )râ  ri   Ú
name_exprsÚmember_exprs©rg   rä  s    €rh   ri   zNameAndMemberCollector.__init__È  s   ø€ Ü‰ÑÔØ*,ˆŒØ.0ˆÕrk   c               óZ   •— | j                   j                  |«       t        ‰| �  |«       y rd   )rT  Úappendrâ  rR  rã  s     €rh   rR  z&NameAndMemberCollector.visit_name_exprÍ  s"   ø€ Ø�‰×Ñ˜qÔ!Ü‰Ñ Õ"rk   c               óZ   •— | j                   j                  |«       t        ‰| �  |«       y rd   )rU  rX  râ  rÖ   rã  s     €rh   rÖ   z(NameAndMemberCollector.visit_member_exprÑ  s$   ø€ Ø×Ñ× Ñ  Ô#Ü‰Ñ! !Õ$rk   r…  rÁ  r›  )rØ  rÙ  rÚ  ri   rR  rÖ   rB  rC  s   @rh   rR  rR  Ç  s   ø„ õ1õ
#÷%ñ %rk   rR  c                óh   — t        «       }| j                  |«       |j                  |j                  fS rd   )rR  rn   rT  rU  ©Únoder’   s     rh   Úall_name_and_member_expressionsr]  Ö  s(   € ÜÓ €AØ‡K�K�„NØ�L‰L˜!Ÿ.™.Ð)Ð)rk   c                  ó   — e Zd Zdd„Zdd„Zy)ÚStringSeekerc                ó   — d| _         y rG  rH  rf   s    rh   ri   zStringSeeker.__init__Ý  rJ  rk   c               ó   — d| _         y rß  rH  r�   s     rh   rU  zStringSeeker.visit_str_exprà  ó	   € Øˆ�
rk   Nr…  rÂ  )rØ  rÙ  rÚ  ri   rU  re   rk   rh   r_  r_  Ü  s   „ óôrk   r_  c                óP   — t        «       }| j                  |«       |j                  S rd   )r_  rn   rI  r[  s     rh   Úhas_str_expressionrd  ä  s   € Ü‹€AØ‡K�K�„NØ�7‰7€Nrk   c                  ó(   ‡ — e Zd Zdd„Zdˆ fd„Zˆ xZS )ÚFuncCollectorBasec                ó   — d| _         y rG  )Úinside_funcrf   s    rh   ri   zFuncCollectorBase.__init__ë  s
   € Ø ˆÕrk   c                óZ   •— | j                   sd| _         t        ‰| �	  |«       d| _         y y ©NTF)rh  râ  r‚   )rg   Údefnrä  s     €rh   r‚   z FuncCollectorBase.visit_func_defî  s.   ø€ Ø×ÒØ#ˆDÔÜ‰GÑ" 4Ô(Ø$ˆDÕð  rk   r…  )rk  r!   r†  r‡  )rØ  rÙ  rÚ  ri   r‚   rB  rC  s   @rh   rf  rf  ê  s   ø„ ó!÷%ñ %rk   rf  c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚYieldSeekerc                ó0   •— t         ‰| �  «        d| _        y rG  ©râ  ri   rI  rV  s    €rh   ri   zYieldSeeker.__init__ö  ó   ø€ Ü‰ÑÔØˆ�
rk   c                ó   — d| _         y rß  rH  r�   s     rh   rÚ   zYieldSeeker.visit_yield_exprú  rb  rk   r…  r�  )rØ  rÙ  rÚ  ri   rÚ   rB  rC  s   @rh   rm  rm  õ  ó   ø„ õ÷rk   rm  c                óP   — t        «       }| j                  |«       |j                  S rd   )rm  rn   rI  rM  s     rh   Úhas_yield_expressionrt  þ  ó   € Ü‹]€FØ‡K�K�ÔØ�<‰<Ðrk   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚYieldFromSeekerc                ó0   •— t         ‰| �  «        d| _        y rG  ro  rV  s    €rh   ri   zYieldFromSeeker.__init__  rp  rk   c                ó   — d| _         y rß  rH  r�   s     rh   rØ   z%YieldFromSeeker.visit_yield_from_expr	  rb  rk   r…  rœ  )rØ  rÙ  rÚ  ri   rØ   rB  rC  s   @rh   rw  rw    rr  rk   rw  c                óP   — t        «       }| j                  |«       |j                  S rd   )rw  rn   rI  rM  s     rh   Úhas_yield_from_expressionr{    s    € ÜÓ€FØ‡K�K�ÔØ�<‰<Ðrk   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚAwaitSeekerc                ó0   •— t         ‰| �  «        d| _        y rG  ro  rV  s    €rh   ri   zAwaitSeeker.__init__  rp  rk   c                ó   — d| _         y rß  rH  r�   s     rh   r-  zAwaitSeeker.visit_await_expr  rb  rk   r…  r¶  )rØ  rÙ  rÚ  ri   r-  rB  rC  s   @rh   r}  r}    rr  rk   r}  c                óP   — t        «       }| j                  |«       |j                  S rd   )r}  rn   rI  )r›   rO  s     rh   Úhas_await_expressionr�    ru  rk   c                  ó(   ‡ — e Zd Zdˆ fd„Zdd„Zˆ xZS )ÚReturnCollectorc                ó0   •— t         ‰| �  «        g | _        y rd   )râ  ri   Úreturn_statementsrV  s    €rh   ri   zReturnCollector.__init__#  s   ø€ Ü‰ÑÔØ35ˆÕrk   c                ó:   — | j                   j                  |«       y rd   )r…  rX  )rg   Ústmts     rh   r®   z!ReturnCollector.visit_return_stmt'  s   € Ø×Ñ×%Ñ% dÕ+rk   r…  )r‡  r=   r†  r‡  )rØ  rÙ  rÚ  ri   r®   rB  rC  s   @rh   rƒ  rƒ  "  s   ø„ õ6÷,rk   rƒ  c                óP   — t        «       }| j                  |«       |j                  S rd   )rƒ  rn   r…  r[  s     rh   Úall_return_statementsr‰  +  s!   € ÜÓ€AØ‡K�K�„NØ×ÑÐrk   c                  ó4   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zdd„Zˆ xZS )ÚYieldCollectorc                ó>   •— t         ‰| �  «        d| _        g | _        y rG  )râ  ri   Úin_assignmentÚyield_expressionsrV  s    €rh   ri   zYieldCollector.__init__2  s   ø€ Ü‰ÑÔØ"ˆÔØ?AˆÕrk   c                ó@   •— d| _         t        ‰| �	  |«       d| _         y rj  ©r�  râ  r¢   ©rg   r‡  rä  s     €rh   r¢   z$YieldCollector.visit_assignment_stmt7  ó    ø€ Ø!ˆÔÜ‰Ñ% dÔ+Ø"ˆÕrk   c                óR   — | j                   j                  || j                  f«       y rd   )rŽ  rX  r�  ©rg   r›   s     rh   rÚ   zYieldCollector.visit_yield_expr<  s!   € Ø×Ñ×%Ñ% t¨T×-?Ñ-?Ð&@ÕArk   r…  ©r‡  r
   r†  r‡  )r›   rU   r†  r‡  )rØ  rÙ  rÚ  ri   r¢   rÚ   rB  rC  s   @rh   r‹  r‹  1  s   ø„ õBõ
#÷
Brk   r‹  c                óP   — t        «       }| j                  |«       |j                  S rd   )r‹  rn   rŽ  r[  s     rh   Úall_yield_expressionsr—  @  s!   € ÜÓ€AØ‡K�K�„NØ×ÑÐrk   c                  ó4   ‡ — e Zd Zdˆ fd„Zdˆ fd„Zdd„Zˆ xZS )ÚYieldFromCollectorc                ó>   •— t         ‰| �  «        d| _        g | _        y rG  )râ  ri   r�  Úyield_from_expressionsrV  s    €rh   ri   zYieldFromCollector.__init__G  s   ø€ Ü‰ÑÔØ"ˆÔØHJˆÕ#rk   c                ó@   •— d| _         t        ‰| �	  |«       d| _         y rj  r�  r‘  s     €rh   r¢   z(YieldFromCollector.visit_assignment_stmtL  r’  rk   c                óR   — | j                   j                  || j                  f«       y rd   )r›  rX  r�  r”  s     rh   rØ   z(YieldFromCollector.visit_yield_from_exprQ  s!   € Ø×#Ñ#×*Ñ*¨D°$×2DÑ2DÐ+EÕFrk   r…  r•  )r›   rV   r†  r‡  )rØ  rÙ  rÚ  ri   r¢   rØ   rB  rC  s   @rh   r™  r™  F  s   ø„ õKõ
#÷
Grk   r™  )rN  r    r†  rA  )r\  r   r†  z'tuple[list[NameExpr], list[MemberExpr]])r\  r   r†  rA  )r›   r   r†  rA  )r\  r4   r†  zlist[ReturnStmt])r\  r4   r†  zlist[tuple[YieldExpr, bool]])wrÛ  Ú
__future__r   Úmypy_extensionsr   r   Ú
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#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   Úmypy.patternsrW   rX   rY   rZ   r[   r\   r]   r^   Úmypy.visitorr_   rb   rÝ  rE  rP  rR  r]  r_  rd  rf  rm  rt  rw  r{  r}  r�  rƒ  r‰  r‹  r—  r™  re   rk   rh   ú<module>r£     s�  ðÙ $å "ç -÷R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ R÷ Rõ R÷f	÷ 	ó 	õ %ð Ù¨Ô.ô\�{ 4Ñ(ó \ó /ó ð\ô~h'Ð/ô h'ôVÐ#ô óô%Ð-ô %ó*ôÐ#ô óô%Ð(ô %ôÐ#ô óôÐ'ô óôÐ"ô óô,Ð'ô ,óôBÐ&ô BóôGÐ*õ Grk   