Skip to content

Commit

Permalink
Ignore explicit interface implementations (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
js6pak authored Nov 22, 2024
1 parent 5a41adb commit af537fb
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions BepInEx.AssemblyPublicizer/AssemblyPublicizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,18 @@ private static void Publicize(MethodDefinition methodDefinition, OriginalAttribu
if (methodDefinition.IsCompilerControlled)
return;

// Ignore explicit interface implementations because you can't call them directly anyway and it confuses IDEs
if (methodDefinition is { IsVirtual: true, IsFinal: true, DeclaringType: not null })
{
foreach (var implementation in methodDefinition.DeclaringType.MethodImplementations)
{
if (implementation.Body == methodDefinition)
{
return;
}
}
}

if (!methodDefinition.IsPublic)
{
if (!ignoreCompilerGeneratedCheck && !options.PublicizeCompilerGenerated && methodDefinition.IsCompilerGenerated())
Expand Down

0 comments on commit af537fb

Please sign in to comment.