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
var methodSemantics = module.MethodSemanticsLookup.GetSemantics(methodHandle).Item2; var methodSemantics = module.MethodSemanticsLookup.GetSemantics(methodHandle).Item2;
if (methodSemantics != 0 && methodSemantics != System.Reflection.MethodSemanticsAttributes.Other) if (methodSemantics != 0 && methodSemantics != System.Reflection.MethodSemanticsAttributes.Other)
return true; 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)) if (settings.LocalFunctions && LocalFunctionDecompiler.IsLocalFunctionMethod(module, methodHandle))
return true; return true;
if (settings.AnonymousMethods && methodHandle.HasGeneratedName(metadata) && methodHandle.IsCompilerGenerated(metadata)) if (settings.AnonymousMethods && methodHandle.HasGeneratedName(metadata) && methodHandle.IsCompilerGenerated(metadata))
@ -1567,14 +1570,14 @@ namespace ICSharpCode.Decompiler.CSharp
{ {
SetNewModifier(methodDecl); SetNewModifier(methodDecl);
} }
else if (!method.IsVirtual && method.IsOverride && InheritanceHelper.GetBaseMember(method) == null) //else if (!method.IsVirtual && method.IsOverride && InheritanceHelper.GetBaseMember(method) == null)
{ //{
methodDecl.Modifiers &= ~Modifiers.Override; // methodDecl.Modifiers &= ~Modifiers.Override;
if (!method.DeclaringTypeDefinition.IsSealed) // if (!method.DeclaringTypeDefinition.IsSealed)
{ // {
methodDecl.Modifiers |= Modifiers.Virtual; // methodDecl.Modifiers |= Modifiers.Virtual;
} // }
} //}
if (IsCovariantReturnOverride(method)) if (IsCovariantReturnOverride(method))
{ {
RemoveAttribute(methodDecl, KnownAttribute.PreserveBaseOverrides); RemoveAttribute(methodDecl, KnownAttribute.PreserveBaseOverrides);

Loading…
Cancel
Save