o
    ØÝ2g…  ã                   @  sŠ   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„ 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                      sö   e Zd ZdZd9d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dA‡ fdd„ZdB‡ fd!d"„ZdC‡ fd$d%„ZdD‡ fd'd(„ZdE‡ fd*d+„ZdF‡ fd-d.„ZdG‡ fd0d1„ZdH‡ fd3d4„ZdId7d8„Z‡  ZS )JÚMixedTraverserVisitorz2Recursive traversal of both Node and Type objects.ÚreturnÚNonec                 C  s
   d| _ d S )NF)Úin_type_alias_expr)Úself© r   úK/home/garg/my-data/venv/lib/python3.10/site-packages/mypy/mixedtraverser.pyÚ__init__   s   
zMixedTraverserVisitor.__init__Úvarr   c                 C  s   |   |j¡ d S ©N)Úvisit_optional_typeÚtype)r   r   r   r   r   Ú	visit_var!   s   zMixedTraverserVisitor.visit_varÚor   c                   ó   t ƒ  |¡ |  |j¡ d S r   )ÚsuperÚ
visit_funcr   r    ©r   r"   ©Ú	__class__r   r   r%   $   ó   z MixedTraverserVisitor.visit_funcr   c                   s4   t ƒ  |¡ |j}|r|jD ]	}| | ¡ qd S d S r   )r$   Úvisit_class_defÚinfoÚbasesÚaccept)r   r"   r+   Úbaser'   r   r   r*   (   s   
þz%MixedTraverserVisitor.visit_class_defr   c                   s*   t ƒ  |¡ d| _|jj | ¡ d| _d S )NTF)r$   Úvisit_type_alias_exprr   ÚnodeÚtargetr-   r&   r'   r   r   r/   1   s   
z+MixedTraverserVisitor.visit_type_alias_exprr   c                   s2   t ƒ  |¡ |j | ¡ |jD ]}| | ¡ qd S r   )r$   Úvisit_type_var_exprÚupper_boundr-   Úvalues)r   r"   Úvaluer'   r   r   r2   7   s
   
ÿz)MixedTraverserVisitor.visit_type_var_exprr   c                   s   t ƒ  |¡ |  |jj¡ d S r   )r$   Úvisit_typeddict_exprr   r+   Útypeddict_typer&   r'   r   r   r6   =   s   z*MixedTraverserVisitor.visit_typeddict_exprr	   c                   s*   t ƒ  |¡ |jjsJ ‚|jj | ¡ d S r   )r$   Úvisit_namedtuple_exprr+   Ú
tuple_typer-   r&   r'   r   r   r8   A   s   z+MixedTraverserVisitor.visit_namedtuple_exprr   c                   ó   t ƒ  |¡ |j | ¡ d S r   )r$   Úvisit__promote_exprr    r-   r&   r'   r   r   r;   F   r)   z)MixedTraverserVisitor.visit__promote_exprr
   c                   r#   r   )r$   Úvisit_newtype_exprr   Úold_typer&   r'   r   r   r<   J   r)   z(MixedTraverserVisitor.visit_newtype_exprr   c                   r#   r   )r$   Úvisit_assignment_stmtr   r    r&   r'   r   r   r>   P   r)   z+MixedTraverserVisitor.visit_assignment_stmtr   c                   r#   r   )r$   Úvisit_for_stmtr   Ú
index_typer&   r'   r   r   r?   T   r)   z$MixedTraverserVisitor.visit_for_stmtr   c                   ó&   t ƒ  |¡ |jD ]}| | ¡ q	d S r   )r$   Úvisit_with_stmtÚanalyzed_typesr-   )r   r"   Útypr'   r   r   rB   X   ó   
ÿz%MixedTraverserVisitor.visit_with_stmtr   c                   r:   r   )r$   Úvisit_cast_exprr    r-   r&   r'   r   r   rF   _   r)   z%MixedTraverserVisitor.visit_cast_exprr   c                   r:   r   )r$   Úvisit_assert_type_exprr    r-   r&   r'   r   r   rG   c   r)   z,MixedTraverserVisitor.visit_assert_type_exprr   c                   rA   r   )r$   Úvisit_type_applicationÚtypesr-   )r   r"   Útr'   r   r   rH   g   rE   z,MixedTraverserVisitor.visit_type_applicationrJ   úType | Nonec                 C  s   |r	|  | ¡ d S d S r   )r-   )r   rJ   r   r   r   r   n   s   ÿz)MixedTraverserVisitor.visit_optional_type)r   r   )r   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r	   r   r   )r"   r   r   r   )r"   r
   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )r"   r   r   r   )rJ   rK   r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r!   r%   r*   r/   r2   r6   r8   r;   r<   r>   r?   rB   rF   rG   rH   r   Ú__classcell__r   r   r'   r   r      s&    

	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   r   r   Ú<module>   s    D