Boo.Lang.Compiler.Steps.ProcessMethodBodiesWithDuckTyping.AddResolvedNamedArgumentToEval C# (CSharp) Метод

AddResolvedNamedArgumentToEval() защищенный Метод

protected AddResolvedNamedArgumentToEval ( MethodInvocationExpression eval, Boo.Lang.Compiler.Ast.ExpressionPair pair, ReferenceExpression instance ) : void
eval Boo.Lang.Compiler.Ast.MethodInvocationExpression
pair Boo.Lang.Compiler.Ast.ExpressionPair
instance Boo.Lang.Compiler.Ast.ReferenceExpression
Результат void
        protected override void AddResolvedNamedArgumentToEval(MethodInvocationExpression eval, ExpressionPair pair, ReferenceExpression instance)
        {
            if (!TypeSystemServices.IsQuackBuiltin(pair.First))
            {
                base.AddResolvedNamedArgumentToEval(eval, pair, instance);
                return;
            }

            MemberReferenceExpression memberRef = new MemberReferenceExpression(
                pair.First.LexicalInfo,
                instance.CloneNode(),
                ((ReferenceExpression)pair.First).Name);
            BindQuack(memberRef);

            eval.Arguments.Add(
                CodeBuilder.CreateAssignment(
                    pair.First.LexicalInfo,
                    memberRef,
                    pair.Second));
        }