Browse Source

#2685: Hide ctors from ComImport classes.

#2685: Remove logic added in previous commit, as it breaks our ILPretty tests.
pull/2693/head
Siegfried Pammer 3 years ago
parent
commit
c66eb7bbef
  1. 19
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

19
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -289,6 +289,9 @@ namespace ICSharpCode.Decompiler.CSharp @@ -289,6 +289,9 @@ namespace ICSharpCode.Decompiler.CSharp
var methodSemantics = module.MethodSemanticsLookup.GetSemantics(methodHandle).Item2;
if (methodSemantics != 0 && methodSemantics != System.Reflection.MethodSemanticsAttributes.Other)
return true;
name = metadata.GetString(method.Name);
if (name == ".ctor" && method.RelativeVirtualAddress == 0 && metadata.GetTypeDefinition(method.GetDeclaringType()).Attributes.HasFlag(System.Reflection.TypeAttributes.Import))
return true;
if (settings.LocalFunctions && LocalFunctionDecompiler.IsLocalFunctionMethod(module, methodHandle))
return true;
if (settings.AnonymousMethods && methodHandle.HasGeneratedName(metadata) && methodHandle.IsCompilerGenerated(metadata))
@ -1567,14 +1570,14 @@ namespace ICSharpCode.Decompiler.CSharp @@ -1567,14 +1570,14 @@ namespace ICSharpCode.Decompiler.CSharp
{
SetNewModifier(methodDecl);
}
else if (!method.IsVirtual && method.IsOverride && InheritanceHelper.GetBaseMember(method) == null)
{
methodDecl.Modifiers &= ~Modifiers.Override;
if (!method.DeclaringTypeDefinition.IsSealed)
{
methodDecl.Modifiers |= Modifiers.Virtual;
}
}
//else if (!method.IsVirtual && method.IsOverride && InheritanceHelper.GetBaseMember(method) == null)
//{
// methodDecl.Modifiers &= ~Modifiers.Override;
// if (!method.DeclaringTypeDefinition.IsSealed)
// {
// methodDecl.Modifiers |= Modifiers.Virtual;
// }
//}
if (IsCovariantReturnOverride(method))
{
RemoveAttribute(methodDecl, KnownAttribute.PreserveBaseOverrides);

Loading…
Cancel
Save