From dfae796ac3e0db69af40bec11a7d7ad7c4d00b4b Mon Sep 17 00:00:00 2001 From: cooldome Date: Tue, 12 May 2020 11:45:14 +0100 Subject: [PATCH] fix test --- compiler/liftdestructors.nim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/compiler/liftdestructors.nim b/compiler/liftdestructors.nim index 2a7301f24..6f7b285ed 100644 --- a/compiler/liftdestructors.nim +++ b/compiler/liftdestructors.nim @@ -143,9 +143,6 @@ proc fillBodyObj(c: var TLiftCtx; n, body, x, y: PNode; enforceDefaultOp: bool) fillBody(c, f.typ, body, x.dotField(f), b) of nkNilLit: discard of nkRecCase: - let oldfilterDiscriminator = c.filterDiscriminator - if c.filterDiscriminator == n[0].sym: - c.filterDiscriminator = nil # we have found the case part, proceed as normal # XXX This is only correct for 'attachedSink'! var localEnforceDefaultOp = enforceDefaultOp if c.kind == attachedSink: @@ -159,6 +156,11 @@ proc fillBodyObj(c: var TLiftCtx; n, body, x, y: PNode; enforceDefaultOp: bool) # copy the selector: fillBodyObj(c, n[0], body, x, y, enforceDefaultOp = false) + + let oldfilterDiscriminator = c.filterDiscriminator + if c.filterDiscriminator == n[0].sym: + c.filterDiscriminator = nil # we have found the case part, proceed as normal + # we need to generate a case statement: var caseStmt = newNodeI(nkCaseStmt, c.info) # XXX generate 'if' that checks same branches