/// <summary> /// Determines whether the node may be evaluated locally and whether /// it is a variable. Assumes that all children are also variable client expressions. /// </summary> private bool IsClosureExpression(Expression expression) { if (null == expression) { return(false); } if (IsImmutable(expression)) { return(true); } if (ExpressionType.MemberAccess == expression.NodeType) { MemberExpression member = (MemberExpression)expression; if (member.Member.MemberType == MemberTypes.Property) { return(ExpressionConverter.CanFuncletizePropertyInfo((PropertyInfo)member.Member)); } return(true); } return(false); }