diff --git a/src/Verify/Verifier/VerifyEngine.cs b/src/Verify/Verifier/VerifyEngine.cs index 655358c18..94a527b0c 100644 --- a/src/Verify/Verifier/VerifyEngine.cs +++ b/src/Verify/Verifier/VerifyEngine.cs @@ -74,7 +74,7 @@ async Task Inner(FilePair file, Target target) HandleCompareResult(result, file); } - foreach (var group in targetList.GroupBy(_ => $"{_.Name}:{_.Extension}")) + foreach (var group in targetList.GroupBy(_ => _, TargetNameExtensionComparer.Instance)) { var targets = group.ToList(); if (targets.Count == 1) @@ -290,4 +290,15 @@ static void AcceptChanges(in FilePair file) File.Delete(file.VerifiedPath); File.Move(file.ReceivedPath, file.VerifiedPath); } + + private sealed class TargetNameExtensionComparer : IEqualityComparer + { + public static readonly TargetNameExtensionComparer Instance = new(); + + public bool Equals(Target x, Target y) => + (x.Name ?? "") == (y.Name ?? "") && x.Extension == y.Extension; + + public int GetHashCode(Target obj) => + (obj.Name ?? "", obj.Extension).GetHashCode(); + } }