From 85ed1712e428f93408f56fc684816f9a85b0ebc0 Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Fri, 17 May 2019 03:59:48 -0700 Subject: bpo-1875: Raise SyntaxError in invalid blocks that will be optimised away (GH-13332) Move the check for dead conditionals (if 0) to the peephole optimizer and make sure that the code block is still compiled to report any existing syntax errors within. (cherry picked from commit af8646c8054d0f4180a2013383039b6a472f9698) Co-authored-by: Pablo Galindo --- Lib/test/test_syntax.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'Lib') diff --git a/Lib/test/test_syntax.py b/Lib/test/test_syntax.py index 2b96a94401..4918e5c4c4 100644 --- a/Lib/test/test_syntax.py +++ b/Lib/test/test_syntax.py @@ -650,6 +650,20 @@ class SyntaxTestCase(unittest.TestCase): def test_break_outside_loop(self): self._check_error("break", "outside loop") + def test_yield_outside_function(self): + self._check_error("if 0: yield", "outside function") + self._check_error("class C:\n if 0: yield", "outside function") + + def test_return_outside_function(self): + self._check_error("if 0: return", "outside function") + self._check_error("class C:\n if 0: return", "outside function") + + def test_break_outside_loop(self): + self._check_error("if 0: break", "outside loop") + + def test_continue_outside_loop(self): + self._check_error("if 0: continue", "not properly in loop") + def test_unexpected_indent(self): self._check_error("foo()\n bar()\n", "unexpected indent", subclass=IndentationError) -- cgit v1.2.1