Rewrite : Modify RewriteModernObjC::SynthMessageExpr

Hi,

So I am progressing slowly with my rewriting project to convert objc to c# but now I am able at least
to transform method declaration from this

- (void) setAlternateTitle: (NSString *)aString
{
   [_cell setAlternateTitle: aString];
   [self setNeedsDisplay: YES];
}

to this:

public virtual void setAlternateTitle_(NSString *aString) {
   [self->_cell setAlternateTitle:aString];
   [self setNeedsDisplay:((BOOL)1)];
}

there is still the * after NSString after the parameter but I think I will manage to remove it.
However rewrite the objc syntax for function call is a lot tricky because in the original implementation
that I have disabled it was generating something like :

static void _I_NSButton_setAlternateTitle_(NSButton * self, SEL _cmd, NSString *aString) {
   ((void (*)(id, SEL, NSString *))(void *)objc_msgSend)((id)(*(id *)((char *)self + OBJC_IVAR_$_NSControl$_cell)), sel_registerName("setAlternateTitle:"), (NSString *)aString);
   ((void (*)(id, SEL, BOOL))(void *)objc_msgSend)((id)self, sel_registerName("setNeedsDisplay:"), ((BOOL)1));
}

The method that rewrite this part is located inside RewriteModernObjC::SynthMessageExpr but it's a presently a bit too tricky for
me to understand how to change it to obtain :

_cell.setAlternateTitle(aString);
this.setNeedsDisplay(true);

I am also ready to hire someone just for this task, if this is something that can interest you please contact me at vrichomme A.T smartmobili D.O.T com.
Please note that I might not be able to answer you during the next 10 days.

Thanks