o
    í@Ëa  ã                   @   s,   d Z ddlmZ ddlZG dd„ deƒZdS )z-
Literals lists nodes that are only literals
é    )ÚFunctionAnalysisNc                       s(   e Zd ZdZ‡ fdd„Zdd„ Z‡  ZS )ÚLiteralszP
        Store variable that save only Literals (with no construction cost)
    c                    s   t ƒ | _tt| ƒ ¡  d S )N)ÚsetÚresultÚsuperr   Ú__init__)Úself©Ú	__class__© ú;/usr/lib/python3/dist-packages/pythran/analyses/literals.pyr      s   zLiterals.__init__c                 C   s8   t |jtjtjfƒrdd„ |jD ƒ}| j |¡ d S d S )Nc                 S   s   g | ]
}t |tjƒr|‘qS r   )Ú
isinstanceÚastÚName)Ú.0Útargetr   r   r   Ú
<listcomp>   s    

ÿz)Literals.visit_Assign.<locals>.<listcomp>)r   Úvaluer   ZConstantZLambdaÚtargetsr   Úupdate)r   Znoder   r   r   r   Úvisit_Assign   s   ýzLiterals.visit_Assign)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__classcell__r   r   r	   r   r   
   s    r   )r   Zpythran.passmanagerr   Zgastr   r   r   r   r   r   Ú<module>   s    