424 references to CorElementType
Microsoft.Diagnostics.DataContractReader.Abstractions (6)
Contracts\IRuntimeTypeSystem.cs (6)
178bool IsCorElementTypeObjRef(CorElementType elementType) => throw new NotImplementedException(); 240CorElementType GetSignatureCorElementType(ITypeHandle typeHandle) => throw new NotImplementedException(); 246CorElementType GetInternalCorElementType(ITypeHandle typeHandle) => throw new NotImplementedException(); 257ITypeHandle? GetConstructedType(ITypeHandle? typeHandle, CorElementType corElementType, int rank, ImmutableArray<ITypeHandle?> typeArguments, SignatureCallingConvention callConv = SignatureCallingConvention.Default) => throw new NotImplementedException(); 258ITypeHandle GetPrimitiveType(CorElementType typeCode) => throw new NotImplementedException(); 343CorElementType GetFieldDescType(TargetPointer fieldDescPointer) => throw new NotImplementedException();
Microsoft.Diagnostics.DataContractReader.Contracts (171)
Contracts\CallingConvention\ArgumentLocation.cs (1)
11public CorElementType ElementType { get; init; }
Contracts\CallingConvention\CallingConvention_1.cs (30)
15using CdacCorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 73public CdacCorElementType OutermostKind { get; init; } 157ElementType = isValueTypeThis ? CdacCorElementType.ValueType : CdacCorElementType.Class, 169ElementType = CdacCorElementType.I, 179ElementType = CdacCorElementType.Object, 194ElementType = CdacCorElementType.I, 206CdacCorElementType elemType; 210elemType = CdacCorElementType.Byref; 212else if (paramInfo[argIndex].OutermostKind != default(CdacCorElementType)) 247bool passedByRef = elemType == CdacCorElementType.ValueType 259if (elemType == CdacCorElementType.ValueType && !passedByRef) 414return new CdacTypeHandle(rts.GetPrimitiveType(CdacCorElementType.I), _target); 429public CdacCorElementType OutermostKind { get; init; } 465OutermostKind = CdacCorElementType.Byref }; 469OutermostKind = CdacCorElementType.Ptr }; 473OutermostKind = CdacCorElementType.Array }; 477OutermostKind = CdacCorElementType.SzArray }; 493CdacCorElementType kind = default; 665switch ((CorElementType)arg.ElementType) 667case CorElementType.Class: 668case CorElementType.String: 669case CorElementType.Object: 670case CorElementType.Array: 671case CorElementType.SzArray: 675case CorElementType.Byref: 679case CorElementType.ValueType: 887CorElementType fieldType; 904if (fieldType == CorElementType.Byref) 908else if (fieldType == CorElementType.ValueType)
Contracts\CallingConvention\CdacTypeHandle.cs (18)
10using CdacCorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 32private readonly CdacCorElementType _kindOverride; 39public CdacTypeHandle(CdacITypeHandle? typeHandle, Target target, CdacCorElementType kindOverride) 56=> _kindOverride == CdacCorElementType.Ptr 68if (_kindOverride is CdacCorElementType.Ptr 69or CdacCorElementType.Byref 70or CdacCorElementType.SzArray 71or CdacCorElementType.Array) 105CdacCorElementType cdacType = Rts.GetInternalCorElementType(_typeHandle); 204CdacCorElementType fieldType = Rts.GetFieldDescType(singleFieldType.Value); 207case CdacCorElementType.I: 208case CdacCorElementType.U: 209case CdacCorElementType.I4: 210case CdacCorElementType.U4: 211case CdacCorElementType.Ptr: 212case CdacCorElementType.FnPtr: 217case CdacCorElementType.ValueType: 242private static SharedCorElementType MapCorElementType(CdacCorElementType cdacType)
Contracts\ManagedTypeSource_1.cs (32)
140CorElementType type = rts.GetFieldDescType(fieldDescAddr); 141bool isGC = type is CorElementType.Class or CorElementType.ValueType; 175CorElementType type = rts.GetFieldDescType(fieldDescAddr); 176bool isGC = type is CorElementType.Class or CorElementType.ValueType; 239CorElementType elementType = rts.GetFieldDescType(fieldDescAddr); 353/// Maps an ECMA-335 <see cref="CorElementType"/> to a descriptor-type-name string consumed 357private static string? MapCorElementTypeToDescriptorName(CorElementType type) => type switch 359CorElementType.Boolean => "bool", 360CorElementType.I1 => "int8", 361CorElementType.U1 => "uint8", 362CorElementType.Char or CorElementType.U2 => "uint16", 363CorElementType.I2 => "int16", 364CorElementType.I4 => "int32", 365CorElementType.U4 => "uint32", 366CorElementType.I8 => "int64", 367CorElementType.U8 => "uint64", 368CorElementType.I => "nint", 369CorElementType.U => "nuint", 370CorElementType.String 371or CorElementType.Ptr 372or CorElementType.Byref 373or CorElementType.Class 374or CorElementType.Array 375or CorElementType.SzArray 376or CorElementType.GenericInst 377or CorElementType.Object 378or CorElementType.Var 379or CorElementType.MVar 380or CorElementType.FnPtr => "pointer",
Contracts\Object_1.cs (4)
85CorElementType corType = typeSystemContract.GetSignatureCorElementType(typeHandle); 86Debug.Assert(corType is CorElementType.Array or CorElementType.SzArray); 87if (corType == CorElementType.Array)
Contracts\RuntimeMutableTypeSystem_1.cs (6)
99CorElementType fieldType = _target.Contracts.RuntimeTypeSystem.GetFieldDescType(encFieldDescPointer); 100return fieldType is CorElementType.ValueType or CorElementType.Class 144CorElementType fieldType = rts.GetFieldDescType(encFieldDescPointer); 145if (fieldType == CorElementType.ValueType) 153else if (fieldType == CorElementType.Class)
Contracts\RuntimeTypeSystem_1.cs (74)
92public TypeKey(ITypeHandle? typeHandle, CorElementType elementType, int rank, ImmutableArray<ITypeHandle?> typeArgs, SignatureCallingConvention callConv = SignatureCallingConvention.Default) 101public CorElementType ElementType { get; } 639public bool IsCorElementTypeObjRef(CorElementType elementType) 640=> elementType is CorElementType.Class 641or CorElementType.Object 642or CorElementType.String 643or CorElementType.Array 644or CorElementType.SzArray; 716CorElementType ft = ((IRuntimeTypeSystem)this).GetFieldDescType(firstField); 719case CorElementType.R4: 722case CorElementType.R8: 725case CorElementType.ValueType: 799CorElementType argType = ((IRuntimeTypeSystem)this).GetSignatureCorElementType(instantiation[0]); 812private static bool IsCorNumericalType(CorElementType t) 813=> (t >= CorElementType.I1 && t <= CorElementType.R8) 814|| t == CorElementType.I 815|| t == CorElementType.U; 1071CorElementType type = GetSignatureCorElementType(typeHandle); 1072if (type == CorElementType.Var || type == CorElementType.MVar) 1080else if (type == CorElementType.FnPtr) 1106CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1109case CorElementType.ValueType: 1110case CorElementType.Byref: 1111case CorElementType.Ptr: 1118public CorElementType GetSignatureCorElementType(ITypeHandle typeHandle) 1127return CorElementType.Array; 1129return CorElementType.SzArray; 1133return CorElementType.ValueType; 1135return (CorElementType)GetClassData(typeHandle).InternalCorElementType; 1137return CorElementType.Class; 1143return (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1149public CorElementType GetInternalCorElementType(ITypeHandle typeHandle) 1151CorElementType sigType = GetSignatureCorElementType(typeHandle); 1152if (sigType == CorElementType.ValueType && typeHandle.IsMethodTable()) 1154CorElementType internalType = (CorElementType)GetClassData(typeHandle).InternalCorElementType; 1155if (internalType != CorElementType.ValueType) 1172return (CorElementType)(typeDesc.TypeAndFlags & 0xFF) == CorElementType.ValueType; 1238CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1241case CorElementType.ValueType: 1242case CorElementType.Byref: 1243case CorElementType.Ptr: 1281private bool ArrayPtrMatch(ITypeHandle elementType, CorElementType corElementType, int rank, ITypeHandle potentialMatch) 1286(corElementType == CorElementType.SzArray || corElementType == CorElementType.Byref || 1287corElementType == CorElementType.Ptr || (rank == typeHandleRank)); 1322ITypeHandle? IRuntimeTypeSystem.GetConstructedType(ITypeHandle? typeHandle, CorElementType corElementType, int rank, ImmutableArray<ITypeHandle?> typeArguments, SignatureCallingConvention callConv) 1324if (typeHandle is null && corElementType != CorElementType.FnPtr) 1335if (corElementType == CorElementType.FnPtr) 1337else if (corElementType == CorElementType.GenericInst) 1347if (corElementType == CorElementType.GenericInst) 1355else if (corElementType == CorElementType.FnPtr) 1444ITypeHandle IRuntimeTypeSystem.GetPrimitiveType(CorElementType typeCode) 1462CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1465case CorElementType.MVar: 1466case CorElementType.Var: 1485CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1486if (elemType != CorElementType.FnPtr) 1501CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1502return elemType == CorElementType.Ptr; 2381CorElementType IRuntimeTypeSystem.GetFieldDescType(TargetPointer fieldDescPointer) 2385return (CorElementType)((fieldDesc.DWord2 & (uint)FieldDescFlags2.TypeMask) >> TYPE_MASK_OFFSET); 2513CorElementType type = ((IRuntimeTypeSystem)this).GetFieldDescType(fieldDescPointer); 2515if (type == CorElementType.Class || type == CorElementType.ValueType) 2549if (unboxValueTypes && type == CorElementType.ValueType && !isRVA)
Contracts\Signature\SignatureTypeProvider.cs (6)
29=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.Array, shape.Rank, []); 32=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.Byref, 0, []); 38=> _runtimeTypeSystem.GetConstructedType(genericType, CorElementType.GenericInst, 0, typeArguments); 67=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.Ptr, 0, []); 70=> _runtimeTypeSystem.GetPrimitiveType((CorElementType)typeCode); 73=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.SzArray, 1, []);
Microsoft.Diagnostics.DataContractReader.Legacy (247)
ClrDataFrame.cs (23)
615private static (uint Flags, int Size) MapCorElementTypeToFlags(CorElementType elementType) 619CorElementType.Boolean => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1), 620CorElementType.I1 or CorElementType.U1 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1), 621CorElementType.Char or CorElementType.I2 or CorElementType.U2 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 2), 622CorElementType.I4 or CorElementType.U4 or CorElementType.R4 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 4), 623CorElementType.I8 or CorElementType.U8 or CorElementType.R8 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 8), 624CorElementType.I or CorElementType.U => ((uint)ClrDataValueFlag.IS_PRIMITIVE, -1), 625CorElementType.String or CorElementType.Object or CorElementType.Class 626or CorElementType.SzArray or CorElementType.Array => ((uint)ClrDataValueFlag.IS_REFERENCE, -1), 627CorElementType.Ptr => ((uint)ClrDataValueFlag.IS_POINTER, -1), 628CorElementType.ValueType => ((uint)ClrDataValueFlag.IS_VALUE_TYPE, -1), 774CorElementType elementType = rts.GetSignatureCorElementType(resolvedType);
Dbi\DacDbiImpl.cs (75)
3163CorElementType type = rts.GetFieldDescType(fdPtr); 3235private static bool IsPrimitiveType(CorElementType type) 3237return (type < CorElementType.Ptr) 3238|| type == CorElementType.I 3239|| type == CorElementType.U; 3351switch ((CorElementType)ReadLittleEndian(cdac->elementType)) 3353case CorElementType.Class: 3354case CorElementType.ValueType: 3362case CorElementType.Array: 3363case CorElementType.SzArray: 3375case CorElementType.Ptr: 3376case CorElementType.Byref: 3386case CorElementType.FnPtr: 3484CorElementType et = (CorElementType)ReadLittleEndian(pTypeData->elementType); 3487case CorElementType.Array: 3488case CorElementType.SzArray: 3491case CorElementType.Ptr: 3492case CorElementType.Byref: 3495case CorElementType.Class: 3496case CorElementType.ValueType: 3499case CorElementType.FnPtr: 3529CorElementType et = (CorElementType)ReadLittleEndian(pData->elementType); 3533case CorElementType.Array: 3534case CorElementType.SzArray: 3535case CorElementType.Ptr: 3536case CorElementType.Byref: 3537case CorElementType.FnPtr: 3543case CorElementType.Class: 3544case CorElementType.ValueType: 3572CorElementType et = (CorElementType)ReadLittleEndian(pTopLevel->elementType); 3583CorElementType et = (CorElementType)ReadLittleEndian(pTopLevel->elementType); 3602return rts.GetConstructedType(typeConstructor, CorElementType.GenericInst, 0, builder.MoveToImmutable()) 3615return rts.GetConstructedType(null, CorElementType.FnPtr, 0, builder.MoveToImmutable()) 4047ITypeHandle typeHandle = rts.GetPrimitiveType((CorElementType)simpleType); 4370if (rts.GetSignatureCorElementType(th) == CorElementType.Array) 4445WriteLittleEndian(ref pObjTypeData->elementType, (int)CorElementType.String); 5387CorElementType signatureType = rts.GetSignatureCorElementType(fieldTypeHandle); 5388if (signatureType == CorElementType.Byref) 5390corField->fieldType = (int)CorElementType.Byref; 5392corField->id.token1 = rts.GetPrimitiveType(CorElementType.I).Address.Value; 5398ITypeHandle mtHandle = (signatureType == CorElementType.Ptr || signatureType == CorElementType.FnPtr) 5399? rts.GetPrimitiveType(CorElementType.U) 5476CorElementType componentType = rts.IsString(typeHandle) 5477? CorElementType.String 5524ITypeHandle charTypeHandle = rts.GetPrimitiveType(CorElementType.Char); 5527pLayout->componentType = CorElementType.Char; 5541CorElementType componentType = rts.IsString(componentTypeHandle) ? CorElementType.String : rts.GetInternalCorElementType(componentTypeHandle); 6415CorElementType elementType = GetElementType(rts, typeHandle); 6420case CorElementType.Array: 6421case CorElementType.SzArray: 6425case CorElementType.Ptr: 6426case CorElementType.Byref: 6430case CorElementType.ValueType: 6433WriteLittleEndian(ref pTypeInfo->elementType, (int)CorElementType.Class); 6438case CorElementType.Class: 6442case CorElementType.FnPtr: 6449WriteLittleEndian(ref pTypeInfo->elementType, (int)CorElementType.Class); 6459private static CorElementType GetElementType(IRuntimeTypeSystem rts, ITypeHandle? typeHandle) 6462return CorElementType.Void; 6465return CorElementType.String; 6468return CorElementType.Object; 6553CorElementType elementType = GetElementType(rts, typeHandle); 6558case CorElementType.Array: 6559case CorElementType.SzArray: 6560case CorElementType.FnPtr: 6561case CorElementType.Ptr: 6562case CorElementType.Byref: 6567case CorElementType.Class: 6568case CorElementType.ValueType:
Dbi\IDacDbiInterface.cs (2)
7using CorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 286public CorElementType componentType;
Dbi\TypeDataWalk.cs (25)
64CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(p->data.elementType); 67case CorElementType.Array: 68case CorElementType.SzArray: 71case CorElementType.Ptr: 72case CorElementType.Byref: 75case CorElementType.Class: 76case CorElementType.ValueType: 83case CorElementType.FnPtr: 98CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(p->data.elementType); 101case CorElementType.Ptr: 104case CorElementType.Class: 105case CorElementType.ValueType: 108case CorElementType.FnPtr: 135return _rts.GetConstructedType(typeDef, CorElementType.GenericInst, 0, builder.MoveToImmutable()); 143CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 153CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 165CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 169if ((typeDef is not null && _rts.IsValueType(typeDef)) || et == CorElementType.ValueType) 194return _rts.GetConstructedType(null, CorElementType.FnPtr, 0, builder.MoveToImmutable()); 197private ITypeHandle ObjRefOrPrimitiveTypeArg(DebuggerIPCE_TypeArgData* pInfo, CorElementType elementType)
ISOSDacInterface.cs (3)
7using CorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 426public CorElementType Type; 427public CorElementType sigType; // ELEMENT_TYPE_XXX from signature. We need this to display pretty name for String in minidump's case
MetaDataImportImpl.cs (4)
627*pdwCPlusTypeFlag = (uint)CorElementType.Void; 645*pcchValue = (uint)constant.TypeCode == (uint)CorElementType.String ? (uint)valueReader.Length / sizeof(char) : (uint)valueReader.Length; 1567*pdwCPlusTypeFlag = (uint)CorElementType.Void; 1585*pcchValue = (uint)constant.TypeCode == (uint)CorElementType.String ? (uint)valueReader.Length / sizeof(char) : (uint)valueReader.Length;
SigFormat.cs (67)
107switch ((CorElementType)signature.ReadByte()) 109case CorElementType.Void: stringBuilder.Append("Void"); return; 110case CorElementType.Boolean: stringBuilder.Append("Boolean"); return; 111case CorElementType.I: stringBuilder.Append("IntPtr"); return; 112case CorElementType.U: stringBuilder.Append("UIntPtr"); return; 113case CorElementType.I1: stringBuilder.Append("SByte"); return; 114case CorElementType.U1: stringBuilder.Append("Byte"); return; 115case CorElementType.I2: stringBuilder.Append("Int16"); return; 116case CorElementType.U2: stringBuilder.Append("UInt16"); return; 117case CorElementType.I4: stringBuilder.Append("Int32"); return; 118case CorElementType.U4: stringBuilder.Append("UInt32"); return; 119case CorElementType.I8: stringBuilder.Append("Int64"); return; 120case CorElementType.U8: stringBuilder.Append("UInt64"); return; 121case CorElementType.R4: stringBuilder.Append("Single"); return; 122case CorElementType.R8: stringBuilder.Append("Double"); return; 123case CorElementType.Char: stringBuilder.Append("Char"); return; 125case CorElementType.Object: stringBuilder.Append("System.Object"); return; 126case CorElementType.String: stringBuilder.Append("System.String"); return; 128case CorElementType.ValueType: 129case CorElementType.Class: 157case CorElementType.Internal: 163case CorElementType.FnPtr: 164case CorElementType.Ptr: 167case CorElementType.ValueType: 174case CorElementType.Byref: 175case CorElementType.Array: 197case CorElementType.TypedByRef: 201case CorElementType.Byref: 206case CorElementType.Ptr: 211case CorElementType.MVar: 223case CorElementType.Var: 235case CorElementType.GenericInst: 248case CorElementType.SzArray: 253case CorElementType.Array: 274case CorElementType.FnPtr: 294case CorElementType.CModOpt: 295case CorElementType.CModReqd: 299case CorElementType.CModInternal: 320CorElementType corElementType = runtimeTypeSystem.GetSignatureCorElementType(typeHandle); 321if (corElementType == CorElementType.ValueType && runtimeTypeSystem.HasTypeParam(typeHandle)) 328case CorElementType.Void: stringBuilder.Append("Void"); return; 329case CorElementType.Boolean: stringBuilder.Append("Boolean"); return; 330case CorElementType.I: stringBuilder.Append("IntPtr"); return; 331case CorElementType.U: stringBuilder.Append("UIntPtr"); return; 332case CorElementType.I1: stringBuilder.Append("SByte"); return; 333case CorElementType.U1: stringBuilder.Append("Byte"); return; 334case CorElementType.I2: stringBuilder.Append("Int16"); return; 335case CorElementType.U2: stringBuilder.Append("UInt16"); return; 336case CorElementType.I4: stringBuilder.Append("Int32"); return; 337case CorElementType.U4: stringBuilder.Append("UInt32"); return; 338case CorElementType.I8: stringBuilder.Append("Int64"); return; 339case CorElementType.U8: stringBuilder.Append("UInt64"); return; 340case CorElementType.R4: stringBuilder.Append("Single"); return; 341case CorElementType.R8: stringBuilder.Append("Double"); return; 342case CorElementType.Char: stringBuilder.Append("Char"); return; 344case CorElementType.Object: stringBuilder.Append("System.Object"); return; 345case CorElementType.String: stringBuilder.Append("System.String"); return; 347case CorElementType.ValueType: 348case CorElementType.Class: 379case CorElementType.TypedByRef: 383case CorElementType.Byref: 388case CorElementType.Ptr: 393case CorElementType.MVar: 394case CorElementType.Var: 402case CorElementType.SzArray: 407case CorElementType.Array: 419case CorElementType.FnPtr:
SOSDacImpl.cs (8)
1062CorElementType fieldDescType = rtsContract.GetFieldDescType(fieldDescTargetPtr); 1088data->MTOfType = rtsContract.GetPrimitiveType(CorElementType.U).Address.ToClrDataAddress(_target); 1114CorElementType typeCode; 1119typeCode = (CorElementType)blobReader.ReadByte(); 1121} while (typeCode is CorElementType.CModReqd or CorElementType.CModOpt); // eat custom modifiers 1123if (typeCode is CorElementType.Class or CorElementType.ValueType)
TypeHandleExtensions.cs (33)
65CorElementType kind = runtimeTypeSystem.GetInternalCorElementType(typeHandle); 67if (kind is CorElementType.Byref or CorElementType.Ptr or CorElementType.SzArray or CorElementType.Array) 73if (kind is CorElementType.Var or CorElementType.MVar) 83private static void AddNameSuffix(StringBuilder result, CorElementType kind, uint rank) 87case CorElementType.Byref: 90case CorElementType.Ptr: 93case CorElementType.SzArray: 96case CorElementType.Array: 111case CorElementType.Var: 115case CorElementType.MVar: 119case CorElementType.FnPtr: 125CorElementType.Void => "Void", 126CorElementType.Boolean => "Boolean", 127CorElementType.Char => "Char", 128CorElementType.I1 => "SByte", 129CorElementType.U1 => "Byte", 130CorElementType.I2 => "Int16", 131CorElementType.U2 => "UInt16", 132CorElementType.I4 => "Int32", 133CorElementType.U4 => "UInt32", 134CorElementType.I8 => "Int64", 135CorElementType.U8 => "UInt64", 136CorElementType.R4 => "Single", 137CorElementType.R8 => "Double", 138CorElementType.String => "String", 139CorElementType.TypedByRef => "TypedReference", 140CorElementType.I => "IntPtr", 141CorElementType.U => "UIntPtr", 142CorElementType.Object => "Object",
TypeNameBuilder.cs (7)
212var elemType = typeSystemContract.GetSignatureCorElementType(typeHandle); 213if (elemType != Contracts.CorElementType.ValueType) 564private static void AppendParamTypeQualifier(ref TypeNameBuilder tnb, CorElementType kind, uint rank) 568case CorElementType.Byref: 571case CorElementType.Ptr: 574case CorElementType.SzArray: 577case CorElementType.Array: