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
This commit is contained in:
Kurt B. Kaiser 2006-10-01 21:16:45 +00:00
parent 54c3db55a2
commit c426ffcdfc
2 changed files with 8 additions and 6 deletions

View File

@ -3,6 +3,10 @@ What's New in IDLE 2.6a1?
*Release date: XX-XXX-200X* *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 - IDLE's version number takes a big jump to match the version number of
the Python release of which it's a part. the Python release of which it's a part.

View File

@ -57,9 +57,10 @@ class ScriptBinding:
filename = self.getfilename() filename = self.getfilename()
if not filename: if not filename:
return return
if not self.checksyntax(filename):
return
if not self.tabnanny(filename): if not self.tabnanny(filename):
return return
self.checksyntax(filename)
def tabnanny(self, filename): def tabnanny(self, filename):
f = open(filename, 'r') f = open(filename, 'r')
@ -76,9 +77,6 @@ class ScriptBinding:
self.editwin.gotoline(nag.get_lineno()) self.editwin.gotoline(nag.get_lineno())
self.errorbox("Tab/space error", indent_message) self.errorbox("Tab/space error", indent_message)
return False return False
except IndentationError:
# From tokenize(), let compile() in checksyntax find it again.
pass
return True return True
def checksyntax(self, filename): def checksyntax(self, filename):
@ -139,11 +137,11 @@ class ScriptBinding:
filename = self.getfilename() filename = self.getfilename()
if not filename: if not filename:
return return
if not self.tabnanny(filename):
return
code = self.checksyntax(filename) code = self.checksyntax(filename)
if not code: if not code:
return return
if not self.tabnanny(filename):
return
shell = self.shell shell = self.shell
interp = shell.interp interp = shell.interp
if PyShell.use_subprocess: if PyShell.use_subprocess: