fixes #3066
This commit is contained in:
parent
f934c92132
commit
799e0f3274
2 changed files with 20 additions and 0 deletions
|
|
@ -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
17
tests/vm/tforwardproc.nim
Normal 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue