IronRuby.Builtins.RubyMethod.BuildInvoke C# (CSharp) Method

BuildInvoke() private method

private BuildInvoke ( MetaObjectBuilder metaBuilder, CallArguments args ) : void
metaBuilder IronRuby.Runtime.Calls.MetaObjectBuilder
args IronRuby.Runtime.Calls.CallArguments
return void
        internal virtual void BuildInvoke(MetaObjectBuilder/*!*/ metaBuilder, CallArguments/*!*/ args) {
            Assert.NotNull(metaBuilder, args);
            Debug.Assert(args.Target == this);

            // first argument must be this method:
            metaBuilder.AddRestriction(Ast.Equal(args.TargetExpression, AstUtils.Constant(this)));

            // set the target (becomes self in the called method):
            args.SetTarget(AstUtils.Constant(_target, CompilerHelpers.GetVisibleType(_target)), _target);

            _info.BuildCall(metaBuilder, args, _name);
        }