Turn SyntasWarning into SyntaxError for all code entered
interactively.
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index 86c0f6b..bae4e16 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -5,6 +5,7 @@
 import string
 import getopt
 import re
+import warnings
 
 import linecache
 from code import InteractiveInterpreter
@@ -180,7 +181,14 @@
         # Extend base class to stuff the source in the line cache first
         filename = self.stuffsource(source)
         self.more = 0
-        return InteractiveInterpreter.runsource(self, source, filename)
+        self.save_warnings_filters = warnings.filters[:]
+        warnings.filterwarnings(action="error", category=SyntaxWarning)
+        try:
+            return InteractiveInterpreter.runsource(self, source, filename)
+        finally:
+            if self.save_warnings_filters is not None:
+                warnings.filters[:] = self.save_warnings_filters
+                self.save_warnings_filters = None
 
     def stuffsource(self, source):
         # Stuff source in the filename cache
@@ -249,6 +257,9 @@
 
     def runcode(self, code):
         # Override base class method
+        if self.save_warnings_filters is not None:
+            warnings.filters[:] = self.save_warnings_filters
+            self.save_warnings_filters = None
         debugger = self.debugger
         try:
             self.tkconsole.beginexecuting()