TeamCity.MSBuild.Logger/ComparerContextNodeId.cs (24 lines of code) (raw):

namespace TeamCity.MSBuild.Logger { using System.Collections.Generic; using Microsoft.Build.Framework; internal class ComparerContextNodeId : IEqualityComparer<BuildEventContext> { public static readonly IEqualityComparer<BuildEventContext> Shared = new ComparerContextNodeId(); private ComparerContextNodeId() { } public bool Equals(BuildEventContext x, BuildEventContext y) { if (x == null || y == null || x.NodeId != y.NodeId) { return false; } return x.ProjectContextId == y.ProjectContextId; } public int GetHashCode(BuildEventContext x) { return x.ProjectContextId + (x.NodeId << 24); } } }