diff options
author | Andreas Rumpf <rumpf_a@web.de> | 2021-07-27 12:48:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-27 12:48:27 +0200 |
commit | c86f9590fb5ba6512ba33994fa0711341eb8524b (patch) | |
tree | 12f7476681df993caced9a1f6a86f3a799f6a225 | |
parent | 493721c16c06b5681dc270679bdcbb41011614b2 (diff) | |
download | Nim-c86f9590fb5ba6512ba33994fa0711341eb8524b.tar.gz |
fixes #18570 (#18599)
-rw-r--r-- | compiler/injectdestructors.nim | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/compiler/injectdestructors.nim b/compiler/injectdestructors.nim index cf09b3ff5..985f27878 100644 --- a/compiler/injectdestructors.nim +++ b/compiler/injectdestructors.nim @@ -799,7 +799,8 @@ proc p(n: PNode; c: var Con; s: var Scope; mode: ProcessMode): PNode = result[i] = p(n[i], c, s, m) of nkObjConstr: # see also the remark about `nkTupleConstr`. - let isRefConstr = n.typ.skipTypes(abstractInst).kind == tyRef + let t = n.typ.skipTypes(abstractInst) + let isRefConstr = t.kind == tyRef let m = if isRefConstr: sinkArg elif mode == normal: normal else: sinkArg @@ -807,7 +808,7 @@ proc p(n: PNode; c: var Con; s: var Scope; mode: ProcessMode): PNode = result = copyTree(n) for i in 1..<n.len: if n[i].kind == nkExprColonExpr: - let field = lookupFieldAgain(n.typ, n[i][0].sym) + let field = lookupFieldAgain(t, n[i][0].sym) if field != nil and sfCursor in field.flags: result[i][1] = p(n[i][1], c, s, normal) else: |