From 46bfb590c856debce1a60ae0fae65ff3716dbd9a Mon Sep 17 00:00:00 2001 From: cooldome Date: Tue, 28 Jan 2020 13:55:54 +0000 Subject: [PATCH] fixes #13281 (#13282) * fixes ##13281 * add comment to test --- compiler/semtypes.nim | 8 ++++---- tests/ccgbugs/tcgbug.nim | 18 +++++++++++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/compiler/semtypes.nim b/compiler/semtypes.nim index 3b9cba835e..ed59ce36a2 100644 --- a/compiler/semtypes.nim +++ b/compiler/semtypes.nim @@ -698,7 +698,7 @@ proc semRecordCase(c: PContext, n: PNode, check: var IntSet, pos: var int, father.add a proc semRecordNodeAux(c: PContext, n: PNode, check: var IntSet, pos: var int, - father: PNode, rectype: PType, hasCaseFields = false) = + father: PNode, rectype: PType, hasCaseFields: bool) = if n == nil: return case n.kind of nkRecWhen: @@ -727,12 +727,12 @@ proc semRecordNodeAux(c: PContext, n: PNode, check: var IntSet, pos: var int, assign(newCheck, check) var newPos = pos var newf = newNodeI(nkRecList, n.info) - semRecordNodeAux(c, it[idx], newCheck, newPos, newf, rectype) + semRecordNodeAux(c, it[idx], newCheck, newPos, newf, rectype, hasCaseFields) it[idx] = if newf.len == 1: newf[0] else: newf if c.inGenericContext > 0: father.add n elif branch != nil: - semRecordNodeAux(c, branch, check, pos, father, rectype) + semRecordNodeAux(c, branch, check, pos, father, rectype, hasCaseFields) of nkRecCase: semRecordCase(c, n, check, pos, father, rectype) of nkNilLit: @@ -741,7 +741,7 @@ proc semRecordNodeAux(c: PContext, n: PNode, check: var IntSet, pos: var int, # attempt to keep the nesting at a sane level: var a = if father.kind == nkRecList: father else: copyNode(n) for i in 0..