I think maybe this is template bug. These code doesn't compile from @zielmicha. 
    
    
    template bar() {.dirty.} =
      echo a
    
    
    template foo() =
      let a = 5
      bar()
    
    foo()
    

But when we turn foo into proc, the code works. 
    
    
    template bar() {.dirty.} =
      echo a
    
    
    proc foo() =
      let a = 5
      bar()
    
    foo()
    

So it is doesn't matter if the foo is hygienic or not. 

Reply via email to