private void TransformOutParametersToReturnValues()

in SharpGen/Transform/MethodTransform.cs [161:189]


        private void TransformOutParametersToReturnValues(CsCallable method)
        {
            if (method.HasReturnTypeValue)
                return;

            var outCsParameter = method.Parameters.Single(x => x.IsOut && x.Relations.Count == 0);

            if (outCsParameter.IsArray)
                return;

            var outCppParameter = outCsParameter.CppElement;

            if (outCppParameter is not CppParameter {Attribute: var attribute})
                return;

            if ((attribute & ParamAttribute.Buffer) == ParamAttribute.Buffer)
                return;

            if ((attribute & ParamAttribute.Fast) == ParamAttribute.Fast)
                return;

            if ((attribute & ParamAttribute.Value) == ParamAttribute.Value)
                return;

            outCsParameter.MarkUsedAsReturn();

            if (outCppParameter.Rule.ParameterUsedAsReturnType == true)
                Logger.Message("Parameter [{0}] has redundant return rule specification", outCppParameter.FullName);
        }