<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#330033" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 7/9/2018 8:43 PM, Guido van Rossum
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAP7+vJKGO3sVOPBzz84yJH-myB7=8LwzwakG2V=qXRrcBQRHAQ@mail.gmail.com">
      <blockquote class="gmail_quote" style="margin:0 0 0
        .8ex;border-left:1px #ccc solid;padding-left:1ex">
        <div text="#330033" bgcolor="#FFFFFF"><span class="">
            <blockquote type="cite">An exception to this special case
              applies when the target name is the<br>
              same as a loop control variable for a comprehension
              containing it.<br>
              This is invalid.  This exception exists to rule out edge
              cases of the<br>
              above scope rules as illustrated by ``[i := i+1 for i in
              range(5)]``<br>
              or ``[[(j := j) for i in range(5)] for j in range(5)]``. 
              Note that<br>
              this exception also applies to ``[i := 0 for i, j in
              stuff]``, as well<br>
              as to cases like ``[i+1 for i in i := stuff]``.</blockquote>
            <br>
            <br>
          </span> It is unclear whether exactly what is invalid. Is the
          use of the target name that is the same as (any of the nested)
          loop control variable invalid? I think, from discussions, that
          that is what is meant. But this paragraph could be interpreted
          as meaning the special case doesn't apply, meaning that the
          target name would be in a "sublocal" scope.<span class=""><br>
          </span></div>
      </blockquote>
      <div><br>
      </div>
      <div>Really? If it didn't say "this is invalid" I could see that
        "exception to the special case" might be interpreted as "the
        special case doesn't apply". But with "This is invalid"
        explicitly added I don't see how that interpretation could be
        valid. Is it clearer if I changed that to "Such code is
        invalid"? Or perhaps I should move "This is invalid" to the end
        of the paragraph?</div>
    </blockquote>
    <br>
    That's better; even better might be to say what is invalid...
    instead of used pronoun.<br>
    <br>
    "Use of any of the comprension loop control variables as a target
    name in an assignment expression is invalid."<br>
    <br>
    It isn't really an exception to the special case, it is an exception
    to the general rule than any old name can be used as an assignment
    expression target, IIUC.<br>
  </body>
</html>