mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-28 08:54:53 +00:00
fixes #8758, fixes #10828, fixes #12172, fixes #21610, fixes #23803, fixes #24633, fixes #24634, succeeds #24085 We simply track the symbol ID of every traversed `var`/`let` definition in `vmgen`, then these symbols are always considered evaluable in the current `vmgen` context. The set of symbols is reset before every generation, but both tests worked properly without doing this including the nested `const`, so maybe it's already done in some way I'm not seeing.
7 lines
138 B
Nim
7 lines
138 B
Nim
proc test =
|
|
const TEST = block:
|
|
let i = 1
|
|
const j = i + 1 #[tt.Error
|
|
^ cannot evaluate at compile time: i]#
|
|
j
|