mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-12 23:54:17 +00:00
fixed the way exception definitions are bind
This commit is contained in:
parent
1307356ba7
commit
fde77e2168
2 changed files with 24 additions and 5 deletions
|
|
@ -332,7 +332,8 @@ class Checker(object):
|
||||||
COMPREHENSION = KEYWORD = handleChildren
|
COMPREHENSION = KEYWORD = handleChildren
|
||||||
|
|
||||||
def EXCEPTHANDLER(self, node):
|
def EXCEPTHANDLER(self, node):
|
||||||
self.scope[node.name] = node
|
if node.name is not None:
|
||||||
|
self.addBinding(node.lineno, FunctionDefinition(node.name, node))
|
||||||
|
|
||||||
def addBinding(self, lineno, value, reportRedef=True):
|
def addBinding(self, lineno, value, reportRedef=True):
|
||||||
'''Called when a binding is altered.
|
'''Called when a binding is altered.
|
||||||
|
|
@ -567,10 +568,15 @@ class Checker(object):
|
||||||
Check to see if any assignments have not been used.
|
Check to see if any assignments have not been used.
|
||||||
"""
|
"""
|
||||||
for name, binding in self.scope.items():
|
for name, binding in self.scope.items():
|
||||||
if (not binding.used and not name in self.scope.globals
|
try:
|
||||||
|
if (not binding.used and not name in self.scope.globals
|
||||||
and isinstance(binding, Assignment)):
|
and isinstance(binding, Assignment)):
|
||||||
self.report(messages.UnusedVariable,
|
self.report(messages.UnusedVariable,
|
||||||
binding.source.lineno, name)
|
binding.source.lineno, name)
|
||||||
|
except:
|
||||||
|
raise Exception(binding)
|
||||||
|
import pdb; pdb.set_trace()
|
||||||
|
|
||||||
self.deferAssignment(checkUnusedAssignments)
|
self.deferAssignment(checkUnusedAssignments)
|
||||||
self.popScope()
|
self.popScope()
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -9,9 +9,22 @@ except ValueError as err:
|
||||||
print(err)
|
print(err)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
code2 = """
|
||||||
|
try:
|
||||||
|
pass
|
||||||
|
except ValueError:
|
||||||
|
print(err)
|
||||||
|
|
||||||
|
try:
|
||||||
|
pass
|
||||||
|
except ValueError:
|
||||||
|
print(err)
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
class TestFlake(TestCase):
|
class TestFlake(TestCase):
|
||||||
|
|
||||||
def test_exception(self):
|
def test_exception(self):
|
||||||
warnings = check(code)
|
for c in (code, code2):
|
||||||
self.assertEqual(warnings, 0)
|
warnings = check(code)
|
||||||
|
self.assertEqual(warnings, 0)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue