Ejemplo n.º 1
0
        internal void MapParameters(bool reduceByRef)
        {
            if (reduceByRef)
            {
                _returnArgs = new List <int>();
                if (_overload.ReturnType != typeof(void))
                {
                    _returnArgs.Add(-1);
                }
            }

            BitArray specialParameters = _resolver.MapSpecialParameters(this);

            if (_instanceBuilder == null)
            {
                _instanceBuilder = new InstanceBuilder(-1);
            }

            foreach (var parameter in _overload.Parameters)
            {
                if (!IsSpecialParameter(specialParameters, parameter.Position))
                {
                    if (reduceByRef)
                    {
                        MapParameterReduceByRef(parameter);
                    }
                    else
                    {
                        MapParameter(parameter);
                    }
                }
            }

            _returnBuilder = MakeReturnBuilder(specialParameters);
        }