
    *e                        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 d dlmZ d dlmZ d dlmZ  G d dee          ZdS )	    )annotations)AssertTypeExprAssignmentStmtCastExprClassDefForStmtFuncItemNamedTupleExprNewTypeExprPromoteExprTypeAliasExprTypeApplicationTypedDictExprTypeVarExprVarWithStmt)TraverserVisitor)Type)TypeTraverserVisitorc                       e Zd Z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
d/ fdZd0 fdZd1 fdZd2 fdZd3 fdZd4 fdZd5 fd Zd6 fd"Zd7 fd$Zd8d'Z xZS )9MixedTraverserVisitorz2Recursive traversal of both Node and Type objects.returnNonec                    d| _         d S )NF)in_type_alias_expr)selfs    3lib/python3.11/site-packages/mypy/mixedtraverser.py__init__zMixedTraverserVisitor.__init__   s    "'    varr   c                :    |                      |j                   d S N)visit_optional_typetype)r   r    s     r   	visit_varzMixedTraverserVisitor.visit_var!   s      *****r   or	   c                ~    t                                          |           |                     |j                   d S r"   )super
visit_funcr#   r$   r   r&   	__class__s     r   r)   z MixedTraverserVisitor.visit_func$   s7    1  (((((r   r   c                    t                                          |           |j        }|r|j        D ]}|                    |            d S d S r"   )r(   visit_class_definfobasesaccept)r   r&   r.   baser+   s       r   r-   z%MixedTraverserVisitor.visit_class_def(   sf     	"""v 	"
 " "D!!!!	" 	"" "r   r   c                    t                                          |           d| _        |j        j                            |            d| _        d S )NTF)r(   visit_type_alias_exprr   nodetargetr0   r*   s     r   r3   z+MixedTraverserVisitor.visit_type_alias_expr1   sI    %%a((("&	T""""'r   r   c                    t                                          |           |j                            |            |j        D ]}|                    |            d S r"   )r(   visit_type_var_exprupper_boundr0   values)r   r&   valuer+   s      r   r7   z)MixedTraverserVisitor.visit_type_var_expr7   sa    ##A&&&	T"""X 	 	ELL	 	r   r   c                    t                                          |           |                     |j        j                   d S r"   )r(   visit_typeddict_exprr#   r.   typeddict_typer*   s     r   r<   z*MixedTraverserVisitor.visit_typeddict_expr=   s:    $$Q'''  !677777r   r
   c                    t                                          |           |j        j        sJ |j        j                            |            d S r"   )r(   visit_namedtuple_exprr.   
tuple_typer0   r*   s     r   r?   z+MixedTraverserVisitor.visit_namedtuple_exprA   sK    %%a(((v    	  &&&&&r   r   c                ~    t                                          |           |j                            |            d S r"   )r(   visit__promote_exprr$   r0   r*   s     r   rB   z)MixedTraverserVisitor.visit__promote_exprF   s5    ##A&&&	dr   r   c                ~    t                                          |           |                     |j                   d S r"   )r(   visit_newtype_exprr#   old_typer*   s     r   rD   z(MixedTraverserVisitor.visit_newtype_exprJ   s7    ""1%%%  ,,,,,r   r   c                ~    t                                          |           |                     |j                   d S r"   )r(   visit_assignment_stmtr#   r$   r*   s     r   rG   z+MixedTraverserVisitor.visit_assignment_stmtP   s7    %%a(((  (((((r   r   c                ~    t                                          |           |                     |j                   d S r"   )r(   visit_for_stmtr#   
index_typer*   s     r   rI   z$MixedTraverserVisitor.visit_for_stmtT   s7    q!!!  .....r   r   c                    t                                          |           |j        D ]}|                    |            d S r"   )r(   visit_with_stmtanalyzed_typesr0   )r   r&   typr+   s      r   rL   z%MixedTraverserVisitor.visit_with_stmtX   sL    """# 	 	CJJt	 	r   r   c                ~    t                                          |           |j                            |            d S r"   )r(   visit_cast_exprr$   r0   r*   s     r   rP   z%MixedTraverserVisitor.visit_cast_expr_   s5    """	dr   r   c                ~    t                                          |           |j                            |            d S r"   )r(   visit_assert_type_exprr$   r0   r*   s     r   rR   z,MixedTraverserVisitor.visit_assert_type_exprc   s5    &&q)))	dr   r   c                    t                                          |           |j        D ]}|                    |            d S r"   )r(   visit_type_applicationtypesr0   )r   r&   tr+   s      r   rT   z,MixedTraverserVisitor.visit_type_applicationg   sG    &&q))) 	 	AHHTNNNN	 	r   rV   Type | Nonec                8    |r|                     |            d S d S r"   )r0   )r   rV   s     r   r#   z)MixedTraverserVisitor.visit_optional_typen   s'     	HHTNNNNN	 	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   )rV   rW   r   r   )__name__
__module____qualname____doc__r   r%   r)   r-   r3   r7   r<   r?   rB   rD   rG   rI   rL   rP   rR   rT   r#   __classcell__)r+   s   @r   r   r      s       <<( ( ( (
+ + + +) ) ) ) ) )" " " " " "( ( ( ( ( (     8 8 8 8 8 8' ' ' ' ' '
     - - - - - -) ) ) ) ) )/ / / / / /                           r   r   N)
__future__r   
mypy.nodesr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   mypy.traverserr   
mypy.typesr   mypy.typetraverserr   r    r   r   <module>rd      s;   " " " " " "                                 " , + + + + +       3 3 3 3 3 3W W W W W,.B W W W W Wr   