An unnamed break in a block now gives an UnnamedBreak warning (#20901)

* unnamed break in the block now gives an error

* bootstrap

* fixes

* more fixes

* break with label

* label again

* one moee

* Delete test5.txt

* it now gives a UnnamedBreak warning

* change the URL of bump back to the original one
This commit is contained in:
ringabout 2022-11-24 14:31:47 +08:00 • committed by GitHub
commit ef29987781
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 85 additions and 20 deletions

View file

@ -42,3 +42,5 @@ switch("define", "nimPreviewHashRef")
switch("define", "nimPreviewRangeDefault")
when defined(windows):
switch("tlsEmulation", "off")
switch("warningAserror", "UnnamedBreak")

View file

@ -19,7 +19,7 @@ block tbreak:
run = false
block myblock:
if true:
break
break myblock
echo "leaving myblock"
x = true
doAssert(x)
@ -95,3 +95,22 @@ block tnestif:
else:
writeLine(stdout, "looks like Python")
#OUT i == 2
# bug https://github.com/nim-lang/RFCs/issues/451
for i in 1..2: # works
break
block: # works
for i in 1..2:
break
block: # works
block:
discard 12 + 3
for i in 1..2:
break
block named: # works
if true:
break named
doAssert false, "not reached"

View file

@ -0,0 +1,15 @@
discard """
cmd: "nim check $file"
action: "reject"
nimout: '''
tunamedbreak.nim(12, 5) Error: Using an unnamed break in a block is deprecated; Use a named block with a named break instead [UnnamedBreak]
tunamedbreak.nim(15, 3) Error: Using an unnamed break in a block is deprecated; Use a named block with a named break instead [UnnamedBreak]
'''
"""
for i in 1..2: # errors
block:
break
block: # errors
break

View file

@ -29,16 +29,16 @@ echo "2"
try:
raise newException(OSError, "Problem")
except OSError:
block:
break
block label:
break label
echo "3"
# Fourth Variety
block:
block label:
try:
raise newException(OSError, "Problem")
except OSError:
break
break label
echo "4"

View file

@ -369,9 +369,9 @@ block:
# bug #18824
iterator poc_iterator: int {.closure.} =
block:
block bug18824:
try:
break
break bug18824
finally:
echo "In defer"