title: Compiler not resolving to expected extension method
body: <p>I noticed today when trying to convert an inline lambda function to a closure so I could use the same lambda in multiple places. This will compile to the correct extension method:</p>
  
  <pre><code>appBuilder.Use((ctx, next) =&gt; {
      Console.WriteLine("Test");
      return next();
  });
  </code></pre>
  
  <p>That <code>Use</code> is an extension defined by:</p>
  
  <pre><code>public static IAppBuilder Use(this IAppBuilder app, Func&lt;IOwinContext, Func&lt;Task&gt;, Task&gt; handler);
  </code></pre>
  
  <p>Now if I do the same thing, but move the inline to a variable:</p>
  
  <pre><code>Func&lt;IOwinContext, Func&lt;Task&gt;, Task&gt; handler = (ctx, next) =&gt; {
          Console.WriteLine("Test");
          return next();
      };
  appBuilder.Use(handler);
  </code></pre>
  
  <p>The compiler resolves to this method (not the extension):</p>
  
  <pre><code>IAppBuilder Use(object middleware, params object[] args);
  </code></pre>
  
  <p>What am I doing here to cause that method to change signatures?</p>
  
  <p>Thanks in advance.</p>