We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 40b4b6b commit da11146Copy full SHA for da11146
compiler/injectdestructors.nim
@@ -879,13 +879,16 @@ proc p(n: PNode; c: var Con; s: var Scope; mode: ProcessMode; tmpFlags = {sfSing
879
880
result = copyTree(n)
881
for i in ord(n.kind == nkClosure)..<n.len:
882
+ # nkClosure env (i=1): must not consume; it's shared with lexical refs
883
+ # (e.g. hash(inner) after `let inner2 = inner` needs the env).
884
+ let mClosure = if n.kind == nkClosure and i == 1: normal else: m
885
if n[i].kind == nkExprColonExpr:
- result[i][1] = p(n[i][1], c, s, m)
886
+ result[i][1] = p(n[i][1], c, s, mClosure)
887
elif n[i].kind == nkRange:
- result[i][0] = p(n[i][0], c, s, m)
888
+ result[i][0] = p(n[i][0], c, s, mClosure)
889
890
else:
- result[i] = p(n[i], c, s, m)
891
+ result[i] = p(n[i], c, s, mClosure)
892
of nkObjConstr:
893
# see also the remark about `nkTupleConstr`.
894
let t = n.typ.skipTypes(abstractInst)
0 commit comments