diff options
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/nimrod.nimrod.cfg | 1 | ||||
-rw-r--r-- | compiler/sigmatch.nim | 2 | ||||
-rw-r--r-- | compiler/transf.nim | 1 |
3 files changed, 4 insertions, 0 deletions
diff --git a/compiler/nimrod.nimrod.cfg b/compiler/nimrod.nimrod.cfg index cc27d9f36..2c6e6f249 100644 --- a/compiler/nimrod.nimrod.cfg +++ b/compiler/nimrod.nimrod.cfg @@ -20,3 +20,4 @@ import:testability define:useStdoutAsStdmsg cs:partial +#define:useNodeIds diff --git a/compiler/sigmatch.nim b/compiler/sigmatch.nim index b9fb0c957..b83c27d22 100644 --- a/compiler/sigmatch.nim +++ b/compiler/sigmatch.nim @@ -668,6 +668,8 @@ proc typeRel(c: var TCandidate, f, aOrig: PType, doBind = true): TTypeRelation = result = isNone else: discard of tyOpenArray, tyVarargs: + # varargs[expr] is special + if f.kind == tyVarargs and f.sons[0].kind == tyExpr: return case a.kind of tyOpenArray, tyVarargs: result = typeRel(c, base(f), base(a)) diff --git a/compiler/transf.nim b/compiler/transf.nim index 7922acbe9..fb5e321b6 100644 --- a/compiler/transf.nim +++ b/compiler/transf.nim @@ -166,6 +166,7 @@ proc transformVarSection(c: PTransf, v: PNode): PTransNode = idNodeTablePut(c.transCon.mapping, it.sons[j].sym, newSymNode(newVar)) defs[j] = newSymNode(newVar).PTransNode assert(it.sons[L-2].kind == nkEmpty) + defs[L-2] = ast.emptyNode.PTransNode defs[L-1] = transform(c, it.sons[L-1]) result[i] = defs |