Allow custom pragma on iterators [backport] (#20344)

Allow custom pragma on iterators
This commit is contained in:
Tanguy
2022-09-16 20:10:47 +02:00
committed by GitHub
parent d44b547144
commit 3a5e38ab9d
2 changed files with 8 additions and 1 deletions

View File

@@ -1247,7 +1247,7 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int,
elif comesFromPush and whichKeyword(ident) != wInvalid:
discard "ignore the .push pragma; it doesn't apply"
else:
if sym == nil or (sym.kind in {skVar, skLet, skParam,
if sym == nil or (sym.kind in {skVar, skLet, skParam, skIterator,
skField, skProc, skFunc, skConverter, skMethod, skType}):
n[i] = semCustomPragma(c, it)
elif sym != nil:

View File

@@ -399,6 +399,13 @@ block:
discard Hello(a: 1.0, b: 12)
# custom pragma on iterators
block:
template prag {.pragma.}
{.push prag.}
proc hello = discard
iterator hello2: int = discard
# issue #11511
when false:
template myAttr {.pragma.}