Browse Source

fix TypeDefinition-bug in ResolvedFakeMethod and ResolvedFakeField

pull/728/head
Siegfried Pammer 9 years ago
parent
commit
946de910c2
  1. 5
      ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs

5
ICSharpCode.Decompiler/TypeSystem/DecompilerTypeSystem.cs

@ -168,7 +168,7 @@ namespace ICSharpCode.Decompiler @@ -168,7 +168,7 @@ namespace ICSharpCode.Decompiler
var f = new DefaultUnresolvedField();
f.Name = fieldReference.Name;
f.ReturnType = typeReferenceCecilLoader.ReadTypeReference(fieldReference.FieldType);
return new ResolvedFakeField(f, context, declaringType);
return new ResolvedFakeField(f, context.WithCurrentTypeDefinition(declaringType.GetDefinition()), declaringType);
}
class ResolvedFakeField : DefaultResolvedField
@ -282,7 +282,8 @@ namespace ICSharpCode.Decompiler @@ -282,7 +282,8 @@ namespace ICSharpCode.Decompiler
foreach (var p in methodReference.Parameters) {
m.Parameters.Add(new DefaultUnresolvedParameter(typeReferenceCecilLoader.ReadTypeReference(p.ParameterType), p.Name));
}
return new ResolvedFakeMethod(m, context, declaringTypeReference.Resolve(context));
var type = declaringTypeReference.Resolve(context);
return new ResolvedFakeMethod(m, context.WithCurrentTypeDefinition(type.GetDefinition()), type);
}
class ResolvedFakeMethod : DefaultResolvedMethod

Loading…
Cancel
Save