diff options
-rw-r--r-- | pyflakes/checker.py | 5 | ||||
-rw-r--r-- | pyflakes/test/test_other.py | 19 |
2 files changed, 22 insertions, 2 deletions
diff --git a/pyflakes/checker.py b/pyflakes/checker.py index a070822..baef833 100644 --- a/pyflakes/checker.py +++ b/pyflakes/checker.py @@ -679,8 +679,9 @@ class Checker(object): self.report(messages.RedefinedInListComp, node, value.name, existing.source) elif not existing.used and value.redefines(existing): - self.report(messages.RedefinedWhileUnused, - node, value.name, existing.source) + if value.name != '_' or isinstance(existing, Importation): + self.report(messages.RedefinedWhileUnused, + node, value.name, existing.source) elif isinstance(existing, Importation) and value.redefines(existing): existing.redefined.append(node) diff --git a/pyflakes/test/test_other.py b/pyflakes/test/test_other.py index 14f213c..5bae7a0 100644 --- a/pyflakes/test/test_other.py +++ b/pyflakes/test/test_other.py @@ -151,6 +151,25 @@ class Test(TestCase): def a(): pass ''', m.RedefinedWhileUnused) + def test_redefinedUnderscoreFunction(self): + """ + Test that shadowing a function definition named with underscore doesn't + raise anything. + """ + self.flakes(''' + def _(): pass + def _(): pass + ''') + + def test_redefinedUnderscoreImportation(self): + """ + Test that shadowing an underscore importation raises a warning. + """ + self.flakes(''' + from .i18n import _ + def _(): pass + ''', m.RedefinedWhileUnused) + def test_redefinedClassFunction(self): """ Test that shadowing a function definition in a class suite with another |