title: Lambda expressions in parameterized functions kills Intellisense
body: <p><strong>Environment:</strong> 
      Microsoft Visual Studio Premium 2012
      Version 11.0.60610.01 Update 3
      Microsoft .NET Framework
      Version 4.5.50709</p>
  
  <p><em>(this question was previously about Expression but I have isolated the problem in much simpler scenario that shows the same problem, so for simplicity I rewrote the question.)</em></p>
  
  <p>I have found out that Intellisense does not work for lambdas that use generic method types if the method contains any parameters after the delegate. This complex sentence is more easily written as a list of conditions in which Intellisense stops working.</p>
  
  <ul>
  <li>Method has generic type parameter(s), e.g., <code>Working&lt;T&gt;(...)</code></li>
  <li>One of the method's parameters is a delegate that is using methods generic type, e.g., <code>Action&lt;T&gt;</code></li>
  <li>The method contains a parameter that is listed after the delegate, e.g., <code>NotWorking&lt;T&gt;(Action&lt;T&gt; action, String x)</code>. The type of the parameters after the delegate is not relevant.</li>
  </ul>
  
  <hr>
  
  <p><strong>(Temporary) Workaround:</strong></p>
  
  <p>If you write all the parameters in advance, the Intellisense will work for the item.</p>
  
  <p>So, if you write <code>NotWorking&lt;Person&gt;(p=&gt;p</code> and then instead of typing a period to open IntelliSense, write two commas, as if you want to 'skip' parameters. You should get to something like this: <code>NotWorking&lt;Person&gt;(p=&gt;p,,)</code></p>
  
  <p>When all parameters are accounted for, return to <code>p=&gt;p</code> and type a period. Now IS will work.</p>
  
  <p>Since the type is known at compile-time (explicitely given), I guess it's a VS/IS bug, so I <a href="https://connect.microsoft.com/VisualStudio/feedback/details/808430/intellisense-is-not-working-for-lambdas" rel="nofollow">filed it with MS Connect</a>.</p>