title: Warning: 'matchIter' is not GC-safe as it accesses 'x' which is a global using GC'ed memory [GcUnsafe2]
body: <p>When building this code in nim:</p>
  
  <pre><code>import jester, asyncdispatch    
  let stuff = "thing"    
  routes:
    get "/":
      resp stuff
  runForever()
  </code></pre>
  
  <p>it results in:</p>
  
  <blockquote>
    <p>mytest.nim(3, 1) template/generic instantiation from here
    lib/core/macros.nim(369, 70) template/generic instantiation from here
    lib/pure/asyncmacro.nim(355, 31) Warning: 'matchIter' is not GC-safe
    as it accesses 'stuff' which is a global using GC'ed memory
    [GcUnsafe2]</p>
  </blockquote>
  
  <p>I suppose it refers to the variable <code>stuff</code> and I suppose it's hard to diagnose because the jester routes are somekind of DSL.</p>
  
  <p>If the message means what it means to mean, then why is it only a warning ? Or is it a false positive ? Or even more, is that concept of using variables in routes just plain impossible ?</p>