Skip to content

Commit

Permalink
fixes #24641; quote do captures no variables under current macros
Browse files Browse the repository at this point in the history
  • Loading branch information
ringabout committed Jan 23, 2025
1 parent 6d59680 commit b550fb5
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions compiler/semexprs.nim
Original file line number Diff line number Diff line change
Expand Up @@ -2447,7 +2447,11 @@ proc semQuoteAst(c: PContext, n: PNode): PNode =
dummyTemplate[paramsPos].add newTreeI(nkIdentDefs, n.info, ids[i], newNodeIT(nkType, n.info, typ), c.graph.emptyNode)
else:
dummyTemplate[paramsPos].add newTreeI(nkIdentDefs, n.info, ids[i], getSysSym(c.graph, n.info, "typed").newSymNode, c.graph.emptyNode)
# don't allow templates to capture variables in macors without backticks
let oldScope = c.currentScope
c.currentScope = c.topLevelScope
var tmpl = semTemplateDef(c, dummyTemplate)
c.currentScope = oldScope
quotes[0] = tmpl[namePos]
# This adds a call to newIdentNode("result") as the first argument to the template call
let identNodeSym = getCompilerProc(c.graph, "newIdentNode")
Expand Down

0 comments on commit b550fb5

Please sign in to comment.