Fix overload resolution for pragmas evaluation (#8902)
Fixes #6448 Fixes #4384
This commit is contained in:
parent
ee14ace5d3
commit
33458894da
8 changed files with 66 additions and 33 deletions
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue