Fix compiler crash caused by top level return (#12501)

This commit is contained in:
Oscar Nihlgård
2019-10-24 11:04:04 +02:00
committed by Andreas Rumpf
parent 822078ed12
commit 9ccfcf5dd2
2 changed files with 6 additions and 1 deletions

View File

@@ -1724,7 +1724,7 @@ proc semReturn(c: PContext, n: PNode): PNode =
result = n
checkSonsLen(n, 1, c.config)
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:
# transform ``return expr`` to ``result = expr; return``
if c.p.resultSym != nil:

5
tests/misc/t12480.nim Normal file
View File

@@ -0,0 +1,5 @@
discard """
errormsg: "'return' not allowed here"
"""
return