315 references to CorElementType
Microsoft.Diagnostics.DataContractReader.Abstractions (5)
Contracts\IRuntimeTypeSystem.cs (5)
181
CorElementType
GetSignatureCorElementType(TypeHandle typeHandle) => throw new NotImplementedException();
187
CorElementType
GetInternalCorElementType(TypeHandle typeHandle) => throw new NotImplementedException();
198
TypeHandle GetConstructedType(TypeHandle typeHandle,
CorElementType
corElementType, int rank, ImmutableArray<TypeHandle> typeArguments, SignatureCallingConvention callConv = SignatureCallingConvention.Default) => throw new NotImplementedException();
199
TypeHandle GetPrimitiveType(
CorElementType
typeCode) => throw new NotImplementedException();
279
CorElementType
GetFieldDescType(TargetPointer fieldDescPointer) => throw new NotImplementedException();
Microsoft.Diagnostics.DataContractReader.Contracts (124)
Contracts\ManagedTypeSource_1.cs (32)
132
CorElementType
type = rts.GetFieldDescType(fieldDescAddr);
133
bool isGC = type is
CorElementType
.Class or
CorElementType
.ValueType;
167
CorElementType
type = rts.GetFieldDescType(fieldDescAddr);
168
bool isGC = type is
CorElementType
.Class or
CorElementType
.ValueType;
234
CorElementType
elementType = rts.GetFieldDescType(fieldDescAddr);
348
/// Maps an ECMA-335 <see cref="
CorElementType
"/> to a descriptor-type-name string consumed
352
private static string? MapCorElementTypeToDescriptorName(
CorElementType
type) => type switch
354
CorElementType
.Boolean => "bool",
355
CorElementType
.I1 => "int8",
356
CorElementType
.U1 => "uint8",
357
CorElementType
.Char or
CorElementType
.U2 => "uint16",
358
CorElementType
.I2 => "int16",
359
CorElementType
.I4 => "int32",
360
CorElementType
.U4 => "uint32",
361
CorElementType
.I8 => "int64",
362
CorElementType
.U8 => "uint64",
363
CorElementType
.I => "nint",
364
CorElementType
.U => "nuint",
365
CorElementType
.String
366
or
CorElementType
.Ptr
367
or
CorElementType
.Byref
368
or
CorElementType
.Class
369
or
CorElementType
.Array
370
or
CorElementType
.SzArray
371
or
CorElementType
.GenericInst
372
or
CorElementType
.Object
373
or
CorElementType
.Var
374
or
CorElementType
.MVar
375
or
CorElementType
.FnPtr => "pointer",
Contracts\Object_1.cs (4)
71
CorElementType
corType = typeSystemContract.GetSignatureCorElementType(typeHandle);
72
Debug.Assert(corType is
CorElementType
.Array or
CorElementType
.SzArray);
73
if (corType ==
CorElementType
.Array)
Contracts\RuntimeTypeSystem_1.cs (61)
75
public TypeKey(TypeHandle typeHandle,
CorElementType
elementType, int rank, ImmutableArray<TypeHandle> typeArgs, SignatureCallingConvention callConv = SignatureCallingConvention.Default)
84
public
CorElementType
ElementType { get; }
589
CorElementType
elementType = GetSignatureCorElementType(typeHandle);
591
return elementType is
CorElementType
.Class or
CorElementType
.Array or
CorElementType
.SzArray;
841
CorElementType
type = GetSignatureCorElementType(typeHandle);
842
if (type ==
CorElementType
.Var || type ==
CorElementType
.MVar)
850
else if (type ==
CorElementType
.FnPtr)
876
CorElementType
elemType = (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
879
case
CorElementType
.ValueType:
880
case
CorElementType
.Byref:
881
case
CorElementType
.Ptr:
888
public
CorElementType
GetSignatureCorElementType(TypeHandle typeHandle)
897
return
CorElementType
.Array;
899
return
CorElementType
.SzArray;
903
return
CorElementType
.ValueType;
905
return (
CorElementType
)GetClassData(typeHandle).InternalCorElementType;
907
return
CorElementType
.Class;
913
return (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
919
public
CorElementType
GetInternalCorElementType(TypeHandle typeHandle)
921
CorElementType
sigType = GetSignatureCorElementType(typeHandle);
922
if (sigType ==
CorElementType
.ValueType && typeHandle.IsMethodTable())
924
CorElementType
internalType = (
CorElementType
)GetClassData(typeHandle).InternalCorElementType;
925
if (internalType !=
CorElementType
.ValueType)
942
return (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF) ==
CorElementType
.ValueType;
1008
CorElementType
elemType = (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
1011
case
CorElementType
.ValueType:
1012
case
CorElementType
.Byref:
1013
case
CorElementType
.Ptr:
1051
private bool ArrayPtrMatch(TypeHandle elementType,
CorElementType
corElementType, int rank, TypeHandle potentialMatch)
1056
(corElementType ==
CorElementType
.SzArray || corElementType ==
CorElementType
.Byref ||
1057
corElementType ==
CorElementType
.Ptr || (rank == typeHandleRank));
1092
TypeHandle IRuntimeTypeSystem.GetConstructedType(TypeHandle typeHandle,
CorElementType
corElementType, int rank, ImmutableArray<TypeHandle> typeArguments, SignatureCallingConvention callConv)
1094
if (typeHandle.Address == TargetPointer.Null && corElementType !=
CorElementType
.FnPtr)
1100
if (corElementType ==
CorElementType
.FnPtr)
1110
if (corElementType ==
CorElementType
.GenericInst)
1118
else if (corElementType ==
CorElementType
.FnPtr)
1183
TypeHandle IRuntimeTypeSystem.GetPrimitiveType(
CorElementType
typeCode)
1200
CorElementType
elemType = (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
1203
case
CorElementType
.MVar:
1204
case
CorElementType
.Var:
1222
CorElementType
elemType = (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
1223
if (elemType !=
CorElementType
.FnPtr)
1238
CorElementType
elemType = (
CorElementType
)(typeDesc.TypeAndFlags & 0xFF);
1239
return elemType ==
CorElementType
.Ptr;
2028
CorElementType
IRuntimeTypeSystem.GetFieldDescType(TargetPointer fieldDescPointer)
2032
return (
CorElementType
)((fieldDesc.DWord2 & (uint)FieldDescFlags2.TypeMask) >> TYPE_MASK_OFFSET);
2109
CorElementType
type = ((IRuntimeTypeSystem)this).GetFieldDescType(fieldDescPointer);
2111
if (type ==
CorElementType
.Class || type ==
CorElementType
.ValueType)
2145
if (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
184
CorElementType
corType = rts.GetSignatureCorElementType(typeHandle);
188
case
CorElementType
.Void:
189
case
CorElementType
.Boolean:
190
case
CorElementType
.Char:
191
case
CorElementType
.I1:
192
case
CorElementType
.U1:
193
case
CorElementType
.I2:
194
case
CorElementType
.U2:
195
case
CorElementType
.I4:
196
case
CorElementType
.U4:
197
case
CorElementType
.I8:
198
case
CorElementType
.U8:
199
case
CorElementType
.R4:
200
case
CorElementType
.R8:
201
case
CorElementType
.I:
202
case
CorElementType
.U:
203
case
CorElementType
.FnPtr:
204
case
CorElementType
.Ptr:
207
case
CorElementType
.Byref:
210
case
CorElementType
.ValueType:
Microsoft.Diagnostics.DataContractReader.Legacy (186)
ClrDataFrame.cs (23)
613
private static (uint Flags, int Size) MapCorElementTypeToFlags(
CorElementType
elementType)
617
CorElementType
.Boolean => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1),
618
CorElementType
.I1 or
CorElementType
.U1 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 1),
619
CorElementType
.Char or
CorElementType
.I2 or
CorElementType
.U2 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 2),
620
CorElementType
.I4 or
CorElementType
.U4 or
CorElementType
.R4 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 4),
621
CorElementType
.I8 or
CorElementType
.U8 or
CorElementType
.R8 => ((uint)ClrDataValueFlag.IS_PRIMITIVE, 8),
622
CorElementType
.I or
CorElementType
.U => ((uint)ClrDataValueFlag.IS_PRIMITIVE, -1),
623
CorElementType
.String or
CorElementType
.Object or
CorElementType
.Class
624
or
CorElementType
.SzArray or
CorElementType
.Array => ((uint)ClrDataValueFlag.IS_REFERENCE, -1),
625
CorElementType
.Ptr => ((uint)ClrDataValueFlag.IS_POINTER, -1),
626
CorElementType
.ValueType => ((uint)ClrDataValueFlag.IS_VALUE_TYPE, -1),
772
CorElementType
elementType = rts.GetSignatureCorElementType(resolvedType);
Dbi\DacDbiImpl.cs (72)
2017
CorElementType
type = rts.GetFieldDescType(fdPtr);
2089
private static bool IsPrimitiveType(
CorElementType
type)
2091
return (type <
CorElementType
.Ptr)
2092
|| type ==
CorElementType
.I
2093
|| type ==
CorElementType
.U;
2205
switch ((
CorElementType
)ReadLittleEndian(cdac->elementType))
2207
case
CorElementType
.Class:
2208
case
CorElementType
.ValueType:
2216
case
CorElementType
.Array:
2217
case
CorElementType
.SzArray:
2229
case
CorElementType
.Ptr:
2230
case
CorElementType
.Byref:
2240
case
CorElementType
.FnPtr:
2302
CorElementType
et = (
CorElementType
)ReadLittleEndian(pTypeData->elementType);
2305
case
CorElementType
.Array:
2306
case
CorElementType
.SzArray:
2309
case
CorElementType
.Ptr:
2310
case
CorElementType
.Byref:
2313
case
CorElementType
.Class:
2314
case
CorElementType
.ValueType:
2317
case
CorElementType
.FnPtr:
2347
CorElementType
et = (
CorElementType
)ReadLittleEndian(pData->elementType);
2351
case
CorElementType
.Array:
2352
case
CorElementType
.SzArray:
2353
case
CorElementType
.Ptr:
2354
case
CorElementType
.Byref:
2355
case
CorElementType
.FnPtr:
2361
case
CorElementType
.Class:
2362
case
CorElementType
.ValueType:
2412
CorElementType
et = (
CorElementType
)ReadLittleEndian(pTopLevel->elementType);
2422
CorElementType
et = (
CorElementType
)ReadLittleEndian(pTopLevel->elementType);
2440
return rts.GetConstructedType(typeConstructor,
CorElementType
.GenericInst, 0, builder.MoveToImmutable());
2452
return rts.GetConstructedType(default,
CorElementType
.FnPtr, 0, builder.MoveToImmutable());
2759
Contracts.TypeHandle typeHandle = rts.GetPrimitiveType((
CorElementType
)simpleType);
3694
CorElementType
signatureType = rts.GetSignatureCorElementType(fieldTypeHandle);
3695
if (signatureType ==
CorElementType
.Byref)
3697
corField->fieldType = (int)
CorElementType
.Byref;
3699
corField->id.token1 = rts.GetPrimitiveType(
CorElementType
.I).Address.Value;
3705
TypeHandle mtHandle = (signatureType ==
CorElementType
.Ptr || signatureType ==
CorElementType
.FnPtr)
3706
? rts.GetPrimitiveType(
CorElementType
.U)
3784
pLayout->type = (int)(rts.IsString(typeHandle) ?
CorElementType
.String : rts.GetInternalCorElementType(typeHandle));
3828
TypeHandle charTypeHandle = rts.GetPrimitiveType(
CorElementType
.Char);
3831
pLayout->componentType =
CorElementType
.Char;
3845
CorElementType
componentType = rts.IsString(componentTypeHandle) ?
CorElementType
.String : rts.GetInternalCorElementType(componentTypeHandle);
4528
CorElementType
elementType = GetElementType(rts, typeHandle);
4533
case
CorElementType
.Array:
4534
case
CorElementType
.SzArray:
4538
case
CorElementType
.Ptr:
4539
case
CorElementType
.Byref:
4543
case
CorElementType
.ValueType:
4546
WriteLittleEndian(ref pTypeInfo->elementType, (int)
CorElementType
.Class);
4551
case
CorElementType
.Class:
4555
case
CorElementType
.FnPtr:
4562
WriteLittleEndian(ref pTypeInfo->elementType, (int)
CorElementType
.Class);
4572
private static
CorElementType
GetElementType(IRuntimeTypeSystem rts, TypeHandle typeHandle)
4575
return
CorElementType
.Void;
4578
return
CorElementType
.String;
4581
return
CorElementType
.Object;
4666
CorElementType
elementType = GetElementType(rts, typeHandle);
4671
case
CorElementType
.Array:
4672
case
CorElementType
.SzArray:
4673
case
CorElementType
.FnPtr:
4674
case
CorElementType
.Ptr:
4675
case
CorElementType
.Byref:
4680
case
CorElementType
.Class:
4681
case
CorElementType
.ValueType:
Dbi\IDacDbiInterface.cs (2)
7
using CorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.
CorElementType
;
156
public
CorElementType
componentType;
ISOSDacInterface.cs (3)
7
using CorElementType = Microsoft.Diagnostics.DataContractReader.Contracts.
CorElementType
;
426
public
CorElementType
Type;
427
public
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)
107
switch ((
CorElementType
)signature.ReadByte())
109
case
CorElementType
.Void: stringBuilder.Append("Void"); return;
110
case
CorElementType
.Boolean: stringBuilder.Append("Boolean"); return;
111
case
CorElementType
.I: stringBuilder.Append("IntPtr"); return;
112
case
CorElementType
.U: stringBuilder.Append("UIntPtr"); return;
113
case
CorElementType
.I1: stringBuilder.Append("SByte"); return;
114
case
CorElementType
.U1: stringBuilder.Append("Byte"); return;
115
case
CorElementType
.I2: stringBuilder.Append("Int16"); return;
116
case
CorElementType
.U2: stringBuilder.Append("UInt16"); return;
117
case
CorElementType
.I4: stringBuilder.Append("Int32"); return;
118
case
CorElementType
.U4: stringBuilder.Append("UInt32"); return;
119
case
CorElementType
.I8: stringBuilder.Append("Int64"); return;
120
case
CorElementType
.U8: stringBuilder.Append("UInt64"); return;
121
case
CorElementType
.R4: stringBuilder.Append("Single"); return;
122
case
CorElementType
.R8: stringBuilder.Append("Double"); return;
123
case
CorElementType
.Char: stringBuilder.Append("Char"); return;
125
case
CorElementType
.Object: stringBuilder.Append("System.Object"); return;
126
case
CorElementType
.String: stringBuilder.Append("System.String"); return;
128
case
CorElementType
.ValueType:
129
case
CorElementType
.Class:
157
case
CorElementType
.Internal:
163
case
CorElementType
.FnPtr:
164
case
CorElementType
.Ptr:
167
case
CorElementType
.ValueType:
174
case
CorElementType
.Byref:
175
case
CorElementType
.Array:
197
case
CorElementType
.TypedByRef:
201
case
CorElementType
.Byref:
206
case
CorElementType
.Ptr:
211
case
CorElementType
.MVar:
223
case
CorElementType
.Var:
235
case
CorElementType
.GenericInst:
248
case
CorElementType
.SzArray:
253
case
CorElementType
.Array:
274
case
CorElementType
.FnPtr:
294
case
CorElementType
.CModOpt:
295
case
CorElementType
.CModReqd:
299
case
CorElementType
.CModInternal:
317
CorElementType
corElementType = runtimeTypeSystem.GetSignatureCorElementType(typeHandle);
318
if (corElementType ==
CorElementType
.ValueType && runtimeTypeSystem.HasTypeParam(typeHandle))
325
case
CorElementType
.Void: stringBuilder.Append("Void"); return;
326
case
CorElementType
.Boolean: stringBuilder.Append("Boolean"); return;
327
case
CorElementType
.I: stringBuilder.Append("IntPtr"); return;
328
case
CorElementType
.U: stringBuilder.Append("UIntPtr"); return;
329
case
CorElementType
.I1: stringBuilder.Append("SByte"); return;
330
case
CorElementType
.U1: stringBuilder.Append("Byte"); return;
331
case
CorElementType
.I2: stringBuilder.Append("Int16"); return;
332
case
CorElementType
.U2: stringBuilder.Append("UInt16"); return;
333
case
CorElementType
.I4: stringBuilder.Append("Int32"); return;
334
case
CorElementType
.U4: stringBuilder.Append("UInt32"); return;
335
case
CorElementType
.I8: stringBuilder.Append("Int64"); return;
336
case
CorElementType
.U8: stringBuilder.Append("UInt64"); return;
337
case
CorElementType
.R4: stringBuilder.Append("Single"); return;
338
case
CorElementType
.R8: stringBuilder.Append("Double"); return;
339
case
CorElementType
.Char: stringBuilder.Append("Char"); return;
341
case
CorElementType
.Object: stringBuilder.Append("System.Object"); return;
342
case
CorElementType
.String: stringBuilder.Append("System.String"); return;
344
case
CorElementType
.ValueType:
345
case
CorElementType
.Class:
376
case
CorElementType
.TypedByRef:
380
case
CorElementType
.Byref:
385
case
CorElementType
.Ptr:
390
case
CorElementType
.MVar:
391
case
CorElementType
.Var:
399
case
CorElementType
.SzArray:
404
case
CorElementType
.Array:
416
case
CorElementType
.FnPtr:
SOSDacImpl.cs (8)
1085
CorElementType
fieldDescType = rtsContract.GetFieldDescType(fieldDescTargetPtr);
1109
data->MTOfType = rtsContract.GetPrimitiveType(
CorElementType
.U).Address.ToClrDataAddress(_target);
1141
CorElementType
typeCode;
1146
typeCode = (
CorElementType
)blobReader.ReadByte();
1148
} while (typeCode is
CorElementType
.CModReqd or
CorElementType
.CModOpt); // eat custom modifiers
1150
if (typeCode is
CorElementType
.Class or
CorElementType
.ValueType)
TypeNameBuilder.cs (7)
215
var
elemType = typeSystemContract.GetSignatureCorElementType(typeHandle);
216
if (elemType != Contracts.
CorElementType
.ValueType)
567
private static void AppendParamTypeQualifier(ref TypeNameBuilder tnb,
CorElementType
kind, uint rank)
571
case
CorElementType
.Byref:
574
case
CorElementType
.Ptr:
577
case
CorElementType
.SzArray:
580
case
CorElementType
.Array: