Boo.Lang.Compiler.Steps.ProcessMethodBodies.AddInferredClosureParameterTypes C# (CSharp) Метод

AddInferredClosureParameterTypes() приватный Метод

private AddInferredClosureParameterTypes ( BlockExpression node, ICallableType callableType ) : void
node Boo.Lang.Compiler.Ast.BlockExpression
callableType ICallableType
Результат void
        private void AddInferredClosureParameterTypes(BlockExpression node, ICallableType callableType)
        {
            IParameter[] parameters = (callableType == null ? null : callableType.GetSignature().Parameters);
            for (int i = 0; i < node.Parameters.Count; i++)
            {
                ParameterDeclaration pd = node.Parameters[i];
                if (pd.Type != null) continue;

                IType inferredType;
                if (parameters != null && i < parameters.Length)
                {
                    inferredType = parameters[i].Type;
                }
                else if (pd.IsParamArray)
                {
                    inferredType = TypeSystemServices.ObjectArrayType;
                }
                else
                {
                    inferredType = TypeSystemServices.ObjectType;
                }

                pd.Type = CodeBuilder.CreateTypeReference(inferredType);
            }
        }
ProcessMethodBodies