/// <summary> /// Promote the left and right operand types /// </summary> /// <param name="binaryOperatorKind">the operator kind</param> /// <param name="leftNode">the left operand</param> /// <param name="rightNode">the right operand</param> /// <param name="typeReference">type reference for the result BinaryOperatorNode.</param> public virtual void PromoteBinaryOperandTypes( BinaryOperatorKind binaryOperatorKind, ref SingleValueNode leftNode, ref SingleValueNode rightNode, out IEdmTypeReference typeReference) { typeReference = null; BinaryOperatorBinder.PromoteOperandTypes(binaryOperatorKind, ref leftNode, ref rightNode, typeFacetsPromotionRules); }
/// <summary> /// Binds a binary operator token. /// </summary> /// <param name="binaryOperatorToken">The binary operator token to bind.</param> /// <returns>The bound binary operator token.</returns> protected virtual QueryNode BindBinaryOperator(BinaryOperatorToken binaryOperatorToken) { BinaryOperatorBinder binaryOperatorBinder = new BinaryOperatorBinder(this.Bind, this.BindingState.Configuration.Resolver); return(binaryOperatorBinder.BindBinaryOperator(binaryOperatorToken)); }