IronRuby.Runtime.Calls.RubyEventInfo.BuildCallNoFlow C# (CSharp) Method

BuildCallNoFlow() private method

private BuildCallNoFlow ( MetaObjectBuilder metaBuilder, CallArguments args, string name ) : void
metaBuilder MetaObjectBuilder
args CallArguments
name string
return void
        internal override void BuildCallNoFlow(MetaObjectBuilder/*!*/ metaBuilder, CallArguments/*!*/ args, string/*!*/ name) {
            // TODO: splat, rhs, ...
            if (args.Signature.ArgumentCount == 0) {
                if (args.Signature.HasBlock) {
                    metaBuilder.Result = Methods.HookupEvent.OpCall(
                        AstUtils.Constant(this),
                        args.TargetExpression,
                        Ast.Convert(args.GetBlockExpression(), typeof(Proc))
                    );
                } else {
                    metaBuilder.Result = Methods.CreateEvent.OpCall(
                        AstUtils.Constant(this),
                        args.TargetExpression,
                        AstUtils.Constant(name)
                    );
                }
            } else {
                metaBuilder.SetError(Methods.MakeWrongNumberOfArgumentsError.OpCall(Ast.Constant(args.Signature.ArgumentCount), Ast.Constant(0)));
            }
        }
    }