private static NumberFlavor RuntimeFlavor(NumberFlavor flavor, bool forStack) { switch (flavor) { case NumberFlavor.Int8: case NumberFlavor.Int16: return(forStack ? NumberFlavor.Int32 : flavor); case NumberFlavor.Int32: case NumberFlavor.Int64: case NumberFlavor.IntNative: case NumberFlavor.Double: return(flavor); case NumberFlavor.UInt8: case NumberFlavor.Boolean: return(forStack ? NumberFlavor.Int32 : NumberFlavor.Int8); case NumberFlavor.UInt16: case NumberFlavor.Char: return(forStack ? NumberFlavor.Int32 : NumberFlavor.Int16); case NumberFlavor.UInt32: return(NumberFlavor.Int32); case NumberFlavor.UInt64: return(NumberFlavor.Int64); case NumberFlavor.UIntNative: return(NumberFlavor.IntNative); case NumberFlavor.Single: return(forStack ? NumberFlavor.Double : flavor); default: throw new ArgumentOutOfRangeException(); } }
public static TypeRef NumberFrom(Global global, NumberFlavor flavor) { return(new NamedTypeRef(global.NumberFlavorToQualifiedTypeName[flavor])); }