TeamCity.MSBuild.Logger/ErrorWarningSummaryDictionaryKey.cs (27 lines of code) (raw):

namespace TeamCity.MSBuild.Logger { using System; using Microsoft.Build.Framework; internal class ErrorWarningSummaryDictionaryKey { internal ErrorWarningSummaryDictionaryKey(BuildEventContext entryPoint, string targetName) { EntryPointContext = entryPoint; TargetName = targetName ?? string.Empty; } public BuildEventContext EntryPointContext { get; } public string TargetName { get; } public override bool Equals(object obj) { if (!(obj is ErrorWarningSummaryDictionaryKey summaryDictionaryKey) || !ComparerContextNodeId.Shared.Equals(EntryPointContext, summaryDictionaryKey.EntryPointContext)) { return false; } return string.Compare(TargetName, summaryDictionaryKey.TargetName, StringComparison.OrdinalIgnoreCase) == 0; } public override int GetHashCode() { return EntryPointContext.GetHashCode() + TargetName.GetHashCode(); } } }