
    %^gi                    N    d Z ddlmZ ddlmZmZ ddlmZ  G d de      Zd	dZ	y)
zGeneric node traverser visitor    )annotations)BlockMypyFile)TraverserVisitorc                        e Zd Zd fdZ xZS )	TreeFreerc                X    t         |   |       |j                  j                          y )N)supervisit_blockbodyclear)selfblock	__class__s     -lib/python3.12/site-packages/mypy/freetree.pyr   zTreeFreer.visit_block
   s     E"

    )r   r   returnNone)__name__
__module____qualname__r   __classcell__)r   s   @r   r   r   	   s     r   r   c                j    | j                  t                      | j                  j                          y)zFree all the ASTs associated with a module.

    This needs to be done recursively, since symbol tables contain
    references to definitions, so those won't be freed but we want their
    contents to be.
    N)acceptr   defsr   )trees    r   	free_treer      s      	KK	IIOOr   N)r   r   r   r   )
__doc__
__future__r   
mypy.nodesr   r   mypy.traverserr   r   r    r   r   <module>r#      s#    $ " & +  r   