Fix compiler crash caused by top level return (#12501)
This commit is contained in:
parent
822078ed12
commit
9ccfcf5dd2
2 changed files with 6 additions and 1 deletions
|
|
@ -1724,7 +1724,7 @@ proc semReturn(c: PContext, n: PNode): PNode =
|
||||||
result = n
|
result = n
|
||||||
checkSonsLen(n, 1, c.config)
|
checkSonsLen(n, 1, c.config)
|
||||||
if c.p.owner.kind in {skConverter, skMethod, skProc, skFunc, skMacro} or
|
if c.p.owner.kind in {skConverter, skMethod, skProc, skFunc, skMacro} or
|
||||||
isClosureIterator(c.p.owner.typ):
|
(not c.p.owner.typ.isNil and isClosureIterator(c.p.owner.typ)):
|
||||||
if n.sons[0].kind != nkEmpty:
|
if n.sons[0].kind != nkEmpty:
|
||||||
# transform ``return expr`` to ``result = expr; return``
|
# transform ``return expr`` to ``result = expr; return``
|
||||||
if c.p.resultSym != nil:
|
if c.p.resultSym != nil:
|
||||||
|
|
|
||||||
5
tests/misc/t12480.nim
Normal file
5
tests/misc/t12480.nim
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
discard """
|
||||||
|
errormsg: "'return' not allowed here"
|
||||||
|
"""
|
||||||
|
|
||||||
|
return
|
||||||
Loading…
Add table
Add a link
Reference in a new issue