3
\f � @ sn d Z ddlmZ ddlmZ ddlmZ ddlm Z m
Z
mZ dZG dd� dej
�Zd d
� Zdd� Zd
d� ZdS )z.Fixer for it.next() -> next(it), per PEP 3114.� )�token)�python_symbols)�
fixer_base)�Name�Call�find_bindingz;Calls to builtin next() possibly shadowed by global bindingc s0 e Zd ZdZdZdZ� fdd�Zdd� Z� ZS )�FixNextTa�
power< base=any+ trailer< '.' attr='next' > trailer< '(' ')' > >
|
power< head=any+ trailer< '.' attr='next' > not trailer< '(' ')' > >
|
classdef< 'class' any+ ':'
suite< any*
funcdef< 'def'
name='next'
parameters< '(' NAME ')' > any+ >
any* > >
|
global=global_stmt< 'global' any* 'next' any* >
Zprec s> t t| �j||� td|�}|r4| j|t� d| _nd| _d S )N�nextTF)�superr �
start_treer �warning�bind_warning�
shadowed_next)�selfZtree�filename�n)� __class__� �./usr/lib64/python3.6/lib2to3/fixes/fix_next.pyr $ s
zFixNext.start_treec C s |st �|jd�}|jd�}|jd�}|rz| jrF|jtd|jd�� n2dd� |D �}d|d _|jttd
|jd�|�� n�|r�td|jd�}|j|� nl|r�t|�r�|d }djdd� |D ��j � d
kr�| j
|t� d S |jtd�� nd|k�r| j
|t� d| _d S )N�base�attr�name�__next__)�prefixc S s g | ]}|j � �qS r )Zclone)�.0r r r r �