public void M() {
int a = 6;
Test(a, "");
}
public void Test(double x, string y) {}
The construction above compiles to this
IL_0000: ldc.i4.6
IL_0001: stloc.0
IL_0002: ldarg.0
IL_0003: ldloc.0
IL_0004: conv.r8
IL_0005: ldstr ""
IL_000a: call instance void C::Test(float64, string)
Add support for such conversions