Browse Source

A little bit of cleanup in MetadataLoader and DecompilerTypeSystem

pull/1198/head
Siegfried Pammer 7 years ago
parent
commit
ac7e06a9ae
  1. 5
      ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs
  2. 5
      ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs

5
ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs

@ -184,9 +184,10 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -184,9 +184,10 @@ namespace ICSharpCode.Decompiler.TypeSystem
break;
case SRM.HandleKind.MemberReference:
var memberRef = metadata.GetMemberReference((SRM.MemberReferenceHandle)fieldReference);
Debug.Assert(memberRef.GetKind() == SRM.MemberReferenceKind.Field);
declaringType = ResolveAsType(memberRef.Parent);
switch (memberRef.Parent.Kind) {
case SRM.HandleKind.TypeReference:
declaringType = ResolveAsType(memberRef.Parent);
field = FindNonGenericField(metadata, memberRef, declaringType);
break;
case SRM.HandleKind.TypeSpecification:
@ -312,7 +313,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -312,7 +313,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
method = CreateFakeMethod(declaringType, metadata.GetString(memberRef.Name), signature);
break;
case SRM.HandleKind.MethodSpecification:
break;
throw new NotImplementedException();
}
/*method = FindNonGenericMethod(metadata, new Metadata.Entity(moduleDefinition, methodReference).ResolveAsMethod(), signature);

5
ICSharpCode.Decompiler/TypeSystem/MetadataLoader.cs

@ -309,9 +309,6 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -309,9 +309,6 @@ namespace ICSharpCode.Decompiler.TypeSystem
return CreateTypeReference((TypeReferenceHandle)type);
case HandleKind.TypeDefinition:
return new TypeDefTokenTypeReference(type);
case HandleKind.FieldDefinition:
var fd = currentMetadata.GetFieldDefinition((FieldDefinitionHandle)type);
return DynamicAwareTypeReference.Create(fd.DecodeSignature(TypeReferenceSignatureDecoder.Instance, default), fd.GetCustomAttributes(), currentMetadata);
default:
throw new NotSupportedException();
}
@ -1479,7 +1476,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -1479,7 +1476,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
f.Accessibility = GetAccessibility(field.Attributes);
f.IsReadOnly = (field.Attributes & FieldAttributes.InitOnly) == FieldAttributes.InitOnly;
f.IsStatic = (field.Attributes & FieldAttributes.Static) == FieldAttributes.Static;
f.ReturnType = ReadTypeReference(handle, field.GetCustomAttributes());
f.ReturnType = DynamicAwareTypeReference.Create(field.DecodeSignature(TypeReferenceSignatureDecoder.Instance, default), field.GetCustomAttributes(), currentMetadata);
var constantHandle = field.GetDefaultValue();
if (!constantHandle.IsNil) {
var constant = currentMetadata.GetConstant(constantHandle);

Loading…
Cancel
Save