Ejemplo n.º 1
0
        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();
            }
        }
Ejemplo n.º 2
0
 public static TypeRef NumberFrom(Global global, NumberFlavor flavor)
 {
     return(new NamedTypeRef(global.NumberFlavorToQualifiedTypeName[flavor]));
 }