mirror of
https://github.com/python/cpython.git
synced 2025-08-01 07:33:08 +00:00
Fix for SF bug 1569998: break permitted inside try.
The compiler was checking that there was something on the fblock stack, but not that there was a loop on the stack. Fixed that and added a test for the specific syntax error. Bug fix candidate.
This commit is contained in:
parent
1e3c3b15df
commit
82271f13e7
2 changed files with 27 additions and 1 deletions
|
@ -322,6 +322,20 @@ This is essentially a continue in a finally which should not be allowed.
|
|||
...
|
||||
SyntaxError: 'continue' not supported inside 'finally' clause (<doctest test.test_syntax[41]>, line 8)
|
||||
|
||||
There is one test for a break that is not in a loop. The compiler
|
||||
uses a single data structure to keep track of try-finally and loops,
|
||||
so we need to be sure that a break is actually inside a loop. If it
|
||||
isn't, there should be a syntax error.
|
||||
|
||||
>>> try:
|
||||
... print 1
|
||||
... break
|
||||
... print 2
|
||||
... finally:
|
||||
... print 3
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
SyntaxError: 'break' outside loop (<doctest test.test_syntax[42]>, line 3)
|
||||
"""
|
||||
|
||||
import re
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue