diff options
author | cooldome <ariabushenko@bk.ru> | 2020-05-12 11:45:14 +0100 |
---|---|---|
committer | cooldome <ariabushenko@bk.ru> | 2020-05-12 11:45:14 +0100 |
commit | dfae796ac3e0db69af40bec11a7d7ad7c4d00b4b (patch) | |
tree | d582feae97845ee0899b3c37c4f9ad30fb4bcbb1 | |
parent | 2d7ccf09282ba7f7156b2f2d9893cb083cd18549 (diff) | |
download | Nim-dfae796ac3e0db69af40bec11a7d7ad7c4d00b4b.tar.gz |
fix test
-rw-r--r-- | compiler/liftdestructors.nim | 8 |
1 files 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 |