private bool EqualsSpecializedCore(NativeSpecializedType left, NativeSpecializedType right)
        {
            switch (left.Kind)
            {
            case NativeSymbolKind.BitVectorType:
                NativeBitVector bt1 = (NativeBitVector)left;
                NativeBitVector bt2 = (NativeBitVector)right;
                return(bt1.Size == bt2.Size);

            case NativeSymbolKind.BuiltinType:
                NativeBuiltinType b1 = (NativeBuiltinType)left;
                NativeBuiltinType b2 = (NativeBuiltinType)right;
                return(b1.BuiltinType == b2.BuiltinType);

            default:
                return(false);
            }
        }
Exemplo n.º 2
0
        public CodeTypeReference GenerateSpecializedTypeReferenceImpl(NativeSpecializedType specialNt, ref string comment)
        {
            ThrowIfNull(specialNt);

            switch (specialNt.Kind)
            {
            case NativeSymbolKind.BitVectorType:
                NativeBitVector bitNt = (NativeBitVector)specialNt;
                comment = string.Format("bitvector : {0}", bitNt.Size);
                return(new CodeTypeReference(GetManagedNameForBitVector(bitNt)));

            case NativeSymbolKind.BuiltinType:
                NativeBuiltinType builtNt = (NativeBuiltinType)specialNt;
                Type realType             = builtNt.ManagedType;
                comment += builtNt.DisplayName;
                return(new CodeTypeReference(realType));

            default:
                Contract.ThrowInvalidEnumValue(specialNt.Kind);
                return(null);
            }
        }