I don't understand what is happening here:
Both of these lines compile:
 Func<object> func = () => new object();
 Expression<Func<object>> expression = ()=>new object();
But this doesn't:
 expression = func;
There isn't an implicit operator on LambdaExpression or Expression<TDelegate> that converts a delegate to the expression, so something else must be happening to make the assignment work.  What is it?
 
     
    