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); } }
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); } }