title: Special case lifetime analysis
body: <p>Suppose I have </p>
  
  <pre><code>void foo () {
      Bar bar = new Bar(); // bar is never referred to after this line
      // (1)
      doSomethingWithoutBar();
  }
  </code></pre>
  
  <p>At (1), is the object <code>bar</code> is pointing to <em>eligible</em> for garbage collection? Or does <code>bar</code> have to fall out of scope as well? Does it make a difference if <code>GC.Collect</code> is called by <code>doSomethingWithoutBar</code>?</p>
  
  <p>This is relevant to know if Bar has a (C#) destructor or something funky like that.</p>