diff --git a/src/NHibernate.Test/UtilityTest/IdentitySetFixture.cs b/src/NHibernate.Test/UtilityTest/IdentitySetFixture.cs
index be9ce7362d4..6a96c8866d7 100644
--- a/src/NHibernate.Test/UtilityTest/IdentitySetFixture.cs
+++ b/src/NHibernate.Test/UtilityTest/IdentitySetFixture.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections;
using System.Collections.Generic;
-using System.Runtime.CompilerServices;
using NHibernate.Util;
using NUnit.Framework;
@@ -10,6 +9,8 @@ namespace NHibernate.Test.UtilityTest
///
/// Test for the IdentityMap.
///
+ // Since 5.3
+ [Obsolete("This class has no more usages and will be removed in a future version")]
[TestFixture]
public class IdentitySetFixture
{
diff --git a/src/NHibernate/Async/Engine/Query/HQLQueryPlan.cs b/src/NHibernate/Async/Engine/Query/HQLQueryPlan.cs
index 853d1ad1261..a55fd2d1741 100644
--- a/src/NHibernate/Async/Engine/Query/HQLQueryPlan.cs
+++ b/src/NHibernate/Async/Engine/Query/HQLQueryPlan.cs
@@ -58,7 +58,7 @@ public async Task PerformListAsync(QueryParameters queryParameters, ISessionImpl
}
IList combinedResults = results ?? new List();
- IdentitySet distinction = new IdentitySet();
+ var distinction = new HashSet(ReferenceComparer.Instance);
int includedCount = -1;
for (int i = 0; i < Translators.Length; i++)
{
diff --git a/src/NHibernate/Async/Event/Default/DefaultDeleteEventListener.cs b/src/NHibernate/Async/Event/Default/DefaultDeleteEventListener.cs
index be81efc248f..58be2bfad01 100644
--- a/src/NHibernate/Async/Event/Default/DefaultDeleteEventListener.cs
+++ b/src/NHibernate/Async/Event/Default/DefaultDeleteEventListener.cs
@@ -37,7 +37,7 @@ public virtual Task OnDeleteAsync(DeleteEvent @event, CancellationToken cancella
{
return Task.FromCanceled(cancellationToken);
}
- return OnDeleteAsync(@event, new IdentitySet(), cancellationToken);
+ return OnDeleteAsync(@event, new HashSet(ReferenceComparer.Instance), cancellationToken);
}
public virtual async Task OnDeleteAsync(DeleteEvent @event, ISet transientEntities, CancellationToken cancellationToken)
@@ -145,7 +145,7 @@ protected virtual async Task DeleteTransientEntityAsync(IEventSource session, ob
// NH different impl : NH-1895
if(transientEntities == null)
{
- transientEntities = new HashSet();
+ transientEntities = new HashSet(ReferenceComparer.Instance);
}
if (!transientEntities.Add(entity))
{
diff --git a/src/NHibernate/Async/Hql/Ast/ANTLR/QueryTranslatorImpl.cs b/src/NHibernate/Async/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
index e36847d2988..8c78a478fca 100644
--- a/src/NHibernate/Async/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
+++ b/src/NHibernate/Async/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
@@ -77,7 +77,7 @@ public async Task ListAsync(ISessionImplementor session, QueryParameters
int size = results.Count;
var tmp = new List();
- var distinction = new IdentitySet();
+ var distinction = new HashSet(ReferenceComparer.Instance);
for ( int i = 0; i < size; i++ )
{
diff --git a/src/NHibernate/Engine/Query/HQLQueryPlan.cs b/src/NHibernate/Engine/Query/HQLQueryPlan.cs
index ee1062a26e9..b27ff88a204 100644
--- a/src/NHibernate/Engine/Query/HQLQueryPlan.cs
+++ b/src/NHibernate/Engine/Query/HQLQueryPlan.cs
@@ -108,7 +108,7 @@ public void PerformList(QueryParameters queryParameters, ISessionImplementor ses
}
IList combinedResults = results ?? new List();
- IdentitySet distinction = new IdentitySet();
+ var distinction = new HashSet(ReferenceComparer.Instance);
int includedCount = -1;
for (int i = 0; i < Translators.Length; i++)
{
diff --git a/src/NHibernate/Event/Default/DefaultDeleteEventListener.cs b/src/NHibernate/Event/Default/DefaultDeleteEventListener.cs
index 13f9a2e20a1..96f6703563e 100644
--- a/src/NHibernate/Event/Default/DefaultDeleteEventListener.cs
+++ b/src/NHibernate/Event/Default/DefaultDeleteEventListener.cs
@@ -26,7 +26,7 @@ public partial class DefaultDeleteEventListener : IDeleteEventListener
/// The delete event to be handled.
public virtual void OnDelete(DeleteEvent @event)
{
- OnDelete(@event, new IdentitySet());
+ OnDelete(@event, new HashSet(ReferenceComparer.Instance));
}
public virtual void OnDelete(DeleteEvent @event, ISet transientEntities)
@@ -143,7 +143,7 @@ protected virtual void DeleteTransientEntity(IEventSource session, object entity
// NH different impl : NH-1895
if(transientEntities == null)
{
- transientEntities = new HashSet();
+ transientEntities = new HashSet(ReferenceComparer.Instance);
}
if (!transientEntities.Add(entity))
{
diff --git a/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs b/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
index 04ec2db6769..2e27559d1dd 100644
--- a/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
+++ b/src/NHibernate/Hql/Ast/ANTLR/QueryTranslatorImpl.cs
@@ -123,7 +123,7 @@ public IList List(ISessionImplementor session, QueryParameters queryParameters)
int size = results.Count;
var tmp = new List();
- var distinction = new IdentitySet();
+ var distinction = new HashSet(ReferenceComparer.Instance);
for ( int i = 0; i < size; i++ )
{
diff --git a/src/NHibernate/Util/IdentitySet.cs b/src/NHibernate/Util/IdentitySet.cs
index 8f7843071ca..d3db1d17758 100644
--- a/src/NHibernate/Util/IdentitySet.cs
+++ b/src/NHibernate/Util/IdentitySet.cs
@@ -1,13 +1,14 @@
using System;
using System.Collections;
using System.Collections.Generic;
-using System.Linq;
namespace NHibernate.Util
{
///
/// Set implementation that use reference equals instead of Equals() as its comparison mechanism.
///
+ // Since 5.3
+ [Obsolete("This class has no more usages and will be removed in a future version")]
public class IdentitySet : ISet
{
private IDictionary map;