diff --git a/pep-3114.txt b/pep-3114.txt index 0d9fb9058..fa632af3b 100644 --- a/pep-3114.txt +++ b/pep-3114.txt @@ -148,8 +148,6 @@ In particular, Martin von Loewis writes [2]_:: Transition Plan =============== -(This section is likely to be updated.) - Two additional transformations will be added to the 2to3 translation tool [3]_: @@ -159,13 +157,20 @@ tool [3]_: to the built-in ``next`` function. For example, ``x.next()`` will become ``next(x)``. -If the module being processed already contains a binding for the name -``next``, the second transformation will not be done; instead, calls to -``x.next()`` will be replaced with ``x.__next__()`` and a warning will -be emitted. (Collin Winter has looked into this [4]_ and found that -it's difficult to make the second transformation depend on the presence -of a module-level binding; warning about the existence of bindings to -``next`` should be possible, though.) +Collin Winter looked into the possibility of automatically deciding +whether to perform the second transformation depending on the presence +of a module-level binding to ``next`` [4]_ and found that it would be +"ugly and slow". Instead, the translation tool will emit warnings +upon detecting such a binding. Collin has proposed warnings for the +following conditions [5]_: + +* Module-level assignments to ``next``. + +* Module-level definitions of a function named ``next``. + +* Module-level imports of the name ``next``. + +* Assignments to ``__builtin__.next``. Approval @@ -189,7 +194,10 @@ References .. [4] PEP: rename it.next() to it.__next__()... (Collin Winter) http://mail.python.org/pipermail/python-3000/2007-March/006020.html -.. [5] PEP: rename it.next() to it.__next__()... (Guido van Rossum) +.. [5] PEP 3113 transition plan + http://mail.python.org/pipermail/python-3000/2007-March/006044.html + +.. [6] PEP: rename it.next() to it.__next__()... (Guido van Rossum) http://mail.python.org/pipermail/python-3000/2007-March/006027.html