using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Unity.VisualScripting { // Implementation From Roslyn: // http://source.roslyn.io/#microsoft.codeanalysis/InternalUtilities/ReferenceEqualityComparer.cs public class ReferenceEqualityComparer : IEqualityComparer { private ReferenceEqualityComparer() { } bool IEqualityComparer.Equals(object a, object b) { return a == b; } int IEqualityComparer.GetHashCode(object a) { return GetHashCode(a); } public static readonly ReferenceEqualityComparer Instance = new ReferenceEqualityComparer(); public static int GetHashCode(object a) { return RuntimeHelpers.GetHashCode(a); } } public class ReferenceEqualityComparer : IEqualityComparer { private ReferenceEqualityComparer() { } bool IEqualityComparer.Equals(T a, T b) { return ReferenceEquals(a, b); } int IEqualityComparer.GetHashCode(T a) { return GetHashCode(a); } public static readonly ReferenceEqualityComparer Instance = new ReferenceEqualityComparer(); public static int GetHashCode(T a) { return RuntimeHelpers.GetHashCode(a); } } }