Bugfix: Allow matching on nkExprEqExpr against varargs[untyped]
This enables macros accepting arbitrary keyword arguments:
log("foo", prop1 = "bar", prop2 = "baz")
As an added bonus, simple templates with varargs arguments can now
forward their params to procs accepting keyword arguments.
This commit is contained in:
parent
2b8bf8fc4a
commit
e678a4285d
2 changed files with 17 additions and 1 deletions
|
|
@ -2173,7 +2173,8 @@ proc matchesAux(c: PContext, n, nOrig: PNode,
|
|||
var formal: PSym = if formalLen > 1: m.callee.n.sons[1].sym else: nil
|
||||
|
||||
while a < n.len:
|
||||
if a >= formalLen-1 and formal != nil and formal.typ.isVarargsUntyped:
|
||||
if a >= formalLen-1 and f < formalLen and m.callee.n[f].typ.isVarargsUntyped:
|
||||
formal = m.callee.n.sons[f].sym
|
||||
incl(marker, formal.position)
|
||||
if container.isNil:
|
||||
container = newNodeIT(nkArgList, n.sons[a].info, arrayConstr(c, n.info))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue