fixed the way exception definitions are bind

This commit is contained in:
Tarek Ziade 2012-02-21 13:02:28 +01:00
parent 1307356ba7
commit fde77e2168
2 changed files with 24 additions and 5 deletions

View file

@ -332,7 +332,8 @@ class Checker(object):
COMPREHENSION = KEYWORD = handleChildren
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):
'''Called when a binding is altered.
@ -567,10 +568,15 @@ class Checker(object):
Check to see if any assignments have not been used.
"""
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)):
self.report(messages.UnusedVariable,
self.report(messages.UnusedVariable,
binding.source.lineno, name)
except:
raise Exception(binding)
import pdb; pdb.set_trace()
self.deferAssignment(checkUnusedAssignments)
self.popScope()

View file

@ -9,9 +9,22 @@ except ValueError as err:
print(err)
"""
code2 = """
try:
pass
except ValueError:
print(err)
try:
pass
except ValueError:
print(err)
"""
class TestFlake(TestCase):
def test_exception(self):
warnings = check(code)
self.assertEqual(warnings, 0)
for c in (code, code2):
warnings = check(code)
self.assertEqual(warnings, 0)