408 references to CorElementType
Microsoft.Diagnostics.DataContractReader.Abstractions (6)
Contracts\IRuntimeTypeSystem.cs (6)
147bool IsCorElementTypeObjRef(CorElementType elementType) => throw new NotImplementedException(); 208CorElementType GetSignatureCorElementType(TypeHandle typeHandle) => throw new NotImplementedException(); 214CorElementType GetInternalCorElementType(TypeHandle typeHandle) => throw new NotImplementedException(); 225TypeHandle GetConstructedType(TypeHandle typeHandle, CorElementType corElementType, int rank, ImmutableArray<TypeHandle> typeArguments, SignatureCallingConvention callConv = SignatureCallingConvention.Default) => throw new NotImplementedException(); 226TypeHandle GetPrimitiveType(CorElementType typeCode) => throw new NotImplementedException(); 308CorElementType GetFieldDescType(TargetPointer fieldDescPointer) => throw new NotImplementedException();
Microsoft.Diagnostics.DataContractReader.Contracts (188)
Contracts\CallingConvention\ArgumentLocation.cs (1)
9public 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)) 227bool passedByRef = elemType == CdacCorElementType.ValueType 239if (elemType == CdacCorElementType.ValueType && !passedByRef) 417return new CdacTypeHandle(rts.GetPrimitiveType(CdacCorElementType.I), _target); 432public CdacCorElementType OutermostKind { get; init; } 468OutermostKind = CdacCorElementType.Byref }; 472OutermostKind = CdacCorElementType.Ptr }; 476OutermostKind = CdacCorElementType.Array }; 480OutermostKind = CdacCorElementType.SzArray }; 496CdacCorElementType kind = default; 640switch ((CorElementType)arg.ElementType) 642case CorElementType.Class: 643case CorElementType.String: 644case CorElementType.Object: 645case CorElementType.Array: 646case CorElementType.SzArray: 650case CorElementType.Byref: 654case CorElementType.ValueType: 864CorElementType fieldType; 881if (fieldType == CorElementType.Byref) 885else if (fieldType == CorElementType.ValueType)
Contracts\CallingConvention\CdacTypeHandle.cs (18)
9using CdacCorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 31private readonly CdacCorElementType _kindOverride; 38public CdacTypeHandle(TypeHandle typeHandle, Target target, CdacCorElementType kindOverride) 55=> _kindOverride == CdacCorElementType.Ptr 67if (_kindOverride is CdacCorElementType.Ptr 68or CdacCorElementType.Byref 69or CdacCorElementType.SzArray 70or CdacCorElementType.Array) 104CdacCorElementType cdacType = Rts.GetInternalCorElementType(_typeHandle); 165CdacCorElementType fieldType = Rts.GetFieldDescType(singleFieldType.Value); 168case CdacCorElementType.I: 169case CdacCorElementType.U: 170case CdacCorElementType.I4: 171case CdacCorElementType.U4: 172case CdacCorElementType.Ptr: 173case CdacCorElementType.FnPtr: 178case CdacCorElementType.ValueType: 203private static SharedCorElementType MapCorElementType(CdacCorElementType cdacType)
Contracts\ManagedTypeSource_1.cs (32)
132CorElementType type = rts.GetFieldDescType(fieldDescAddr); 133bool isGC = type is CorElementType.Class or CorElementType.ValueType; 167CorElementType type = rts.GetFieldDescType(fieldDescAddr); 168bool isGC = type is CorElementType.Class or CorElementType.ValueType; 234CorElementType elementType = rts.GetFieldDescType(fieldDescAddr); 348/// Maps an ECMA-335 <see cref="CorElementType"/> to a descriptor-type-name string consumed 352private static string? MapCorElementTypeToDescriptorName(CorElementType type) => type switch 354CorElementType.Boolean => "bool", 355CorElementType.I1 => "int8", 356CorElementType.U1 => "uint8", 357CorElementType.Char or CorElementType.U2 => "uint16", 358CorElementType.I2 => "int16", 359CorElementType.I4 => "int32", 360CorElementType.U4 => "uint32", 361CorElementType.I8 => "int64", 362CorElementType.U8 => "uint64", 363CorElementType.I => "nint", 364CorElementType.U => "nuint", 365CorElementType.String 366or CorElementType.Ptr 367or CorElementType.Byref 368or CorElementType.Class 369or CorElementType.Array 370or CorElementType.SzArray 371or CorElementType.GenericInst 372or CorElementType.Object 373or CorElementType.Var 374or CorElementType.MVar 375or CorElementType.FnPtr => "pointer",
Contracts\Object_1.cs (4)
84CorElementType corType = typeSystemContract.GetSignatureCorElementType(typeHandle); 85Debug.Assert(corType is CorElementType.Array or CorElementType.SzArray); 86if (corType == CorElementType.Array)
Contracts\RuntimeMutableTypeSystem_1.cs (3)
140CorElementType fieldType = rts.GetFieldDescType(encFieldDescPointer); 141if (fieldType == CorElementType.ValueType) 149else if (fieldType == CorElementType.Class)
Contracts\RuntimeTypeSystem_1.cs (73)
75public TypeKey(TypeHandle typeHandle, CorElementType elementType, int rank, ImmutableArray<TypeHandle> typeArgs, SignatureCallingConvention callConv = SignatureCallingConvention.Default) 84public CorElementType ElementType { get; } 588public bool IsCorElementTypeObjRef(CorElementType elementType) 589=> elementType is CorElementType.Class 590or CorElementType.Object 591or CorElementType.String 592or CorElementType.Array 593or CorElementType.SzArray; 665CorElementType ft = ((IRuntimeTypeSystem)this).GetFieldDescType(firstField); 668case CorElementType.R4: 671case CorElementType.R8: 674case CorElementType.ValueType: 747CorElementType argType = ((IRuntimeTypeSystem)this).GetSignatureCorElementType(instantiation[0]); 760private static bool IsCorNumericalType(CorElementType t) 761=> (t >= CorElementType.I1 && t <= CorElementType.R8) 762|| t == CorElementType.I 763|| t == CorElementType.U; 1011CorElementType type = GetSignatureCorElementType(typeHandle); 1012if (type == CorElementType.Var || type == CorElementType.MVar) 1020else if (type == CorElementType.FnPtr) 1046CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1049case CorElementType.ValueType: 1050case CorElementType.Byref: 1051case CorElementType.Ptr: 1058public CorElementType GetSignatureCorElementType(TypeHandle typeHandle) 1067return CorElementType.Array; 1069return CorElementType.SzArray; 1073return CorElementType.ValueType; 1075return (CorElementType)GetClassData(typeHandle).InternalCorElementType; 1077return CorElementType.Class; 1083return (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1089public CorElementType GetInternalCorElementType(TypeHandle typeHandle) 1091CorElementType sigType = GetSignatureCorElementType(typeHandle); 1092if (sigType == CorElementType.ValueType && typeHandle.IsMethodTable()) 1094CorElementType internalType = (CorElementType)GetClassData(typeHandle).InternalCorElementType; 1095if (internalType != CorElementType.ValueType) 1112return (CorElementType)(typeDesc.TypeAndFlags & 0xFF) == CorElementType.ValueType; 1178CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1181case CorElementType.ValueType: 1182case CorElementType.Byref: 1183case CorElementType.Ptr: 1221private bool ArrayPtrMatch(TypeHandle elementType, CorElementType corElementType, int rank, TypeHandle potentialMatch) 1226(corElementType == CorElementType.SzArray || corElementType == CorElementType.Byref || 1227corElementType == CorElementType.Ptr || (rank == typeHandleRank)); 1262TypeHandle IRuntimeTypeSystem.GetConstructedType(TypeHandle typeHandle, CorElementType corElementType, int rank, ImmutableArray<TypeHandle> typeArguments, SignatureCallingConvention callConv) 1264if (typeHandle.Address == TargetPointer.Null && corElementType != CorElementType.FnPtr) 1270if (corElementType == CorElementType.FnPtr) 1280if (corElementType == CorElementType.GenericInst) 1288else if (corElementType == CorElementType.FnPtr) 1353TypeHandle IRuntimeTypeSystem.GetPrimitiveType(CorElementType typeCode) 1370CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1373case CorElementType.MVar: 1374case CorElementType.Var: 1392CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1393if (elemType != CorElementType.FnPtr) 1408CorElementType elemType = (CorElementType)(typeDesc.TypeAndFlags & 0xFF); 1409return elemType == CorElementType.Ptr; 2210CorElementType IRuntimeTypeSystem.GetFieldDescType(TargetPointer fieldDescPointer) 2214return (CorElementType)((fieldDesc.DWord2 & (uint)FieldDescFlags2.TypeMask) >> TYPE_MASK_OFFSET); 2320CorElementType type = ((IRuntimeTypeSystem)this).GetFieldDescType(fieldDescPointer); 2322if (type == CorElementType.Class || type == CorElementType.ValueType) 2356if (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); 66=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.Ptr, 0, []); 69=> _runtimeTypeSystem.GetPrimitiveType((CorElementType)typeCode); 72=> _runtimeTypeSystem.GetConstructedType(elementType, CorElementType.SzArray, 1, []);
Contracts\StackWalk\GC\GcSignatureTypeProvider.cs (21)
46/// using the actual <see cref="CorElementType"/>, matching native 184CorElementType corType = rts.GetSignatureCorElementType(typeHandle); 188case CorElementType.Void: 189case CorElementType.Boolean: 190case CorElementType.Char: 191case CorElementType.I1: 192case CorElementType.U1: 193case CorElementType.I2: 194case CorElementType.U2: 195case CorElementType.I4: 196case CorElementType.U4: 197case CorElementType.I8: 198case CorElementType.U8: 199case CorElementType.R4: 200case CorElementType.R8: 201case CorElementType.I: 202case CorElementType.U: 203case CorElementType.FnPtr: 204case CorElementType.Ptr: 207case CorElementType.Byref: 210case CorElementType.ValueType:
Microsoft.Diagnostics.DataContractReader.Legacy (214)
ClrDataFrame.cs (23)
610private static (uint Flags, int Size) MapCorElementTypeToFlags(CorElementType elementType) 614CorElementType.Boolean => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1), 615CorElementType.I1 or CorElementType.U1 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1), 616CorElementType.Char or CorElementType.I2 or CorElementType.U2 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 2), 617CorElementType.I4 or CorElementType.U4 or CorElementType.R4 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 4), 618CorElementType.I8 or CorElementType.U8 or CorElementType.R8 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 8), 619CorElementType.I or CorElementType.U => ((uint)ClrDataValueFlag.IS_PRIMITIVE, -1), 620CorElementType.String or CorElementType.Object or CorElementType.Class 621or CorElementType.SzArray or CorElementType.Array => ((uint)ClrDataValueFlag.IS_REFERENCE, -1), 622CorElementType.Ptr => ((uint)ClrDataValueFlag.IS_POINTER, -1), 623CorElementType.ValueType => ((uint)ClrDataValueFlag.IS_VALUE_TYPE, -1), 769CorElementType elementType = rts.GetSignatureCorElementType(resolvedType);
Dbi\DacDbiImpl.cs (75)
2418CorElementType type = rts.GetFieldDescType(fdPtr); 2490private static bool IsPrimitiveType(CorElementType type) 2492return (type < CorElementType.Ptr) 2493|| type == CorElementType.I 2494|| type == CorElementType.U; 2606switch ((CorElementType)ReadLittleEndian(cdac->elementType)) 2608case CorElementType.Class: 2609case CorElementType.ValueType: 2617case CorElementType.Array: 2618case CorElementType.SzArray: 2630case CorElementType.Ptr: 2631case CorElementType.Byref: 2641case CorElementType.FnPtr: 2739CorElementType et = (CorElementType)ReadLittleEndian(pTypeData->elementType); 2742case CorElementType.Array: 2743case CorElementType.SzArray: 2746case CorElementType.Ptr: 2747case CorElementType.Byref: 2750case CorElementType.Class: 2751case CorElementType.ValueType: 2754case CorElementType.FnPtr: 2784CorElementType et = (CorElementType)ReadLittleEndian(pData->elementType); 2788case CorElementType.Array: 2789case CorElementType.SzArray: 2790case CorElementType.Ptr: 2791case CorElementType.Byref: 2792case CorElementType.FnPtr: 2798case CorElementType.Class: 2799case CorElementType.ValueType: 2827CorElementType et = (CorElementType)ReadLittleEndian(pTopLevel->elementType); 2837CorElementType et = (CorElementType)ReadLittleEndian(pTopLevel->elementType); 2855return rts.GetConstructedType(typeConstructor, CorElementType.GenericInst, 0, builder.MoveToImmutable()); 2867return rts.GetConstructedType(default, CorElementType.FnPtr, 0, builder.MoveToImmutable()); 3298Contracts.TypeHandle typeHandle = rts.GetPrimitiveType((CorElementType)simpleType); 3626if (rts.GetSignatureCorElementType(th) == CorElementType.Array) 3701WriteLittleEndian(ref pObjTypeData->elementType, (int)CorElementType.String); 4624CorElementType signatureType = rts.GetSignatureCorElementType(fieldTypeHandle); 4625if (signatureType == CorElementType.Byref) 4627corField->fieldType = (int)CorElementType.Byref; 4629corField->id.token1 = rts.GetPrimitiveType(CorElementType.I).Address.Value; 4635TypeHandle mtHandle = (signatureType == CorElementType.Ptr || signatureType == CorElementType.FnPtr) 4636? rts.GetPrimitiveType(CorElementType.U) 4713CorElementType componentType = rts.IsString(typeHandle) 4714? CorElementType.String 4761TypeHandle charTypeHandle = rts.GetPrimitiveType(CorElementType.Char); 4764pLayout->componentType = CorElementType.Char; 4778CorElementType componentType = rts.IsString(componentTypeHandle) ? CorElementType.String : rts.GetInternalCorElementType(componentTypeHandle); 5637CorElementType elementType = GetElementType(rts, typeHandle); 5642case CorElementType.Array: 5643case CorElementType.SzArray: 5647case CorElementType.Ptr: 5648case CorElementType.Byref: 5652case CorElementType.ValueType: 5655WriteLittleEndian(ref pTypeInfo->elementType, (int)CorElementType.Class); 5660case CorElementType.Class: 5664case CorElementType.FnPtr: 5671WriteLittleEndian(ref pTypeInfo->elementType, (int)CorElementType.Class); 5681private static CorElementType GetElementType(IRuntimeTypeSystem rts, TypeHandle typeHandle) 5684return CorElementType.Void; 5687return CorElementType.String; 5690return CorElementType.Object; 5775CorElementType elementType = GetElementType(rts, typeHandle); 5780case CorElementType.Array: 5781case CorElementType.SzArray: 5782case CorElementType.FnPtr: 5783case CorElementType.Ptr: 5784case CorElementType.Byref: 5789case CorElementType.Class: 5790case CorElementType.ValueType:
Dbi\IDacDbiInterface.cs (2)
7using CorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.CorElementType; 162public 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: 137return _rts.GetConstructedType(typeDef, CorElementType.GenericInst, 0, builder.MoveToImmutable()); 145CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 155CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 167CorElementType et = (CorElementType)DacDbiImpl.ReadLittleEndian(pInfo->data.elementType); 171if ((!typeDef.IsNull && _rts.IsValueType(typeDef)) || et == CorElementType.ValueType) 198return _rts.GetConstructedType(default, CorElementType.FnPtr, 0, builder.MoveToImmutable()); 201private TypeHandle 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: 317CorElementType corElementType = runtimeTypeSystem.GetSignatureCorElementType(typeHandle); 318if (corElementType == CorElementType.ValueType && runtimeTypeSystem.HasTypeParam(typeHandle)) 325case CorElementType.Void: stringBuilder.Append("Void"); return; 326case CorElementType.Boolean: stringBuilder.Append("Boolean"); return; 327case CorElementType.I: stringBuilder.Append("IntPtr"); return; 328case CorElementType.U: stringBuilder.Append("UIntPtr"); return; 329case CorElementType.I1: stringBuilder.Append("SByte"); return; 330case CorElementType.U1: stringBuilder.Append("Byte"); return; 331case CorElementType.I2: stringBuilder.Append("Int16"); return; 332case CorElementType.U2: stringBuilder.Append("UInt16"); return; 333case CorElementType.I4: stringBuilder.Append("Int32"); return; 334case CorElementType.U4: stringBuilder.Append("UInt32"); return; 335case CorElementType.I8: stringBuilder.Append("Int64"); return; 336case CorElementType.U8: stringBuilder.Append("UInt64"); return; 337case CorElementType.R4: stringBuilder.Append("Single"); return; 338case CorElementType.R8: stringBuilder.Append("Double"); return; 339case CorElementType.Char: stringBuilder.Append("Char"); return; 341case CorElementType.Object: stringBuilder.Append("System.Object"); return; 342case CorElementType.String: stringBuilder.Append("System.String"); return; 344case CorElementType.ValueType: 345case CorElementType.Class: 376case CorElementType.TypedByRef: 380case CorElementType.Byref: 385case CorElementType.Ptr: 390case CorElementType.MVar: 391case CorElementType.Var: 399case CorElementType.SzArray: 404case CorElementType.Array: 416case CorElementType.FnPtr:
SOSDacImpl.cs (8)
1064CorElementType fieldDescType = rtsContract.GetFieldDescType(fieldDescTargetPtr); 1088data->MTOfType = rtsContract.GetPrimitiveType(CorElementType.U).Address.ToClrDataAddress(_target); 1120CorElementType typeCode; 1125typeCode = (CorElementType)blobReader.ReadByte(); 1127} while (typeCode is CorElementType.CModReqd or CorElementType.CModOpt); // eat custom modifiers 1129if (typeCode is CorElementType.Class or CorElementType.ValueType)
TypeNameBuilder.cs (7)
215var elemType = typeSystemContract.GetSignatureCorElementType(typeHandle); 216if (elemType != Contracts.CorElementType.ValueType) 567private static void AppendParamTypeQualifier(ref TypeNameBuilder tnb, CorElementType kind, uint rank) 571case CorElementType.Byref: 574case CorElementType.Ptr: 577case CorElementType.SzArray: 580case CorElementType.Array: