mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-16 08:04:20 +00:00
@@ -71,6 +71,7 @@ const
|
||||
letPragmas* = varPragmas
|
||||
procTypePragmas* = {FirstCallConv..LastCallConv, wVarargs, wNosideeffect,
|
||||
wThread, wRaises, wLocks, wTags, wGcSafe}
|
||||
forVarPragmas* = {wInject, wGensym}
|
||||
allRoutinePragmas* = methodPragmas + iteratorPragmas + lambdaPragmas
|
||||
|
||||
proc getPragmaVal*(procAst: PNode; name: TSpecialWord): PNode =
|
||||
|
||||
@@ -567,6 +567,8 @@ proc symForVar(c: PContext, n: PNode): PSym =
|
||||
let m = if n.kind == nkPragmaExpr: n.sons[0] else: n
|
||||
result = newSymG(skForVar, m, c)
|
||||
styleCheckDef(c.config, result)
|
||||
if n.kind == nkPragmaExpr:
|
||||
pragma(c, result, n.sons[1], forVarPragmas)
|
||||
|
||||
proc semForVars(c: PContext, n: PNode): PNode =
|
||||
result = n
|
||||
|
||||
10
tests/pragmas/t8741.nim
Normal file
10
tests/pragmas/t8741.nim
Normal file
@@ -0,0 +1,10 @@
|
||||
discard """
|
||||
line: 9
|
||||
errormsg: "attempting to call undeclared routine: 'foobar'"
|
||||
"""
|
||||
|
||||
for a {.gensym, inject.} in @[1,2,3]:
|
||||
discard
|
||||
|
||||
for a {.foobar.} in @[1,2,3]:
|
||||
discard
|
||||
Reference in New Issue
Block a user