public override Expression Reduce()
{
if (CanReduce)
{
switch (Operand.NodeType)
{
case ExpressionType.Index:
return ReduceIndex();
case ExpressionType.MemberAccess:
return ReduceMember();
default:
Debug.Assert(Operand.NodeType == ExpressionType.Parameter);
return ReduceVariable();
}
}
return this;
}