diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2019-10-06 19:38:21 +0200 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-10-07 06:47:30 +0200 |
commit | a60f18d0255f400cb111eacbad79c81e06f6363e (patch) | |
tree | d3f1dd71ac9c65e9367f0af954439b7bf77d8550 | |
parent | 9d000c519a5b21300e4896d9d9a79170ac281387 (diff) | |
download | Nim-a60f18d0255f400cb111eacbad79c81e06f6363e.tar.gz |
fixes #12323 [backport]
-rw-r--r-- | compiler/lambdalifting.nim | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/lambdalifting.nim b/compiler/lambdalifting.nim index d783e0554..33eacefbd 100644 --- a/compiler/lambdalifting.nim +++ b/compiler/lambdalifting.nim @@ -477,7 +477,7 @@ proc detectCapturedVars(n: PNode; owner: PSym; c: var DetectionPass) = w = up of nkEmpty..pred(nkSym), succ(nkSym)..nkNilLit, nkTemplateDef, nkTypeSection, nkProcDef, nkMethodDef, - nkConverterDef, nkMacroDef, nkFuncDef, nkCommentStmt: + nkConverterDef, nkMacroDef, nkFuncDef, nkCommentStmt, nkTypeOfExpr: discard of nkLambdaKinds, nkIteratorDef: if n.typ != nil: @@ -760,6 +760,8 @@ proc liftCapturedVars(n: PNode; owner: PSym; d: DetectionPass; n[0].sons[1] = liftCapturedVars(n[0].sons[1], owner, d, c) else: n.sons[0] = liftCapturedVars(n[0], owner, d, c) + of nkTypeOfExpr: + result = n else: if owner.isIterator: if nfLL in n.flags: |