Allow custom pragma on iterators [backport] (#20344)
Allow custom pragma on iterators
This commit is contained in:
parent
d44b547144
commit
3a5e38ab9d
2 changed files with 8 additions and 1 deletions
|
|
@ -1247,7 +1247,7 @@ proc singlePragma(c: PContext, sym: PSym, n: PNode, i: var int,
|
||||||
elif comesFromPush and whichKeyword(ident) != wInvalid:
|
elif comesFromPush and whichKeyword(ident) != wInvalid:
|
||||||
discard "ignore the .push pragma; it doesn't apply"
|
discard "ignore the .push pragma; it doesn't apply"
|
||||||
else:
|
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}):
|
skField, skProc, skFunc, skConverter, skMethod, skType}):
|
||||||
n[i] = semCustomPragma(c, it)
|
n[i] = semCustomPragma(c, it)
|
||||||
elif sym != nil:
|
elif sym != nil:
|
||||||
|
|
|
||||||
|
|
@ -399,6 +399,13 @@ block:
|
||||||
|
|
||||||
discard Hello(a: 1.0, b: 12)
|
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
|
# issue #11511
|
||||||
when false:
|
when false:
|
||||||
template myAttr {.pragma.}
|
template myAttr {.pragma.}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue