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?