
    i                        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 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	TypeAliasTypeAliasExprTypeAliasStmtTypeApplicationTypedDictExprTypeFormExprTypeVarExprVarWithStmt)TraverserVisitor)Type)TypeTraverserVisitorc                       e Zd ZdZd.dZd/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d8 fdZd9 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d@ fd*ZdAd-Z xZS )BMixedTraverserVisitorz2Recursive traversal of both Node and Type objects.returnNonec                    d| _         d S )NF)in_type_alias_expr)selfs    R/root/projects/qq-shell/venv/lib64/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        }|rB|j        D ]}|                    |            |j        r|j                            |            d S d S d S r%   )r+   visit_class_definfobasesacceptspecial_alias)r   r)   r1   baser.   s       r    r0   z%MixedTraverserVisitor.visit_class_def+   s     	"""v 	0
 " "D!!!!! 0"))$/////		0 	00 0r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_type_alias_exprnoder3   r-   s     r    r7   z+MixedTraverserVisitor.visit_type_alias_expr6   s5    %%a(((	dr"   r   c                   t                                          |           |j                            |            |j                            |            |j        D ]}|                    |            d S r%   )r+   visit_type_var_exprupper_boundr3   defaultvalues)r   r)   valuer.   s      r    r:   z)MixedTraverserVisitor.visit_type_var_expr:   sw    ##A&&&	T"""		X 	 	ELL	 	r"   r   c                   t                                          |           |                     |j        j                   d S r%   )r+   visit_typeddict_exprr&   r1   typeddict_typer-   s     r    r@   z*MixedTraverserVisitor.visit_typeddict_exprA   s:    $$Q'''  !677777r"   r
   c                   t                                          |           |j        j        sJ |j        j                            |            d S r%   )r+   visit_namedtuple_exprr1   
tuple_typer3   r-   s     r    rC   z+MixedTraverserVisitor.visit_namedtuple_exprE   sK    %%a(((v    	  &&&&&r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit__promote_exprr'   r3   r-   s     r    rF   z)MixedTraverserVisitor.visit__promote_exprJ   s5    ##A&&&	dr"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_newtype_exprr&   old_typer-   s     r    rH   z(MixedTraverserVisitor.visit_newtype_exprN   s7    ""1%%%  ,,,,,r"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_assignment_stmtr&   r'   r-   s     r    rK   z+MixedTraverserVisitor.visit_assignment_stmtT   s7    %%a(((  (((((r"   r   c                   t                                          |           |j        |j                            |            d S d S r%   )r+   visit_type_alias_stmt
alias_noder3   r-   s     r    rM   z+MixedTraverserVisitor.visit_type_alias_stmtX   sG    %%a(((<#L%%%%% $#r"   r   c                   t                                          |           d| _        |j                            |            d| _        d S )NTF)r+   visit_type_aliasr   targetr3   r-   s     r    rP   z&MixedTraverserVisitor.visit_type_alias]   sE      ###"&	"'r"   r   c               ~    t                                          |           |                     |j                   d S r%   )r+   visit_for_stmtr&   
index_typer-   s     r    rS   z$MixedTraverserVisitor.visit_for_stmtc   s7    q!!!  .....r"   r   c                   t                                          |           |j        D ]}|                    |            d S r%   )r+   visit_with_stmtanalyzed_typesr3   )r   r)   typr.   s      r    rV   z%MixedTraverserVisitor.visit_with_stmtg   sL    """# 	 	CJJt	 	r"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_cast_exprr'   r3   r-   s     r    rZ   z%MixedTraverserVisitor.visit_cast_exprn   s5    """	dr"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_type_form_exprr'   r3   r-   s     r    r\   z*MixedTraverserVisitor.visit_type_form_exprr   s5    $$Q'''	dr"   r   c               ~    t                                          |           |j                            |            d S r%   )r+   visit_assert_type_exprr'   r3   r-   s     r    r^   z,MixedTraverserVisitor.visit_assert_type_exprv   s5    &&q)))	dr"   r   c                   t                                          |           |j        D ]}|                    |            d S r%   )r+   visit_type_applicationtypesr3   )r   r)   tr.   s      r    r`   z,MixedTraverserVisitor.visit_type_applicationz   sG    &&q))) 	 	AHHTNNNN	 	r"   rb   Type | Nonec               8    |r|                     |            d S d S r%   )r3   )r   rb   s     r    r&   z)MixedTraverserVisitor.visit_optional_type   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   )r)   r   r   r   )r)   r   r   r   )r)   r   r   r   )rb   rc   r   r   )__name__
__module____qualname____doc__r!   r(   r,   r0   r7   r:   r@   rC   rF   rH   rK   rM   rP   rS   rV   rZ   r\   r^   r`   r&   __classcell__)r.   s   @r    r   r      s_       <<( ( ( (
+ + + +) ) ) ) ) )	0 	0 	0 	0 	0 	0          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   r   r   r   mypy.traverserr   
mypy.typesr   mypy.typetraverserr   r    r"   r    <module>rp      sY   " " " " " "                                       ( , + + + + +       3 3 3 3 3 3g g g g g,.B g g g g gr"   