[tahoe-lafs-trac-stream] [tahoe-lafs] #1555: add check-miscaptures.py script to check for incorrect variable captures in loops (was: add check-miscaptures.py script to check for incorrect variable captures in for loops)

tahoe-lafs trac at tahoe-lafs.org
Thu Oct 20 11:01:25 PDT 2011


#1555: add check-miscaptures.py script to check for incorrect variable captures in
loops
-------------------------+-------------------------------------------------
     Reporter:           |      Owner:  somebody
  davidsarah             |     Status:  reopened
         Type:           |  Milestone:  1.10.0
  enhancement            |    Version:  1.9.0a2
     Priority:  major    |   Keywords:  miscapture coding-tools review-
    Component:  code     |  needed
   Resolution:           |
Launchpad Bug:           |
-------------------------+-------------------------------------------------

Old description:

> The attached script checks for errors in which a variable declared in a
> {{{for}}} loop is captured by a lambda or function definition. If the
> lambda/function is executed after the loop iteration in which it was
> created, it will refer to some later value of the variable, which is
> usually not what was intended.
>
> ~~The script currently produces false positives if a variable is declared
> and used in the same lambda/function within a for loop (i.e. it is not
> captured). I don't intend to fix that until after the Tahoe summit in
> November, probably.~~ However, it produces relatively few false positives
> already, and found some genuine bugs (see #1556).

New description:

 The attached script checks for errors in which a variable
 ~~declared~~modified in a ~~{{{for}}}~~ loop is captured by a lambda or
 function definition. If the lambda/function is executed after the loop
 iteration in which it was created, it will refer to some later value of
 the variable, which is usually not what was intended.

 ~~The script currently produces false positives if a variable is declared
 and used in the same lambda/function within a for loop (i.e. it is not
 captured). I don't intend to fix that until after the Tahoe summit in
 November, probably.~~ However, it produces relatively few false positives
 already, and found some genuine bugs (see #1556).

--

Comment (by davidsarah):

 The current version also detects captures of variables declared or
 modified in list comprehensions and while loops.

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1555#comment:13>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list