8[DebuggerDisplay(
"Count = {Count}")]
 
   10public sealed class ImmutableHashSet<T> : 
IImmutableSet<T>, 
IReadOnlyCollection<T>, 
IEnumerable<T>, 
IEnumerable, 
IHashKeyCollection<T>, 
ICollection<T>, 
ISet<T>, 
ICollection, 
IStrongEnumerable<T, ImmutableHashSet<T>.Enumerator>, 
IReadOnlySet<T>
 
   58    [DebuggerDisplay(
"Count = {Count}")]
 
  157            return result.Count != 0;
 
 
  164            return result.Count != 0;
 
 
 
  709    object ICollection.SyncRoot => 
this;
 
  712    bool ICollection.IsSynchronized => 
true;
 
 1034            int num2 = ((
item != 
null) ? origin.EqualityComparer.GetHashCode(
item) : 0);
 
 
 1049        if (origin.
Root.IsEmpty)
 
 
 1163        if (origin.
Root.IsEmpty)
 
 1184            if (num == origin.Count && flag)
 
 
 1195        if (origin.
Root.IsEmpty)
 
 1208        return origin.Count > num;
 
 
 1214        if (origin.
Root.IsEmpty)
 
 1227        return num == origin.Count;
 
 
 
 1270public static class ImmutableHashSet
 
 1339        return source.ToImmutableHashSet(
null);
 
 
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
 
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
 
void CopyTo(KeyValuePair< TKey, TValue >[] array, int index)
 
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
 
bool ICollection< KeyValuePair< TKey, TValue > >. IsReadOnly
 
Enumerator GetEnumerator()
 
void Add(TKey key, TValue value)
 
bool TryGetValue(T equalValue, out T actualValue)
 
SortedInt32KeyNode< HashBucket > _root
 
bool IsSupersetOf(IEnumerable< T > other)
 
Builder(ImmutableHashSet< T > set)
 
readonly IEqualityComparer< HashBucket > _hashBucketEqualityComparer
 
ImmutableHashSet< T > ToImmutable()
 
IEqualityComparer< T > KeyComparer
 
void UnionWith(IEnumerable< T > other)
 
void SymmetricExceptWith(IEnumerable< T > other)
 
bool SetEquals(IEnumerable< T > other)
 
void IntersectWith(IEnumerable< T > other)
 
void Apply(MutationResult result)
 
void ExceptWith(IEnumerable< T > other)
 
Enumerator GetEnumerator()
 
IEqualityComparer< T > _equalityComparer
 
SortedInt32KeyNode< HashBucket > Root
 
bool Overlaps(IEnumerable< T > other)
 
bool IsProperSupersetOf(IEnumerable< T > other)
 
bool IsProperSubsetOf(IEnumerable< T > other)
 
bool IsSubsetOf(IEnumerable< T > other)
 
ImmutableHashSet< T > _immutable
 
static IEqualityComparer< HashBucket > DefaultInstance
 
HashBucketByRefEqualityComparer()
 
int GetHashCode(HashBucket obj)
 
static readonly IEqualityComparer< HashBucket > s_defaultInstance
 
bool Equals(HashBucket x, HashBucket y)
 
readonly IEqualityComparer< T > _valueComparer
 
static IEqualityComparer< HashBucket > DefaultInstance
 
bool Equals(HashBucket x, HashBucket y)
 
static readonly IEqualityComparer< HashBucket > s_defaultInstance
 
int GetHashCode(HashBucket obj)
 
HashBucketByValueEqualityComparer(IEqualityComparer< T > valueComparer)
 
static ImmutableHashSet< T > Wrap(SortedInt32KeyNode< HashBucket > root, IEqualityComparer< T > equalityComparer, int count)
 
static readonly Action< KeyValuePair< int, HashBucket > > s_FreezeBucketAction
 
static ImmutableHashSet< T > Create< T >()
 
readonly IEqualityComparer< HashBucket > _hashBucketEqualityComparer
 
static bool Overlaps(IEnumerable< T > other, MutationInput origin)
 
static MutationResult Except(IEnumerable< T > other, IEqualityComparer< T > equalityComparer, IEqualityComparer< HashBucket > hashBucketEqualityComparer, SortedInt32KeyNode< HashBucket > root)
 
ImmutableHashSet< T > Add(T item)
 
static IEqualityComparer< HashBucket > GetHashBucketEqualityComparer(IEqualityComparer< T > valueComparer)
 
bool IsProperSubsetOf(IEnumerable< T > other)
 
static bool IsSubsetOf(IEnumerable< T > other, MutationInput origin)
 
bool TryGetValue(T equalValue, out T actualValue)
 
bool IsProperSupersetOf(IEnumerable< T > other)
 
ImmutableHashSet< T > Union(IEnumerable< T > other)
 
ImmutableHashSet< T > Intersect(IEnumerable< T > other)
 
ImmutableHashSet< T > Wrap(SortedInt32KeyNode< HashBucket > root, int adjustedCountIfDifferentRoot)
 
static ImmutableHashSet< T > CreateRange< T >(IEnumerable< T > items)
 
static MutationResult Union(IEnumerable< T > other, MutationInput origin)
 
static MutationResult Add(T item, MutationInput origin)
 
ImmutableHashSet< T > Remove(T item)
 
ImmutableHashSet< T > Union(IEnumerable< T > items, bool avoidWithComparer)
 
static ImmutableHashSet< T >.Builder CreateBuilder< T >()
 
static bool IsSupersetOf(IEnumerable< T > other, MutationInput origin)
 
ImmutableHashSet(SortedInt32KeyNode< HashBucket > root, IEqualityComparer< T > equalityComparer, int count)
 
static bool Contains(T item, MutationInput origin)
 
ImmutableHashSet< T > SymmetricExcept(IEnumerable< T > other)
 
ImmutableHashSet< T > Except(IEnumerable< T > other)
 
static bool SetEquals(IEnumerable< T > other, MutationInput origin)
 
static MutationResult Remove(T item, MutationInput origin)
 
ImmutableHashSet< T > WithComparer(IEqualityComparer< T >? equalityComparer)
 
static bool IsProperSupersetOf(IEnumerable< T > other, MutationInput origin)
 
ImmutableHashSet(IEqualityComparer< T > equalityComparer)
 
ImmutableHashSet< T > Clear()
 
static SortedInt32KeyNode< HashBucket > UpdateRoot(SortedInt32KeyNode< HashBucket > root, int hashCode, IEqualityComparer< HashBucket > hashBucketEqualityComparer, HashBucket newBucket)
 
readonly SortedInt32KeyNode< HashBucket > _root
 
static ImmutableHashSet< TSource > ToImmutableHashSet< TSource >(this IEnumerable< TSource > source, IEqualityComparer< TSource >? equalityComparer)
 
bool Overlaps(IEnumerable< T > other)
 
bool IsSubsetOf(IEnumerable< T > other)
 
Enumerator GetEnumerator()
 
static bool IsProperSubsetOf(IEnumerable< T > other, MutationInput origin)
 
bool SetEquals(IEnumerable< T > other)
 
static MutationResult Intersect(IEnumerable< T > other, MutationInput origin)
 
static MutationResult SymmetricExcept(IEnumerable< T > other, MutationInput origin)
 
IEqualityComparer< T > KeyComparer
 
bool IsSupersetOf(IEnumerable< T > other)
 
readonly IEqualityComparer< T > _equalityComparer
 
static void Range(bool condition, string? parameterName, string? message=null)
 
static string CollectionModifiedDuringEnumeration
 
int GetHashCode([DisallowNull] T obj)
 
void CopyTo(Array array, int index)
 
IEnumerator GetEnumerator()
 
object? IEnumerator. Current
 
readonly Builder _builder
 
SortedInt32KeyNode< HashBucket >.Enumerator _mapEnumerator
 
Enumerator(SortedInt32KeyNode< HashBucket > root, Builder? builder=null)
 
int _enumeratingBuilderVersion
 
HashBucket.Enumerator _bucketEnumerator
 
Position _currentPosition
 
Enumerator(HashBucket bucket)
 
object? IEnumerator. Current
 
readonly HashBucket _bucket
 
ImmutableList< T >.Enumerator _additionalEnumerator
 
bool TryExchange(T value, IEqualityComparer< T > valueComparer, out T existingValue)
 
Enumerator GetEnumerator()
 
HashBucket(T firstElement, ImmutableList< T >.Node additionalElements=null)
 
bool EqualsByRef(HashBucket other)
 
bool Contains(T value, IEqualityComparer< T > valueComparer)
 
bool EqualsByValue(HashBucket other, IEqualityComparer< T > valueComparer)
 
override bool Equals(object? obj)
 
HashBucket Add(T value, IEqualityComparer< T > valueComparer, out OperationResult result)
 
HashBucket Remove(T value, IEqualityComparer< T > equalityComparer, out OperationResult result)
 
override int GetHashCode()
 
readonly ImmutableList< T >.Node _additionalElements
 
MutationResult(SortedInt32KeyNode< HashBucket > root, int count, CountType countType=CountType.Adjustment)
 
SortedInt32KeyNode< HashBucket > Root
 
readonly SortedInt32KeyNode< HashBucket > _root
 
ImmutableHashSet< T > Finalize(ImmutableHashSet< T > priorSet)
 
readonly CountType _countType
 
NodeEnumerable(SortedInt32KeyNode< HashBucket > root)
 
Enumerator GetEnumerator()
 
readonly SortedInt32KeyNode< HashBucket > _root