mirror of
https://github.com/nim-lang/Nim.git
synced 2026-01-10 06:54:16 +00:00
Allow custom pragma on iterators [backport] (#20344)
Allow custom pragma on iterators
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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.}
|
||||
|
||||
Reference in New Issue
Block a user