fixes #10192
This commit is contained in:
parent
a85d387928
commit
2475d92c36
2 changed files with 21 additions and 1 deletions
|
|
@ -37,7 +37,7 @@ proc evalTemplateAux(templ, actual: PNode, c: var TemplCtx, result: PNode) =
|
|||
case templ.kind
|
||||
of nkSym:
|
||||
var s = templ.sym
|
||||
if s.owner == nil or s.owner.id == c.owner.id:
|
||||
if (s.owner == nil and s.kind == skParam) or s.owner == c.owner:
|
||||
if s.kind == skParam and sfGenSym notin s.flags:
|
||||
handleParam actual.sons[s.position]
|
||||
elif (s.owner != nil) and (s.kind == skGenericParam or
|
||||
|
|
|
|||
|
|
@ -110,3 +110,23 @@ implementUnary(): x*x
|
|||
|
||||
registerInstantiation(int)
|
||||
registerInstantiation(float)
|
||||
|
||||
# bug #10192
|
||||
template nest(body) {.dirty.} =
|
||||
template p1(b1: untyped) {.dirty, used.} =
|
||||
template implp1: untyped {.dirty.} = b1
|
||||
template p2(b2: untyped) {.dirty, used.} =
|
||||
template implp2: untyped {.dirty.} = b2
|
||||
|
||||
body
|
||||
implp1
|
||||
implp2
|
||||
|
||||
template test() =
|
||||
nest:
|
||||
p1:
|
||||
var foo = "bar"
|
||||
p2:
|
||||
doAssert(foo.len == 3)
|
||||
|
||||
test()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue