title: Async lambda to Expression<Func<Task>>
body: <p>It is widely known that I can convert ordinary lambda expression to <code>Expression&lt;T&gt;</code>:</p>
  
  <pre><code>Func&lt;int&gt; foo1 = () =&gt; 0; // delegate compiles fine
  Expression&lt;Func&lt;int&gt;&gt; foo2 = () =&gt; 0; // expression compiles fine
  </code></pre>
  
  <p>How could I do the same with async lambda? I've tried the following analogy:</p>
  
  <pre><code>Func&lt;Task&lt;int&gt;&gt; bar1 = async () =&gt; 0; // also compiles (async lambda example)
  Expression&lt;Func&lt;Task&lt;int&gt;&gt;&gt; bar2 = async () =&gt; 0; // CS1989: Async lambda expressions cannot be converted to expression trees
  </code></pre>
  
  <p>Is there any workaround possible?</p>