]> granicus.if.org Git - python/commitdiff
Some syntax errors were being caught by tokenize during the tabnanny
authorKurt B. Kaiser <kbk@shore.net>
Sun, 1 Oct 2006 21:16:45 +0000 (21:16 +0000)
committerKurt B. Kaiser <kbk@shore.net>
Sun, 1 Oct 2006 21:16:45 +0000 (21:16 +0000)
check, resulting in obscure error messages.  Do the syntax check
first.  Bug 15627161562719

Lib/idlelib/NEWS.txt
Lib/idlelib/ScriptBinding.py

index 3b3d79af33c8deb41052565f5122c2c0dba76e08..a869c13653d77444031d880ed333607f2200d955 100644 (file)
@@ -3,6 +3,10 @@ What's New in IDLE 2.6a1?
 
 *Release date: XX-XXX-200X*
 
+- Some syntax errors were being caught by tokenize during the tabnanny
+  check, resulting in obscure error messages.  Do the syntax check
+  first.  Bug 1562716, 1562719
+
 - IDLE's version number takes a big jump to match the version number of
   the Python release of which it's a part.
 
index f325ad1d254ecc2e011f3754b0eca2cafda1b480..3746eb830475a7f94b9ceb1f9ab79bb933c5bf7a 100644 (file)
@@ -57,9 +57,10 @@ class ScriptBinding:
         filename = self.getfilename()
         if not filename:
             return
+        if not self.checksyntax(filename):
+            return
         if not self.tabnanny(filename):
             return
-        self.checksyntax(filename)
 
     def tabnanny(self, filename):
         f = open(filename, 'r')
@@ -76,9 +77,6 @@ class ScriptBinding:
             self.editwin.gotoline(nag.get_lineno())
             self.errorbox("Tab/space error", indent_message)
             return False
-        except IndentationError:
-            # From tokenize(), let compile() in checksyntax find it again.
-            pass
         return True
 
     def checksyntax(self, filename):
@@ -139,11 +137,11 @@ class ScriptBinding:
         filename = self.getfilename()
         if not filename:
             return
-        if not self.tabnanny(filename):
-            return
         code = self.checksyntax(filename)
         if not code:
             return
+        if not self.tabnanny(filename):
+            return
         shell = self.shell
         interp = shell.interp
         if PyShell.use_subprocess: