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

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

private CheckParameterTypesStrictly ( IMethod method, Boo.Lang.Compiler.Ast.ExpressionCollection args ) : bool
method IMethod
args Boo.Lang.Compiler.Ast.ExpressionCollection
Результат bool
        bool CheckParameterTypesStrictly(IMethod method, ExpressionCollection args)
        {
            IParameter[] parameters = method.GetParameters();
            for (int i=0; i<args.Count; ++i)
            {
                IType expressionType = GetExpressionType(args[i]);
                IType parameterType = parameters[i].Type;
                if (!IsAssignableFrom(parameterType, expressionType) &&
                    !(TypeSystemServices.IsNumber(expressionType) && TypeSystemServices.IsNumber(parameterType))
                    && TypeSystemServices.FindImplicitConversionOperator(expressionType,parameterType) == null)
                {
                    return false;
                }
            }
            return true;
        }
ProcessMethodBodies