private static bool IsNullConstant(Expression e) { var c = e as ConstantExpression; return c != null && c.Value == null; }
private static Expression GetNonNullSide(Expression a, Expression b) { if (a.IsNullConstant() || a.IsFalseConstant()) return b; if (b.IsNullConstant() || b.IsFalseConstant()) return a; return null; }