Skip to content

Commit

Permalink
fixes #24167; {.push deprecated.} for templates
Browse files Browse the repository at this point in the history
  • Loading branch information
ringabout committed Sep 25, 2024
1 parent b9de2bb commit 53e1196
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
7 changes: 5 additions & 2 deletions compiler/ast.nim
Original file line number Diff line number Diff line change
Expand Up @@ -1057,8 +1057,11 @@ proc getDeclPragma*(n: PNode): PNode =

proc extractPragma*(s: PSym): PNode =
## gets the pragma node of routine/type/var/let/const symbol `s`
if s.kind in routineKinds:
result = s.ast[pragmasPos]
if s.kind in routineKinds: # bug #24167
if s.ast[pragmasPos] != nil and s.ast[pragmasPos].kind != nkEmpty:
result = s.ast[pragmasPos]
else:
result = nil
elif s.kind in {skType, skVar, skLet, skConst}:
if s.ast != nil and s.ast.len > 0:
if s.ast[0].kind == nkPragmaExpr and s.ast[0].len > 1:
Expand Down
6 changes: 6 additions & 0 deletions tests/pragmas/tpush.nim
Original file line number Diff line number Diff line change
Expand Up @@ -124,3 +124,9 @@ foo31()
foo41()

{.pop.}

block:
{.push deprecated.}
template test() = discard
test()
{.pop.}

0 comments on commit 53e1196

Please sign in to comment.