Commits

Tarek Ziadé  committed ab6dd88

fixed the way exception definitions are bind

  • Participants
  • Parent commits 0607e47

Comments (0)

Files changed (2)

File flake8/pyflakes.py

     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.
                 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()
 

File flake8/tests/test_flakes.py

     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)