This commit is contained in:
Araq
2015-08-09 23:53:22 +02:00
parent f934c92132
commit 799e0f3274
2 changed files with 20 additions and 0 deletions

View File

@@ -1184,6 +1184,9 @@ proc checkCanEval(c: PCtx; n: PNode) =
if s.kind in {skVar, skTemp, skLet, skParam, skResult} and
not s.isOwnedBy(c.prc.sym) and s.owner != c.module:
cannotEval(n)
elif s.kind in {skProc, skConverter, skMethod,
skIterator, skClosureIterator} and sfForward in s.flags:
cannotEval(n)
proc isTemp(c: PCtx; dest: TDest): bool =
result = dest >= 0 and c.prc.slots[dest].kind >= slotTempUnknown

17
tests/vm/tforwardproc.nim Normal file
View File

@@ -0,0 +1,17 @@
discard """
errormsg: "cannot evaluate at compile time: initArray"
line: 11
"""
# bug #3066
proc initArray(): array[10, int]
const
someTable = initArray()
proc initArray(): array[10, int] =
for f in 0..<10:
result[f] = 3
when isMainModule: echo repr(someTable)