Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CalculateTypeDefTreatmentAndRowId()

uint System.Reflection.Metadata.MetadataReader.CalculateTypeDefTreatmentAndRowId ( TypeDefinitionHandle handle)
inlinepackage

Definition at line 1457 of file MetadataReader.cs.

1458 {
1460 EntityHandle extends = TypeDefTable.GetExtends(handle);
1462 if ((flags & TypeAttributes.WindowsRuntime) == 0)
1463 {
1464 typeDefTreatment = ((_metadataKind == MetadataKind.ManagedWindowsMetadata && IsClrImplementationType(handle)) ? TypeDefTreatment.UnmangleWinRTName : TypeDefTreatment.None);
1465 }
1466 else
1467 {
1468 if (_metadataKind != MetadataKind.WindowsMetadata)
1469 {
1470 typeDefTreatment = ((_metadataKind == MetadataKind.ManagedWindowsMetadata && NeedsWinRTPrefix(flags, extends)) ? TypeDefTreatment.PrefixWinRTName : TypeDefTreatment.None);
1471 }
1472 else
1473 {
1475 if (typeDefTreatment != 0)
1476 {
1477 return TreatmentAndRowId((byte)typeDefTreatment, handle.RowId);
1478 }
1479 typeDefTreatment = ((extends.Kind != HandleKind.TypeReference || !IsSystemAttribute((TypeReferenceHandle)extends)) ? TypeDefTreatment.NormalNonAttribute : TypeDefTreatment.NormalAttribute);
1480 }
1481 if ((typeDefTreatment == TypeDefTreatment.PrefixWinRTName || typeDefTreatment == TypeDefTreatment.NormalNonAttribute) && (flags & TypeAttributes.ClassSemanticsMask) == 0 && HasAttribute(handle, "Windows.UI.Xaml", "TreatAsAbstractComposableClassAttribute"))
1482 {
1483 typeDefTreatment |= TypeDefTreatment.MarkAbstractFlag;
1484 }
1485 }
1486 return TreatmentAndRowId((byte)typeDefTreatment, handle.RowId);
1487 }
TypeDefTreatment GetWellKnownTypeDefinitionTreatment(TypeDefinitionHandle typeDef)
static uint TreatmentAndRowId(byte treatment, int rowId)
bool IsSystemAttribute(TypeReferenceHandle handle)
bool HasAttribute(EntityHandle token, string asciiNamespaceName, string asciiTypeName)
bool NeedsWinRTPrefix(TypeAttributes flags, EntityHandle extends)
bool IsClrImplementationType(TypeDefinitionHandle typeDef)
EntityHandle GetExtends(TypeDefinitionHandle handle)
TypeAttributes GetFlags(TypeDefinitionHandle handle)

References System.Reflection.Metadata.MetadataReader._metadataKind, System.Reflection.Metadata.Ecma335.TypeDefTableReader.GetExtends(), System.Reflection.Metadata.Ecma335.TypeDefTableReader.GetFlags(), System.Reflection.Metadata.MetadataReader.GetWellKnownTypeDefinitionTreatment(), System.handle, System.Reflection.Metadata.MetadataReader.HasAttribute(), System.Reflection.Metadata.MetadataReader.IsClrImplementationType(), System.Reflection.Metadata.MetadataReader.IsSystemAttribute(), System.Reflection.Metadata.MetadataReader.NeedsWinRTPrefix(), System.Reflection.Metadata.MetadataReader.TreatmentAndRowId(), and System.Reflection.Metadata.MetadataReader.TypeDefTable.

Referenced by System.Reflection.Metadata.MetadataReader.GetTypeDefTreatmentAndRowId().