fix #19680; check if stderr is static (#19709)

(cherry picked from commit 26bcf18f91)
This commit is contained in:
flywind
2022-04-12 15:48:48 +08:00
committed by narimiran
parent fcd05bd031
commit 2a68fa71eb
2 changed files with 11 additions and 1 deletions

View File

@@ -1497,7 +1497,7 @@ proc checkCanEval(c: PCtx; n: PNode) =
# proc foo() = var x ...
let s = n.sym
if {sfCompileTime, sfGlobal} <= s.flags: return
if s.importcCondVar: return
if compiletimeFFI in c.config.features and s.importcCondVar: return
if s.kind in {skVar, skTemp, skLet, skParam, skResult} and
not s.isOwnedBy(c.prc.sym) and s.owner != c.module and c.mode != emRepl:
# little hack ahead for bug #12612: assume gensym'ed variables

View File

@@ -46,3 +46,13 @@ echo value
var ys = @[4.1, 5.6, 7.2, 1.7, 9.3, 4.4, 3.2]
#var x = int(ys.high / 2) #echo ys[x] # Works
echo ys[int(ys.high / 2)] # Doesn't work
# bug #19680
var here = ""
when stderr is static:
doAssert false
else:
here = "works"
doAssert here == "works"