Consider this sample pseudo C#/IL:
public static T Sqrt<T>(T value) { ldarg.0 conv.r8 call double System.Math.Sqrt(double) ret }You'd expect some sort of error, right? The return type is T, but the returned value is a double.
Turns out it runs fine. What's more, you don't even need the conv.r8 instruction.
I have to say, IL's flexibility is amazing.
YellPika
Add a comment