DataDictionary.Interpreter.Call.CheckActualAgainstFormal C# (CSharp) Метод

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

private CheckActualAgainstFormal ( Expression>.Dictionary actuals, Expression expression, Utils.Parameter parameter ) : void
actuals Expression>.Dictionary
expression Expression
parameter Utils.Parameter
Результат void
        private void CheckActualAgainstFormal(Dictionary<string, Expression> actuals, Expression expression,
            Parameter parameter)
        {
            actuals[parameter.Name] = expression;

            expression.CheckExpression();
            Type argumentType = expression.GetExpressionType();
            if (argumentType == null)
            {
                AddError("Cannot evaluate argument type for argument " + expression, RuleChecksEnum.SemanticAnalysisError);
            }
            else
            {
                if (parameter.Type == null)
                {
                    AddError("Cannot evaluate formal parameter type for " + parameter.Name, RuleChecksEnum.SemanticAnalysisError);
                }
                else
                {
                    if (!parameter.Type.Match(argumentType))
                    {
                        AddError("Invalid argument " + expression + " type, expected " +
                                 parameter.Type.FullName + ", actual " + argumentType.FullName, RuleChecksEnum.SemanticAnalysisError);
                    }
                }
            }
        }