public virtual Expression ConvertResult (ResolveContext ec, Binary b) { b.type = ReturnType; b.left = Convert.ImplicitConversion (ec, b.left, left, b.left.Location); b.right = Convert.ImplicitConversion (ec, b.right, right, b.right.Location); // // A user operators does not support multiple user conversions, but decimal type // is considered to be predefined type therefore we apply predefined operators rules // and then look for decimal user-operator implementation // if (left == TypeManager.decimal_type) return b.ResolveUserOperator (ec, b.left.Type, b.right.Type); return b; }