title: var not getting implicit value
body: <p>I just came across the code below:</p>
  
  <pre><code>public void ListControls(ControlCollection controls, List&lt;Control&gt; controlsFound)
  {
      foreach (var control in controls)
      {
          if (control is IAttributeAccessor)
          {
              controlsFound.Add(control); //Error (Invalid argument to Add method)
              ListControls(control.Controls, controlsFound);
          }
      }
  } 
  </code></pre>
  
  <p>It gives an error as above:</p>
  
  <p>If I change <code>var</code> in <code>foreach</code> to <code>Control</code> then it works. The reason is that the <code>Add</code> method was expecting <code>Control</code> as parameter. But I think var should have been implicitly replaced by <code>Control</code>, right?</p>