Browse Source

Fix DetermineIsIndexer: parameter handles are optional, so it's better to check the signature blob for the parameter count.

pull/1420/head
Siegfried Pammer 7 years ago
parent
commit
342750ad1d
  1. 13
      ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataProperty.cs

13
ICSharpCode.Decompiler/TypeSystem/Implementation/MetadataProperty.cs

@ -68,16 +68,9 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -68,16 +68,9 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
bool DetermineIsIndexer(MetadataReader metadata, string name, PropertyAccessors accessors)
{
if (!accessors.Getter.IsNil) {
var md = metadata.GetMethodDefinition(accessors.Getter);
if (md.GetParameters().Count == 0)
return false;
} else if (!accessors.Setter.IsNil) {
var md = metadata.GetMethodDefinition(accessors.Setter);
if (md.GetParameters().Count <= 1)
return false;
}
return name == (DeclaringTypeDefinition as MetadataTypeDefinition)?.DefaultMemberName;
if (name != (DeclaringTypeDefinition as MetadataTypeDefinition)?.DefaultMemberName)
return false;
return Parameters.Count > 0;
}
public override string ToString()

Loading…
Cancel
Save