Python binds list comprehension variables to the local scope which has
caused some subtle bugs. Is it possible to add a warning for this in
pyflakes? I haven't implemented it yet, but here are the example
tests:

def test_listCompVariableUsedOutsideListComp(self):
    """
    Test that a variable defined in a list comprehension is not used
    outside of the list comprehension.
    """
    self.flakes('''
    [x for x in range(3)]
    print x
    ''', m.VariableUsedOutsideListComp)
    self.flakes('''
    [x for x in range(3)]
    [x for _ in range(3)]
    ''', m.VariableUsedOutsideListComp)


def test_listCompVariableAllowReuse(self):
    """
    Test that list comprehension variables are allowed to be reused if
    redefined.
    """
    self.flakes('''
    [x for x in range(3)]
    [x for x in range(3)]''')


- William

_______________________________________________
code-quality mailing list
code-quality@python.org
https://mail.python.org/mailman/listinfo/code-quality

Reply via email to