Skip to content

Commit

Permalink
Fix parameter comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
danielmarbach committed Nov 25, 2019
1 parent d7d3581 commit 02c13f7
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/PublicApiGenerator/MethodNameBuilder.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
using System;
using System.CodeDom;
using System.Collections.Generic;
using System.Linq;
using Mono.Cecil;

namespace PublicApiGenerator
Expand All @@ -18,10 +20,24 @@ public static class MethodNameBuilder

var isNew = methodDefinition.IsNew(typeDef => typeDef?.Methods, e =>
e.Name.Equals(methodDefinition.Name, StringComparison.Ordinal) &&
e.Parameters.Count == methodDefinition.Parameters.Count);
e.Parameters.Count == methodDefinition.Parameters.Count &&
e.Parameters.SequenceEqual(methodDefinition.Parameters, new ParameterTypeComparer()));

return ModifierMarkerNameBuilder.Build(methodDefinition, attributes, isNew, name,
CodeNormalizer.MethodModifierMarkerTemplate);
}

class ParameterTypeComparer : IEqualityComparer<ParameterDefinition>
{
public bool Equals(ParameterDefinition x, ParameterDefinition y)
{
return x?.ParameterType == y?.ParameterType;
}

public int GetHashCode(ParameterDefinition obj)
{
return obj.GetHashCode();
}
}
}
}

0 comments on commit 02c13f7

Please sign in to comment.