private static RuleGenerator/*!*/ CreateSetter(int index) {
return delegate(MetaObjectBuilder/*!*/ metaBuilder, CallArguments/*!*/ args, string/*!*/ name) {
var actualArgs = RubyOverloadResolver.NormalizeArguments(metaBuilder, args, 1, 1);
if (!metaBuilder.Error) {
metaBuilder.Result = Methods.RubyStruct_SetValue.OpCall(
Ast.Convert(args.TargetExpression, typeof(RubyStruct)),
AstUtils.Constant(index),
AstUtils.Box(actualArgs[0].Expression)
);
}
};
}