7 instantiations of SegmentedHashSet
Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost (7)
src\Dependencies\Collections\ImmutableSegmentedHashSet`1.cs (3)
67public static readonly ImmutableSegmentedHashSet<T> Empty = new(new SegmentedHashSet<T>()); 112var set = new SegmentedHashSet<T>(self.KeyComparer) { value }; 311return new ImmutableSegmentedHashSet<T>(new SegmentedHashSet<T>(self._set, equalityComparer));
src\Dependencies\Collections\ImmutableSegmentedHashSet`1+ValueBuilder.cs (3)
48_mutableSet = new SegmentedHashSet<T>(ReadOnlySet, value ?? EqualityComparer<T>.Default); 68_mutableSet = new SegmentedHashSet<T>(originalSet._set, originalSet.KeyComparer); 90_mutableSet = new SegmentedHashSet<T>(KeyComparer);
src\Dependencies\Collections\SegmentedHashSet`1.cs (1)
374return LazyInitializer.EnsureInitialized(ref s_emptyEnumerator, static () => new Enumerator(new SegmentedHashSet<T>()))!;
88 references to SegmentedHashSet
Microsoft.CodeAnalysis.Workspaces.MSBuild.BuildHost (88)
src\Dependencies\Collections\ImmutableSegmentedHashSet`1.cs (3)
69private readonly SegmentedHashSet<T> _set; 71private ImmutableSegmentedHashSet(SegmentedHashSet<T> set) 112var set = new SegmentedHashSet<T>(self.KeyComparer) { value };
src\Dependencies\Collections\ImmutableSegmentedHashSet`1+Enumerator.cs (3)
16private readonly SegmentedHashSet<T> _set; 17private SegmentedHashSet<T>.Enumerator _enumerator; 19internal Enumerator(SegmentedHashSet<T> set)
src\Dependencies\Collections\ImmutableSegmentedHashSet`1+PrivateMarshal.cs (6)
20var set = Volatile.Read(ref Unsafe.AsRef(in location._set)); 29var set = Interlocked.Exchange(ref Unsafe.AsRef(in location._set), value._set); 38var set = Interlocked.CompareExchange(ref Unsafe.AsRef(in location._set), value._set, comparand._set); 45/// <inheritdoc cref="SegmentedCollectionsMarshal.AsImmutableSegmentedHashSet{T}(SegmentedHashSet{T}?)"/> 46internal static ImmutableSegmentedHashSet<T> AsImmutableSegmentedHashSet(SegmentedHashSet<T>? set) 50internal static SegmentedHashSet<T>? AsSegmentedHashSet(ImmutableSegmentedHashSet<T> set)
src\Dependencies\Collections\ImmutableSegmentedHashSet`1+ValueBuilder.cs (5)
27private SegmentedHashSet<T>? _mutableSet; 56internal readonly SegmentedHashSet<T> ReadOnlySet => _mutableSet ?? _set._set; 60private SegmentedHashSet<T> GetOrCreateMutableSet() 147SegmentedHashSet<T>? mutableSet = null; 243SegmentedHashSet<T>? mutableSet = null;
src\Dependencies\Collections\Internal\SegmentedHashSetEqualityComparer`1.cs (5)
17internal sealed class SegmentedHashSetEqualityComparer<T> : IEqualityComparer<SegmentedHashSet<T>?> 19public bool Equals(SegmentedHashSet<T>? x, SegmentedHashSet<T>? y) 37if (SegmentedHashSet<T>.EqualityComparersAreEqual(x, y)) 65public int GetHashCode(SegmentedHashSet<T>? obj)
src\Dependencies\Collections\SegmentedCollectionsMarshal.cs (7)
138/// Gets an <see cref="ImmutableSegmentedHashSet{T}"/> value wrapping the input <see cref="SegmentedHashSet{T}"/>. 156public static ImmutableSegmentedHashSet<T> AsImmutableSegmentedHashSet<T>(SegmentedHashSet<T>? set) 160/// Gets the underlying <see cref="SegmentedHashSet{T}"/> for an input <see cref="ImmutableSegmentedHashSet{T}"/> value. 163/// <param name="set">The input <see cref="ImmutableSegmentedHashSet{T}"/> value to get the underlying <see cref="SegmentedHashSet{T}"/> from.</param> 164/// <returns>The underlying <see cref="SegmentedHashSet{T}"/> for <paramref name="set"/>, if present; otherwise, <see langword="null"/>.</returns> 173/// property is <see langword="true"/>), the resulting <see cref="SegmentedHashSet{T}"/> will be <see langword="null"/>. 176public static SegmentedHashSet<T>? AsSegmentedHashSet<T>(ImmutableSegmentedHashSet<T> set)
src\Dependencies\Collections\SegmentedHashSet`1.cs (54)
110if (collection is SegmentedHashSet<T> otherAsHashSet && EqualityComparersAreEqual(this, otherAsHashSet)) 150private void ConstructFrom(SegmentedHashSet<T> source) 196/// <summary>Removes all elements from the <see cref="SegmentedHashSet{T}"/> object.</summary> 213/// <summary>Determines whether the <see cref="SegmentedHashSet{T}"/> contains the specified element.</summary> 214/// <param name="item">The element to locate in the <see cref="SegmentedHashSet{T}"/> object.</param> 215/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object contains the specified element; otherwise, false.</returns> 381/// <summary>Adds the specified element to the <see cref="SegmentedHashSet{T}"/>.</summary> 383/// <returns>true if the element is added to the <see cref="SegmentedHashSet{T}"/> object; false if the element is already present.</returns> 412/// <summary>Modifies the current <see cref="SegmentedHashSet{T}"/> object to contain all elements that are present in itself, the specified collection, or both.</summary> 413/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 427/// <summary>Modifies the current <see cref="SegmentedHashSet{T}"/> object to contain only elements that are present in that object and in the specified collection.</summary> 428/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 454if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 464/// <summary>Removes all elements in the specified collection from the current <see cref="SegmentedHashSet{T}"/> object.</summary> 465/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 493/// <summary>Modifies the current <see cref="SegmentedHashSet{T}"/> object to contain only elements that are present either in that object or in the specified collection, but not both.</summary> 494/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 521if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 531/// <summary>Determines whether a <see cref="SegmentedHashSet{T}"/> object is a subset of the specified collection.</summary> 532/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 533/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object is a subset of <paramref name="other"/>; otherwise, false.</returns> 550if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 567/// <summary>Determines whether a <see cref="SegmentedHashSet{T}"/> object is a proper subset of the specified collection.</summary> 568/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 569/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object is a proper subset of <paramref name="other"/>; otherwise, false.</returns> 598if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 615/// <summary>Determines whether a <see cref="SegmentedHashSet{T}"/> object is a proper superset of the specified collection.</summary> 616/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 617/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object is a superset of <paramref name="other"/>; otherwise, false.</returns> 641if (other is SegmentedHashSet<T> otherAsSet && 660/// <summary>Determines whether a <see cref="SegmentedHashSet{T}"/> object is a proper superset of the specified collection.</summary> 661/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 662/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object is a proper superset of <paramref name="other"/>; otherwise, false.</returns> 686if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 703/// <summary>Determines whether the current <see cref="SegmentedHashSet{T}"/> object and a specified collection share common elements.</summary> 704/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 705/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object and <paramref name="other"/> share at least one common element; otherwise, false.</returns> 735/// <summary>Determines whether a <see cref="SegmentedHashSet{T}"/> object and the specified collection contain the same elements.</summary> 736/// <param name="other">The collection to compare to the current <see cref="SegmentedHashSet{T}"/> object.</param> 737/// <returns>true if the <see cref="SegmentedHashSet{T}"/> object is equal to <paramref name="other"/>; otherwise, false.</returns> 752if (other is SegmentedHashSet<T> otherAsSet && EqualityComparersAreEqual(this, otherAsSet)) 782/// <summary>Copies the elements of a <see cref="SegmentedHashSet{T}"/> object to an array, starting at the specified array index.</summary> 831/// <summary>Removes all elements that match the conditions defined by the specified predicate from a <see cref="SegmentedHashSet{T}"/> collection.</summary> 947/// Sets the capacity of a <see cref="SegmentedHashSet{T}"/> object to the actual number of elements it contains, 989/// <summary>Returns an <see cref="IEqualityComparer"/> object that can be used for equality testing of a <see cref="SegmentedHashSet{T}"/> object.</summary> 990public static IEqualityComparer<SegmentedHashSet<T>> CreateSetComparer() => new SegmentedHashSetEqualityComparer<T>(); 1014/// <returns>true if the element is added to the <see cref="SegmentedHashSet{T}"/> object; false if the element is already present.</returns> 1128internal bool IsSubsetOfHashSetWithSameComparer(SegmentedHashSet<T> other) 1145private void IntersectWithHashSetWithSameComparer(SegmentedHashSet<T> other) 1212private void SymmetricExceptWithUniqueHashSet(SegmentedHashSet<T> other) 1370internal static bool EqualityComparersAreEqual(SegmentedHashSet<T> set1, SegmentedHashSet<T> set2) => set1.Comparer.Equals(set2.Comparer); 1388private readonly SegmentedHashSet<T> _hashSet; 1393internal Enumerator(SegmentedHashSet<T> hashSet)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\ObjectPools\Extensions.cs (5)
133public static SegmentedHashSet<T> AllocateAndClear<T>(this ObjectPool<SegmentedHashSet<T>> pool) 135var set = pool.Allocate(); 201public static void ClearAndFree<T>(this ObjectPool<SegmentedHashSet<T>> pool, SegmentedHashSet<T> set)