Fix overload resolution for pragmas evaluation (#8902)

Fixes #6448
Fixes #4384
This commit is contained in:
LemonBoy 2018-10-09 19:58:23 +02:00 • committed by Andreas Rumpf
commit 33458894da
8 changed files with 66 additions and 33 deletions

View file

@ -723,13 +723,13 @@ proc semCustomPragma(c: PContext, n: PNode): PNode =
elif n.kind == nkExprColonExpr:
# pragma: arg -> pragma(arg)
result = newTree(nkCall, n[0], n[1])
elif n.kind in nkPragmaCallKinds + {nkIdent}:
elif n.kind in nkPragmaCallKinds:
result = n
else:
invalidPragma(c, n)
return n
let r = c.semOverloadedCall(c, result, n, {skTemplate}, {})
let r = c.semOverloadedCall(c, result, n, {skTemplate}, {efNoUndeclared})
if r.isNil or sfCustomPragma notin r[0].sym.flags:
invalidPragma(c, n)
else: