Может ли компилятор / среда выполнения переупорядочивать или встроенные деревья выражений?
Если я получил следующий код:
public static int SomeSimpleMethod(int x) {
return x;
}
void Main() {
Expression<Func<bool>> expr = () => SomeSimpleMethod(2) == 3;
}
Может expr
затем включить что-то кроме (в псевдокод)
Expression.Lambda
Expression.Equals
Expression.Call
Expression.Constant
Expression.Constant
Редактировать
Я просто анализирую дерево выражений, чтобы найти некоторые элементы, такие как имя вызова метода ("SomeSimpleMethod").Лямбда никогда не будет выполнена, поэтому я просто хочу убедиться, что вызов метода не оптимизирован вне дерева выражений.