o
    ÕtBhyd  ã                   @  sH  d 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#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@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZP ddlQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZY ddlZm[Z[ eddG d	d
„ d
e[d ƒƒZ\G dd„ de\ƒZ]G dd„ de\ƒZ^d.dd„Z_G dd„ de\ƒZ`G dd„ de`ƒZad.dd„ZbG dd„ de\ƒZcd/d d!„ZdG d"d#„ d#e`ƒZed0d'd(„ZfG d)d*„ d*e`ƒZgd1d,d-„ZhdS )2zGeneric node traverser visitoré    )Úannotations)Ú
mypyc_attr)KÚ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Ú	RaiseStmtÚ
ReturnStmtÚ
RevealExprÚSetComprehensionÚSetExprÚ	SliceExprÚStarExprÚStrExprÚ	SuperExprÚTryStmtÚ	TupleExprÚ	TypeAliasÚTypeAliasExprÚTypeApplicationÚTypedDictExprÚTypeVarExprÚTypeVarTupleExprÚ	UnaryExprÚ	WhileStmtÚWithStmtÚ	YieldExprÚYieldFromExpr)Ú	AsPatternÚClassPatternÚMappingPatternÚ	OrPatternÚSequencePatternÚSingletonPatternÚStarredPatternÚValuePattern)ÚNodeVisitorT)Úallow_interpreted_subclassesc                   @  sJ  e Zd ZdZd±dd„Zd²dd	„Zd³dd„Zd´dd„Zdµdd„Zd¶dd„Z	d·dd„Z
d¸dd„Zd¹dd„Zdºd!d"„Zd»d$d%„Zd¼d'd(„Zd½d*d+„Zd¾d-d.„Zd¿d0d1„ZdÀd3d4„ZdÁd6d7„ZdÂd9d:„ZdÃd<d=„ZdÄd?d@„ZdÅdBdC„ZdÆdEdF„ZdÇdHdI„ZdÈdKdL„ZdÉdNdO„ZdÊdQdR„ZdËdTdU„ZdÌdWdX„ZdÍdZd[„Z dÎd]d^„Z!dÏd`da„Z"dÐdcdd„Z#dÑdfdg„Z$dÒdidj„Z%dÓdldm„Z&dÔdodp„Z'dÕdrds„Z(dÖdudv„Z)d×dxdy„Z*dØd{d|„Z+dÙd~d„Z,dÚdd‚„Z-dÛd„d…„Z.dÜd‡dˆ„Z/dÝdŠd‹„Z0dÞddŽ„Z1dßdd‘„Z2dàd“d”„Z3dád–d—„Z4dâd™dš„Z5dãdœd„Z6dädŸd „Z7dåd¢d£„Z8dæd¥d¦„Z9dçd¨d©„Z:dèd«d¬„Z;déd®d¯„Z<d°S )êÚ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.
    ÚreturnÚNonec                 C  s   d S ©N© ©Úselfr]   r]   úe/var/www/html/riverr-enterprise-integrations-main/venv/lib/python3.10/site-packages/mypy/traverser.pyÚ__init__k   s   zTraverserVisitor.__init__Úor.   c                 C  ó   |j D ]}| | ¡ qd S r\   )ÚdefsÚaccept)r_   rb   Údr]   r]   r`   Úvisit_mypy_filep   ó   
ÿz TraverserVisitor.visit_mypy_fileÚblockr
   c                 C  rc   r\   )Úbodyre   )r_   ri   Úsr]   r]   r`   Úvisit_blockt   rh   zTraverserVisitor.visit_blockr    c                 C  sV   |j d ur#|j D ]}|j}|d ur| | ¡ q|j D ]}|  |j¡ q|j | ¡ d S r\   )Ú	argumentsÚinitializerre   Ú	visit_varÚvariablerj   )r_   rb   ÚargÚinitr]   r]   r`   Ú
visit_funcx   s   


€
zTraverserVisitor.visit_funcr   c                 C  ó   |   |¡ d S r\   ©rs   ©r_   rb   r]   r]   r`   Úvisit_func_def„   ó   zTraverserVisitor.visit_func_defr6   c                 C  s0   |j D ]}| | ¡ q|jr|j | ¡ d S d S r\   )Úitemsre   Úimpl©r_   rb   Úitemr]   r]   r`   Úvisit_overloaded_func_def‡   s
   
ÿz*TraverserVisitor.visit_overloaded_func_defr   c                 C  s~   |j D ]}| | ¡ q|jD ]}| | ¡ q|jr|j | ¡ |j ¡ D ]}| | ¡ q$|j | ¡ |jr=|j | ¡ d S d S r\   )Ú
decoratorsre   Úbase_type_exprsÚ	metaclassÚkeywordsÚvaluesrd   Úanalyzed)r_   rb   rf   ÚbaseÚvr]   r]   r`   Úvisit_class_def   s   

ÿz TraverserVisitor.visit_class_defr   c                 C  s2   |j  | ¡ |j | ¡ |jD ]}| | ¡ qd S r\   )Úfuncre   Úvarr~   )r_   rb   Ú	decoratorr]   r]   r`   Úvisit_decoratorš   s
   
ÿz TraverserVisitor.visit_decoratorr   c                 C  ó   |j  | ¡ d S r\   ©Úexprre   rv   r]   r]   r`   Úvisit_expression_stmt    ó   z&TraverserVisitor.visit_expression_stmtr   c                 C  s&   |j  | ¡ |jD ]}| | ¡ q	d S r\   )Úrvaluere   Úlvalues)r_   rb   Úlr]   r]   r`   Úvisit_assignment_stmt£   s   
ÿz&TraverserVisitor.visit_assignment_stmtr4   c                 C  ó   |j  | ¡ |j | ¡ d S r\   )r   re   Úlvaluerv   r]   r]   r`   Úvisit_operator_assignment_stmt¨   ó   z/TraverserVisitor.visit_operator_assignment_stmtrK   c                 C  ó2   |j  | ¡ |j | ¡ |jr|j | ¡ d S d S r\   ©r   re   rj   Ú	else_bodyrv   r]   r]   r`   Úvisit_while_stmt¬   ó
   ÿz!TraverserVisitor.visit_while_stmtr   c                 C  s>   |j  | ¡ |j | ¡ |j | ¡ |jr|j | ¡ d S d S r\   )Úindexre   r   rj   rš   rv   r]   r]   r`   Úvisit_for_stmt²   s   ÿzTraverserVisitor.visit_for_stmtr:   c                 C  ó   |j d ur|j  | ¡ d S d S r\   rŒ   rv   r]   r]   r`   Úvisit_return_stmt¹   ó   
ÿz"TraverserVisitor.visit_return_stmtr   c                 C  ó4   |j d ur|j  | ¡ |jd ur|j | ¡ d S d S r\   )r   re   Úmsgrv   r]   r]   r`   Úvisit_assert_stmt½   ó
   

ÿz"TraverserVisitor.visit_assert_stmtr   c                 C  rŸ   r\   rŒ   rv   r]   r]   r`   Úvisit_del_stmtÃ   r¡   zTraverserVisitor.visit_del_stmtr#   c                 C  sF   |j D ]}| | ¡ q|jD ]}| | ¡ q|jr!|j | ¡ d S d S r\   r™   )r_   rb   ÚeÚbr]   r]   r`   Úvisit_if_stmtÇ   s   

ÿzTraverserVisitor.visit_if_stmtr9   c                 C  r¢   r\   )r   re   Ú	from_exprrv   r]   r]   r`   Úvisit_raise_stmtÏ   r¥   z!TraverserVisitor.visit_raise_stmtrB   c                 C  sž   |j  | ¡ tt|jƒƒD ]}|j| }|d ur| | ¡ |j|  | ¡ q|jD ]}|d ur4| | ¡ q)|jd ur@|j | ¡ |jd urM|j | ¡ d S d S r\   )	rj   re   ÚrangeÚlenÚtypesÚhandlersÚvarsrš   Úfinally_body)r_   rb   ÚiÚtpr…   r]   r]   r`   Úvisit_try_stmtÕ   s   



€

ÿzTraverserVisitor.visit_try_stmtrL   c                 C  sP   t t|jƒƒD ]}|j|  | ¡ |j| }|d ur| | ¡ q|j | ¡ d S r\   )r¬   r­   r   re   Útargetrj   )r_   rb   r²   Útargr]   r]   r`   Úvisit_with_stmtä   s   

€z TraverserVisitor.visit_with_stmtr,   c                 C  s`   |j  | ¡ tt|jƒƒD ] }|j|  | ¡ |j| }|d ur%| | ¡ |j|  | ¡ qd S r\   )Úsubjectre   r¬   r­   ÚpatternsÚguardsÚbodies)r_   rb   r²   Úguardr]   r]   r`   Úvisit_match_stmtì   s   

ûz!TraverserVisitor.visit_match_stmtr-   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_member_exprõ   r   z"TraverserVisitor.visit_member_exprrN   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_yield_from_exprø   r   z&TraverserVisitor.visit_yield_from_exprrM   c                 C  s   |j r|j  | ¡ d S d S r\   rŒ   rv   r]   r]   r`   Úvisit_yield_exprû   s   ÿz!TraverserVisitor.visit_yield_exprr   c                 C  s<   |j D ]}| | ¡ q|j | ¡ |jr|j | ¡ d S d S r\   )Úargsre   Úcalleerƒ   ©r_   rb   Úar]   r]   r`   Úvisit_call_exprÿ   s   
ÿz TraverserVisitor.visit_call_exprr5   c                 C  r”   r\   )Úleftre   Úrightrv   r]   r]   r`   Úvisit_op_expr  r—   zTraverserVisitor.visit_op_exprr   c                 C  rc   r\   )Úoperandsre   )r_   rb   Úoperandr]   r]   r`   Úvisit_comparison_expr
  rh   z&TraverserVisitor.visit_comparison_exprr>   c                 C  sJ   |j d ur|j  | ¡ |jd ur|j | ¡ |jd ur#|j | ¡ d S d S r\   )Úbegin_indexre   Ú	end_indexÚstriderv   r]   r]   r`   Úvisit_slice_expr  ó   


ÿz!TraverserVisitor.visit_slice_exprr   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_cast_expr  r   z TraverserVisitor.visit_cast_exprr   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_assert_type_expr  r   z'TraverserVisitor.visit_assert_type_exprr;   c                 C  s.   |j tkr|jd usJ ‚|j | ¡ d S 	 d S r\   )Úkindr   r   re   rv   r]   r]   r`   Úvisit_reveal_expr  s   
z"TraverserVisitor.visit_reveal_exprr   c                 C  r”   r\   )rµ   re   Úvaluerv   r]   r]   r`   Úvisit_assignment_expr$  r—   z&TraverserVisitor.visit_assignment_exprrJ   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_unary_expr(  r   z!TraverserVisitor.visit_unary_exprr+   c                 C  rc   r\   ©ry   re   r{   r]   r]   r`   Úvisit_list_expr+  rh   z TraverserVisitor.visit_list_exprrC   c                 C  rc   r\   rØ   r{   r]   r]   r`   Úvisit_tuple_expr/  rh   z!TraverserVisitor.visit_tuple_exprr   c                 C  s0   |j D ]\}}|d ur| | ¡ | | ¡ qd S r\   rØ   )r_   rb   Úkr…   r]   r]   r`   Úvisit_dict_expr3  s
   
ýz TraverserVisitor.visit_dict_exprr=   c                 C  rc   r\   rØ   r{   r]   r]   r`   Úvisit_set_expr9  rh   zTraverserVisitor.visit_set_exprr'   c                 C  r˜   r\   )r„   re   r   rƒ   rv   r]   r]   r`   Úvisit_index_expr=  rœ   z!TraverserVisitor.visit_index_exprr!   c                 C  sV   t |j|j|jƒD ]\}}}| | ¡ | | ¡ |D ]}| | ¡ qq	|j | ¡ d S r\   )ÚzipÚindicesÚ	sequencesÚ	condlistsre   Ú	left_expr©r_   rb   r   ÚsequenceÚ
conditionsÚcondr]   r]   r`   Úvisit_generator_exprC  s   

ÿz%TraverserVisitor.visit_generator_exprr   c                 C  sb   t |j|j|jƒD ]\}}}| | ¡ | | ¡ |D ]}| | ¡ qq	|j | ¡ |j | ¡ d S r\   )rß   rà   rá   râ   re   ÚkeyrÕ   rä   r]   r]   r`   Úvisit_dictionary_comprehensionK  s   

ÿz/TraverserVisitor.visit_dictionary_comprehensionr*   c                 C  r‹   r\   ©Ú	generatorre   rv   r]   r]   r`   Úvisit_list_comprehensionT  r   z)TraverserVisitor.visit_list_comprehensionr<   c                 C  r‹   r\   rë   rv   r]   r]   r`   Úvisit_set_comprehensionW  r   z(TraverserVisitor.visit_set_comprehensionr   c                 C  s(   |j  | ¡ |j | ¡ |j | ¡ d S r\   )rç   re   Úif_exprÚ	else_exprrv   r]   r]   r`   Úvisit_conditional_exprZ  s   z'TraverserVisitor.visit_conditional_exprrF   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_type_application_  r   z'TraverserVisitor.visit_type_applicationr)   c                 C  rt   r\   ru   rv   r]   r]   r`   Úvisit_lambda_exprb  rx   z"TraverserVisitor.visit_lambda_exprr?   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_star_expre  r   z TraverserVisitor.visit_star_exprr	   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_await_exprh  r   z!TraverserVisitor.visit_await_exprrA   c                 C  r‹   r\   )Úcallre   rv   r]   r]   r`   Úvisit_super_exprk  r   z!TraverserVisitor.visit_super_exprrO   c                 C  r¢   r\   )Úpatternre   Únamerv   r]   r]   r`   Úvisit_as_patternn  r¥   z!TraverserVisitor.visit_as_patternrR   c                 C  rc   r\   ©r¹   re   ©r_   rb   Úpr]   r]   r`   Úvisit_or_patternt  rh   z!TraverserVisitor.visit_or_patternrV   c                 C  r‹   r\   rŒ   rv   r]   r]   r`   Úvisit_value_patternx  r   z$TraverserVisitor.visit_value_patternrS   c                 C  rc   r\   rû   rü   r]   r]   r`   Úvisit_sequence_pattern{  rh   z'TraverserVisitor.visit_sequence_patternrU   c                 C  rŸ   r\   )Úcapturere   rv   r]   r]   r`   Úvisit_starred_pattern  r¡   z&TraverserVisitor.visit_starred_patternrQ   c                 C  sJ   |j D ]}| | ¡ q|jD ]}| | ¡ q|jd ur#|j | ¡ d S d S r\   )Úkeysre   r‚   Úrest)r_   rb   ré   rÕ   r]   r]   r`   Úvisit_mapping_patternƒ  rÐ   z&TraverserVisitor.visit_mapping_patternrP   c                 C  s<   |j  | ¡ |jD ]}| | ¡ q	|jD ]}| | ¡ qd S r\   )Ú	class_refre   ÚpositionalsÚkeyword_values)r_   rb   rý   r…   r]   r]   r`   Úvisit_class_pattern‹  s   

ÿz$TraverserVisitor.visit_class_patternr$   c                 C  rc   r\   ©Úassignmentsre   rÃ   r]   r]   r`   Úvisit_import’  rh   zTraverserVisitor.visit_importr&   c                 C  rc   r\   r
  rÃ   r]   r]   r`   Úvisit_import_from–  rh   z"TraverserVisitor.visit_import_fromN©rZ   r[   ©rb   r.   rZ   r[   ©ri   r
   rZ   r[   )rb   r    rZ   r[   ©rb   r   rZ   r[   ©rb   r6   rZ   r[   ©rb   r   rZ   r[   ©rb   r   rZ   r[   ©rb   r   rZ   r[   ©rb   r   rZ   r[   ©rb   r4   rZ   r[   ©rb   rK   rZ   r[   ©rb   r   rZ   r[   ©rb   r:   rZ   r[   ©rb   r   rZ   r[   ©rb   r   rZ   r[   ©rb   r#   rZ   r[   ©rb   r9   rZ   r[   ©rb   rB   rZ   r[   ©rb   rL   rZ   r[   ©rb   r,   rZ   r[   ©rb   r-   rZ   r[   ©rb   rN   rZ   r[   ©rb   rM   rZ   r[   ©rb   r   rZ   r[   ©rb   r5   rZ   r[   ©rb   r   rZ   r[   ©rb   r>   rZ   r[   ©rb   r   rZ   r[   ©rb   r   rZ   r[   ©rb   r;   rZ   r[   ©rb   r   rZ   r[   ©rb   rJ   rZ   r[   ©rb   r+   rZ   r[   ©rb   rC   rZ   r[   ©rb   r   rZ   r[   ©rb   r=   rZ   r[   ©rb   r'   rZ   r[   ©rb   r!   rZ   r[   ©rb   r   rZ   r[   ©rb   r*   rZ   r[   ©rb   r<   rZ   r[   ©rb   r   rZ   r[   ©rb   rF   rZ   r[   ©rb   r)   rZ   r[   ©rb   r?   rZ   r[   ©rb   r	   rZ   r[   ©rb   rA   rZ   r[   ©rb   rO   rZ   r[   ©rb   rR   rZ   r[   ©rb   rV   rZ   r[   ©rb   rS   rZ   r[   ©rb   rU   rZ   r[   ©rb   rQ   rZ   r[   ©rb   rP   rZ   r[   ©rb   r$   rZ   r[   ©rb   r&   rZ   r[   )=Ú__name__Ú
__module__Ú__qualname__Ú__doc__ra   rg   rl   rs   rw   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`   rY   a   sv    





















	


















	














rY   Nc                      sè  e Zd ZdZdôdd„Zdõ‡ fd
d„Zdö‡ fdd„Zd÷‡ fdd„Zdø‡ fdd„Zdù‡ fdd„Z	dú‡ fdd„Z
dû‡ fdd„Zdü‡ fdd „Zdý‡ fd"d#„Zdþ‡ fd%d&„Zdÿ‡ fd(d)„Zd ‡ fd,d-„Zd‡ fd/d0„Zd‡ fd2d3„Zd‡ fd5d6„Zd‡ fd8d9„Zd‡ fd;d<„Zd‡ fd>d?„Zd‡ fdAdB„Zd‡ fdDdE„Zd	‡ fdGdH„Zd
‡ fdJdK„Zd‡ fdMdN„Zd‡ fdPdQ„Zd‡ fdSdT„Zd‡ fdVdW„Zd‡ fdYdZ„Zd‡ fd\d]„Z d‡ fd_d`„Z!d‡ fdbdc„Z"d‡ fdedf„Z#d‡ fdhdi„Z$d‡ fdkdl„Z%d‡ fdndo„Z&d‡ fdqdr„Z'd‡ fdtdu„Z(d‡ fdwdx„Z)d‡ fdzd{„Z*d‡ fd}d~„Z+d‡ fd€d„Z,d‡ fdƒd„„Z-d‡ fd†d‡„Z.d‡ fd‰dŠ„Z/d ‡ fdŒd„Z0d!‡ fdd„Z1d"‡ fd’d“„Z2d#‡ fd•d–„Z3d$‡ fd˜d™„Z4d%‡ fd›dœ„Z5d&‡ fdždŸ„Z6d'‡ fd¡d¢„Z7d(‡ fd¤d¥„Z8d)‡ fd§d¨„Z9d*‡ fdªd«„Z:d+‡ fd­d®„Z;d,‡ fd°d±„Z<d-‡ fd³d´„Z=d.‡ fd¶d·„Z>d/‡ fd¹dº„Z?d0‡ fd¼d½„Z@d1‡ fd¿dÀ„ZAd2‡ fdÂdÃ„ZBd3‡ fdÅdÆ„ZCd4‡ fdÈdÉ„ZDd5‡ fdËdÌ„ZEd6‡ fdÎdÏ„ZFd7‡ fdÑdÒ„ZGd8‡ fdÔdÕ„ZHd9‡ fd×dØ„ZId:‡ fdÚdÛ„ZJd;‡ fdÝdÞ„ZKd<‡ fdàdá„ZLd=‡ fdãdä„ZMd>‡ fdædç„ZNd?‡ fdédê„ZOd@‡ fdìdí„ZPdA‡ fdïdð„ZQdB‡ fdòdó„ZR‡  ZSS (C  Ú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 to skip recursing into a node

    Note that this traverser still doesn't visit some internal
    mypy constructs like _promote expression and Var.
    rb   r2   rZ   Úboolc                 C  s   dS ©NTr]   rv   r]   r]   r`   Úvisit§  s   zExtendedTraverserVisitor.visitr.   r[   c                   ó   |   |¡sd S tƒ  |¡ d S r\   )rM  Úsuperrg   rv   ©Ú	__class__r]   r`   rg   «  ó   
z(ExtendedTraverserVisitor.visit_mypy_filer$   c                   rN  r\   )rM  rO  r  rv   rP  r]   r`   r  ²  rR  z%ExtendedTraverserVisitor.visit_importr&   c                   rN  r\   )rM  rO  r  rv   rP  r]   r`   r  ·  rR  z*ExtendedTraverserVisitor.visit_import_fromr%   c                   rN  r\   )rM  rO  Úvisit_import_allrv   rP  r]   r`   rS  ¼  rR  z)ExtendedTraverserVisitor.visit_import_allr   c                   rN  r\   )rM  rO  rw   rv   rP  r]   r`   rw   Ã  rR  z'ExtendedTraverserVisitor.visit_func_defr6   c                   rN  r\   )rM  rO  r}   rv   rP  r]   r`   r}   È  rR  z2ExtendedTraverserVisitor.visit_overloaded_func_defr   c                   rN  r\   )rM  rO  r†   rv   rP  r]   r`   r†   Í  rR  z(ExtendedTraverserVisitor.visit_class_defr"   c                   rN  r\   )rM  rO  Úvisit_global_declrv   rP  r]   r`   rT  Ò  rR  z*ExtendedTraverserVisitor.visit_global_declr3   c                   rN  r\   )rM  rO  Úvisit_nonlocal_declrv   rP  r]   r`   rU  ×  rR  z,ExtendedTraverserVisitor.visit_nonlocal_declr   c                   rN  r\   )rM  rO  rŠ   rv   rP  r]   r`   rŠ   Ü  rR  z(ExtendedTraverserVisitor.visit_decoratorrD   c                   rN  r\   )rM  rO  Úvisit_type_aliasrv   rP  r]   r`   rV  á  rR  z)ExtendedTraverserVisitor.visit_type_aliasri   r
   c                   rN  r\   )rM  rO  rl   )r_   ri   rP  r]   r`   rl   è  rR  z$ExtendedTraverserVisitor.visit_blockr   c                   rN  r\   )rM  rO  rŽ   rv   rP  r]   r`   rŽ   í  rR  z.ExtendedTraverserVisitor.visit_expression_stmtr   c                   rN  r\   )rM  rO  r“   rv   rP  r]   r`   r“   ò  rR  z.ExtendedTraverserVisitor.visit_assignment_stmtr4   c                   rN  r\   )rM  rO  r–   rv   rP  r]   r`   r–   ÷  rR  z7ExtendedTraverserVisitor.visit_operator_assignment_stmtrK   c                   rN  r\   )rM  rO  r›   rv   rP  r]   r`   r›   ü  rR  z)ExtendedTraverserVisitor.visit_while_stmtr   c                   rN  r\   )rM  rO  rž   rv   rP  r]   r`   rž     rR  z'ExtendedTraverserVisitor.visit_for_stmtr:   c                   rN  r\   )rM  rO  r    rv   rP  r]   r`   r      rR  z*ExtendedTraverserVisitor.visit_return_stmtr   c                   rN  r\   )rM  rO  r¤   rv   rP  r]   r`   r¤     rR  z*ExtendedTraverserVisitor.visit_assert_stmtr   c                   rN  r\   )rM  rO  r¦   rv   rP  r]   r`   r¦     rR  z'ExtendedTraverserVisitor.visit_del_stmtr#   c                   rN  r\   )rM  rO  r©   rv   rP  r]   r`   r©     rR  z&ExtendedTraverserVisitor.visit_if_stmtr   c                   rN  r\   )rM  rO  Úvisit_break_stmtrv   rP  r]   r`   rW    rR  z)ExtendedTraverserVisitor.visit_break_stmtr   c                   rN  r\   )rM  rO  Úvisit_continue_stmtrv   rP  r]   r`   rX    rR  z,ExtendedTraverserVisitor.visit_continue_stmtr8   c                   rN  r\   )rM  rO  Úvisit_pass_stmtrv   rP  r]   r`   rY  $  rR  z(ExtendedTraverserVisitor.visit_pass_stmtr9   c                   rN  r\   )rM  rO  r«   rv   rP  r]   r`   r«   )  rR  z)ExtendedTraverserVisitor.visit_raise_stmtrB   c                   rN  r\   )rM  rO  r´   rv   rP  r]   r`   r´   .  rR  z'ExtendedTraverserVisitor.visit_try_stmtrL   c                   rN  r\   )rM  rO  r·   rv   rP  r]   r`   r·   3  rR  z(ExtendedTraverserVisitor.visit_with_stmtr,   c                   rN  r\   )rM  rO  r½   rv   rP  r]   r`   r½   8  rR  z)ExtendedTraverserVisitor.visit_match_stmtr(   c                   rN  r\   )rM  rO  Úvisit_int_exprrv   rP  r]   r`   rZ  ?  rR  z'ExtendedTraverserVisitor.visit_int_exprr@   c                   rN  r\   )rM  rO  Úvisit_str_exprrv   rP  r]   r`   r[  D  rR  z'ExtendedTraverserVisitor.visit_str_exprr   c                   rN  r\   )rM  rO  Úvisit_bytes_exprrv   rP  r]   r`   r\  I  rR  z)ExtendedTraverserVisitor.visit_bytes_exprr   c                   rN  r\   )rM  rO  Úvisit_float_exprrv   rP  r]   r`   r]  N  rR  z)ExtendedTraverserVisitor.visit_float_exprr   c                   rN  r\   )rM  rO  Úvisit_complex_exprrv   rP  r]   r`   r^  S  rR  z+ExtendedTraverserVisitor.visit_complex_exprr   c                   rN  r\   )rM  rO  Úvisit_ellipsisrv   rP  r]   r`   r_  X  rR  z'ExtendedTraverserVisitor.visit_ellipsisr?   c                   rN  r\   )rM  rO  rô   rv   rP  r]   r`   rô   ]  rR  z(ExtendedTraverserVisitor.visit_star_exprr0   c                   rN  r\   )rM  rO  Úvisit_name_exprrv   rP  r]   r`   r`  b  rR  z(ExtendedTraverserVisitor.visit_name_exprr-   c                   rN  r\   )rM  rO  r¾   rv   rP  r]   r`   r¾   g  rR  z*ExtendedTraverserVisitor.visit_member_exprrN   c                   rN  r\   )rM  rO  r¿   rv   rP  r]   r`   r¿   l  rR  z.ExtendedTraverserVisitor.visit_yield_from_exprrM   c                   rN  r\   )rM  rO  rÀ   rv   rP  r]   r`   rÀ   q  rR  z)ExtendedTraverserVisitor.visit_yield_exprr   c                   rN  r\   )rM  rO  rÅ   rv   rP  r]   r`   rÅ   v  rR  z(ExtendedTraverserVisitor.visit_call_exprr5   c                   rN  r\   )rM  rO  rÈ   rv   rP  r]   r`   rÈ   {  rR  z&ExtendedTraverserVisitor.visit_op_exprr   c                   rN  r\   )rM  rO  rË   rv   rP  r]   r`   rË   €  rR  z.ExtendedTraverserVisitor.visit_comparison_exprr   c                   rN  r\   )rM  rO  rÑ   rv   rP  r]   r`   rÑ   …  rR  z(ExtendedTraverserVisitor.visit_cast_exprr   c                   rN  r\   )rM  rO  rÒ   rv   rP  r]   r`   rÒ   Š  rR  z/ExtendedTraverserVisitor.visit_assert_type_exprr;   c                   rN  r\   )rM  rO  rÔ   rv   rP  r]   r`   rÔ     rR  z*ExtendedTraverserVisitor.visit_reveal_exprrA   c                   rN  r\   )rM  rO  r÷   rv   rP  r]   r`   r÷   ”  rR  z)ExtendedTraverserVisitor.visit_super_exprr   c                   rN  r\   )rM  rO  rÖ   rv   rP  r]   r`   rÖ   ™  rR  z.ExtendedTraverserVisitor.visit_assignment_exprrJ   c                   rN  r\   )rM  rO  r×   rv   rP  r]   r`   r×   ž  rR  z)ExtendedTraverserVisitor.visit_unary_exprr+   c                   rN  r\   )rM  rO  rÙ   rv   rP  r]   r`   rÙ   £  rR  z(ExtendedTraverserVisitor.visit_list_exprr   c                   rN  r\   )rM  rO  rÜ   rv   rP  r]   r`   rÜ   ¨  rR  z(ExtendedTraverserVisitor.visit_dict_exprrC   c                   rN  r\   )rM  rO  rÚ   rv   rP  r]   r`   rÚ   ­  rR  z)ExtendedTraverserVisitor.visit_tuple_exprr=   c                   rN  r\   )rM  rO  rÝ   rv   rP  r]   r`   rÝ   ²  rR  z'ExtendedTraverserVisitor.visit_set_exprr'   c                   rN  r\   )rM  rO  rÞ   rv   rP  r]   r`   rÞ   ·  rR  z)ExtendedTraverserVisitor.visit_index_exprrF   c                   rN  r\   )rM  rO  rò   rv   rP  r]   r`   rò   ¼  rR  z/ExtendedTraverserVisitor.visit_type_applicationr)   c                   rN  r\   )rM  rO  ró   rv   rP  r]   r`   ró   Á  rR  z*ExtendedTraverserVisitor.visit_lambda_exprr*   c                   rN  r\   )rM  rO  rí   rv   rP  r]   r`   rí   Æ  rR  z1ExtendedTraverserVisitor.visit_list_comprehensionr<   c                   rN  r\   )rM  rO  rî   rv   rP  r]   r`   rî   Ë  rR  z0ExtendedTraverserVisitor.visit_set_comprehensionr   c                   rN  r\   )rM  rO  rê   rv   rP  r]   r`   rê   Ð  rR  z7ExtendedTraverserVisitor.visit_dictionary_comprehensionr!   c                   rN  r\   )rM  rO  rè   rv   rP  r]   r`   rè   Õ  rR  z-ExtendedTraverserVisitor.visit_generator_exprr>   c                   rN  r\   )rM  rO  rÏ   rv   rP  r]   r`   rÏ   Ú  rR  z)ExtendedTraverserVisitor.visit_slice_exprr   c                   rN  r\   )rM  rO  rñ   rv   rP  r]   r`   rñ   ß  rR  z/ExtendedTraverserVisitor.visit_conditional_exprrH   c                   rN  r\   )rM  rO  Úvisit_type_var_exprrv   rP  r]   r`   ra  ä  rR  z,ExtendedTraverserVisitor.visit_type_var_exprr7   c                   rN  r\   )rM  rO  Úvisit_paramspec_exprrv   rP  r]   r`   rb  é  rR  z-ExtendedTraverserVisitor.visit_paramspec_exprrI   c                   rN  r\   )rM  rO  Úvisit_type_var_tuple_exprrv   rP  r]   r`   rc  î  rR  z2ExtendedTraverserVisitor.visit_type_var_tuple_exprrE   c                   rN  r\   )rM  rO  Úvisit_type_alias_exprrv   rP  r]   r`   rd  ó  rR  z.ExtendedTraverserVisitor.visit_type_alias_exprr/   c                   rN  r\   )rM  rO  Úvisit_namedtuple_exprrv   rP  r]   r`   re  ø  rR  z.ExtendedTraverserVisitor.visit_namedtuple_exprr   c                   rN  r\   )rM  rO  Úvisit_enum_call_exprrv   rP  r]   r`   rf  ý  rR  z-ExtendedTraverserVisitor.visit_enum_call_exprrG   c                   rN  r\   )rM  rO  Úvisit_typeddict_exprrv   rP  r]   r`   rg    rR  z-ExtendedTraverserVisitor.visit_typeddict_exprr1   c                   rN  r\   )rM  rO  Úvisit_newtype_exprrv   rP  r]   r`   rh    rR  z+ExtendedTraverserVisitor.visit_newtype_exprr	   c                   rN  r\   )rM  rO  rõ   rv   rP  r]   r`   rõ     rR  z)ExtendedTraverserVisitor.visit_await_exprrO   c                   rN  r\   )rM  rO  rú   rv   rP  r]   r`   rú     rR  z)ExtendedTraverserVisitor.visit_as_patternrR   c                   rN  r\   )rM  rO  rþ   rv   rP  r]   r`   rþ     rR  z)ExtendedTraverserVisitor.visit_or_patternrV   c                   rN  r\   )rM  rO  rÿ   rv   rP  r]   r`   rÿ     rR  z,ExtendedTraverserVisitor.visit_value_patternrT   c                   rN  r\   )rM  rO  Úvisit_singleton_patternrv   rP  r]   r`   ri  "  rR  z0ExtendedTraverserVisitor.visit_singleton_patternrS   c                   rN  r\   )rM  rO  r   rv   rP  r]   r`   r   '  rR  z/ExtendedTraverserVisitor.visit_sequence_patternrU   c                   rN  r\   )rM  rO  r  rv   rP  r]   r`   r  ,  rR  z.ExtendedTraverserVisitor.visit_starred_patternrQ   c                   rN  r\   )rM  rO  r  rv   rP  r]   r`   r  1  rR  z.ExtendedTraverserVisitor.visit_mapping_patternrP   c                   rN  r\   )rM  rO  r	  rv   rP  r]   r`   r	  6  rR  z,ExtendedTraverserVisitor.visit_class_pattern)rb   r2   rZ   rK  r  rD  rE  )rb   r%   rZ   r[   r  r  r  )rb   r"   rZ   r[   )rb   r3   rZ   r[   r  )rb   rD   rZ   r[   r  r  r  r  r  r  r  r  r  r  )rb   r   rZ   r[   )rb   r   rZ   r[   )rb   r8   rZ   r[   r  r  r   r!  )rb   r(   rZ   r[   )rb   r@   rZ   r[   )rb   r   rZ   r[   )rb   r   rZ   r[   )rb   r   rZ   r[   )rb   r   rZ   r[   r:  )rb   r0   rZ   r[   r"  r#  r$  r%  r&  r'  r)  r*  r+  r<  r,  r-  r.  r0  r/  r1  r2  r8  r9  r5  r6  r4  r3  r(  r7  )rb   rH   rZ   r[   )rb   r7   rZ   r[   )rb   rI   rZ   r[   )rb   rE   rZ   r[   )rb   r/   rZ   r[   )rb   r   rZ   r[   )rb   rG   rZ   r[   )rb   r1   rZ   r[   r;  r=  r>  r?  )rb   rT   rZ   r[   r@  rA  rB  rC  )TrF  rG  rH  rI  rM  rg   r  r  rS  rw   r}   r†   rT  rU  rŠ   rV  rl   rŽ   r“   r–   r›   rž   r    r¤   r¦   r©   rW  rX  rY  r«   r´   r·   r½   rZ  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ñ   ra  rb  rc  rd  re  rf  rg  rh  rõ   rú   rþ   rÿ   ri  r   r  r  r	  Ú__classcell__r]   r]   rP  r`   rJ  ›  s¢    
rJ  c                   @  s    e Zd Zd
dd„Zddd„Zd	S )ÚReturnSeekerrZ   r[   c                 C  ó
   d| _ d S ©NF©Úfoundr^   r]   r]   r`   ra   =  ó   
zReturnSeeker.__init__rb   r:   c                 C  s0   |j d u st|j tƒr|j jdkrd S d| _d S )Nr[   T)r   Ú
isinstancer0   rù   ro  rv   r]   r]   r`   r    @  s   "
zReturnSeeker.visit_return_stmtNr  r  )rF  rG  rH  ra   r    r]   r]   r]   r`   rk  <  s    
rk  Úfdefr   rZ   rK  c                 C  ó   t ƒ }|  |¡ |jS )znFind if a function has a non-trivial return statement.

    Plain 'return' and 'return None' don't count.
    )rk  re   ro  ©rr  Úseekerr]   r]   r`   Úhas_return_statementF  s   
rv  c                      s(   e Zd Zd	dd„Zd
‡ fdd„Z‡  ZS )ÚFuncCollectorBaserZ   r[   c                 C  rl  rm  )Úinside_funcr^   r]   r]   r`   ra   Q  rp  zFuncCollectorBase.__init__Údefnr   c                   s&   | j sd| _ tƒ  |¡ d| _ d S d S ©NTF)rx  rO  rw   )r_   ry  rP  r]   r`   rw   T  s
   
ýz FuncCollectorBase.visit_func_defr  )ry  r   rZ   r[   )rF  rG  rH  ra   rw   rj  r]   r]   rP  r`   rw  P  s    
rw  c                      ó(   e Zd Zd	‡ fdd„Zd
dd„Z‡  ZS )ÚYieldSeekerrZ   r[   c                   ó   t ƒ  ¡  d| _d S rm  ©rO  ra   ro  r^   rP  r]   r`   ra   \  ó   

zYieldSeeker.__init__rb   rM   c                 C  rl  rL  rn  rv   r]   r]   r`   rÀ   `  rp  zYieldSeeker.visit_yield_exprr  r$  )rF  rG  rH  ra   rÀ   rj  r]   r]   rP  r`   r|  [  ó    r|  c                 C  rs  r\   )r|  re   ro  rt  r]   r]   r`   Úhas_yield_expressiond  ó   
r  c                      r{  )ÚAwaitSeekerrZ   r[   c                   r}  rm  r~  r^   rP  r]   r`   ra   k  r  zAwaitSeeker.__init__rb   r	   c                 C  rl  rL  rn  rv   r]   r]   r`   rõ   o  rp  zAwaitSeeker.visit_await_exprr  r;  )rF  rG  rH  ra   rõ   rj  r]   r]   rP  r`   rƒ  j  r€  rƒ  r   r   c                 C  rs  r\   )rƒ  re   ro  )r   ru  r]   r]   r`   Úhas_await_expressions  r‚  r„  c                      r{  )ÚReturnCollectorrZ   r[   c                   s   t ƒ  ¡  g | _d S r\   )rO  ra   Úreturn_statementsr^   rP  r]   r`   ra   z  r  zReturnCollector.__init__Ústmtr:   c                 C  s   | j  |¡ d S r\   )r†  Úappend©r_   r‡  r]   r]   r`   r    ~  r   z!ReturnCollector.visit_return_stmtr  )r‡  r:   rZ   r[   )rF  rG  rH  ra   r    rj  r]   r]   rP  r`   r…  y  r€  r…  Únoder2   úlist[ReturnStmt]c                 C  rs  r\   )r…  re   r†  ©rŠ  r…   r]   r]   r`   Úall_return_statements‚  r‚  r  c                      s6   e Zd Zd‡ fdd„Zd‡ fdd„Zddd„Z‡  ZS )ÚYieldCollectorrZ   r[   c                   s   t ƒ  ¡  d| _g | _d S rm  )rO  ra   Úin_assignmentÚyield_expressionsr^   rP  r]   r`   ra   ‰  s   

zYieldCollector.__init__r‡  r   c                   s   d| _ tƒ  |¡ d| _ d S rz  )r  rO  r“   r‰  rP  r]   r`   r“   Ž  s   
z$YieldCollector.visit_assignment_stmtr   rM   c                 C  s   | j  || jf¡ d S r\   )r  rˆ  r  )r_   r   r]   r]   r`   rÀ   “  s   zYieldCollector.visit_yield_exprr  )r‡  r   rZ   r[   )r   rM   rZ   r[   )rF  rG  rH  ra   r“   rÀ   rj  r]   r]   rP  r`   rŽ  ˆ  s    rŽ  úlist[tuple[YieldExpr, bool]]c                 C  rs  r\   )rŽ  re   r  rŒ  r]   r]   r`   Úall_yield_expressions—  r‚  r’  )rr  r   rZ   rK  )r   r   rZ   rK  )rŠ  r2   rZ   r‹  )rŠ  r2   rZ   r‘  )irI  Ú
__future__r   Úmypy_extensionsr   Ú
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-   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   Úmypy.patternsrO   rP   rQ   rR   rS   rT   rU   rV   Úmypy.visitorrW   rY   rJ  rk  rv  rw  r|  r  rƒ  r„  r…  r  rŽ  r’  r]   r]   r]   r`   Ú<module>   s4    þ6 (M
  ;   $



	
	
	