7 instantiations of ImmutableSegmentedHashSet
Microsoft.CodeAnalysis (7)
ImmutableSegmentedHashSet`1.cs (3)
16
public static readonly ImmutableSegmentedHashSet<T> Empty =
new
(new SegmentedHashSet<T>());
62
return new
ImmutableSegmentedHashSet
<T>(set);
263
return new
ImmutableSegmentedHashSet
<T>(new SegmentedHashSet<T>(self._set, equalityComparer));
ImmutableSegmentedHashSet`1+Builder.cs (1)
259
_set = new
ImmutableSegmentedHashSet
<T>(ReadOnlySet);
ImmutableSegmentedHashSet`1+PrivateInterlocked.cs (3)
23
return new
ImmutableSegmentedHashSet
<T>(set);
32
return new
ImmutableSegmentedHashSet
<T>(set);
41
return new
ImmutableSegmentedHashSet
<T>(set);
146 references to ImmutableSegmentedHashSet
Microsoft.CodeAnalysis (103)
ImmutableSegmentedHashSet.cs (30)
14
public static
ImmutableSegmentedHashSet
<T> Create<T>()
15
=>
ImmutableSegmentedHashSet
<T>.Empty;
18
public static
ImmutableSegmentedHashSet
<T> Create<T>(T item)
19
=>
ImmutableSegmentedHashSet
<T>.Empty.Add(item);
22
public static
ImmutableSegmentedHashSet
<T> Create<T>(params T[] items)
23
=>
ImmutableSegmentedHashSet
<T>.Empty.Union(items);
26
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer)
27
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer);
30
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item)
31
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Add(item);
34
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items)
35
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Union(items);
38
public static
ImmutableSegmentedHashSet
<T>.Builder CreateBuilder<T>()
39
=>
ImmutableSegmentedHashSet
<T>.Empty.ToBuilder();
42
public static
ImmutableSegmentedHashSet
<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer)
43
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).ToBuilder();
46
public static
ImmutableSegmentedHashSet
<T> CreateRange<T>(IEnumerable<T> items)
48
if (items is
ImmutableSegmentedHashSet
<T> existingSet)
51
return
ImmutableSegmentedHashSet
<T>.Empty.Union(items);
55
public static
ImmutableSegmentedHashSet
<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items)
57
if (items is
ImmutableSegmentedHashSet
<T> existingSet)
60
return
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Union(items);
64
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source)
66
if (source is
ImmutableSegmentedHashSet
<TSource> existingSet)
69
return
ImmutableSegmentedHashSet
<TSource>.Empty.Union(source);
73
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
75
if (source is
ImmutableSegmentedHashSet
<TSource> existingSet)
78
return
ImmutableSegmentedHashSet
<TSource>.Empty.WithComparer(equalityComparer).Union(source);
82
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this
ImmutableSegmentedHashSet
<TSource>.Builder builder)
ImmutableSegmentedHashSet`1.cs (32)
13
internal readonly partial struct ImmutableSegmentedHashSet<T> : IImmutableSet<T>, ISet<T>, ICollection, IEquatable<
ImmutableSegmentedHashSet
<T>>
16
public static readonly
ImmutableSegmentedHashSet
<T> Empty = new(new SegmentedHashSet<T>());
42
public static bool operator ==(
ImmutableSegmentedHashSet
<T> left,
ImmutableSegmentedHashSet
<T> right)
45
public static bool operator !=(
ImmutableSegmentedHashSet
<T> left,
ImmutableSegmentedHashSet
<T> right)
48
public static bool operator ==(
ImmutableSegmentedHashSet
<T>? left,
ImmutableSegmentedHashSet
<T>? right)
51
public static bool operator !=(
ImmutableSegmentedHashSet
<T>? left,
ImmutableSegmentedHashSet
<T>? right)
55
public
ImmutableSegmentedHashSet
<T> Add(T value)
57
var
self = this;
79
public
ImmutableSegmentedHashSet
<T> Clear()
81
var
self = this;
96
public
ImmutableSegmentedHashSet
<T> Except(IEnumerable<T> other)
98
var
self = this;
100
if (other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
129
public
ImmutableSegmentedHashSet
<T> Intersect(IEnumerable<T> other)
131
var
self = this;
133
if (self.IsEmpty || other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
168
public
ImmutableSegmentedHashSet
<T> Remove(T value)
170
var
self = this;
191
public
ImmutableSegmentedHashSet
<T> SymmetricExcept(IEnumerable<T> other)
193
var
self = this;
195
if (other is
ImmutableSegmentedHashSet
<T> otherSet)
231
public
ImmutableSegmentedHashSet
<T> Union(IEnumerable<T> other)
233
var
self = this;
235
if (other is
ImmutableSegmentedHashSet
<T> otherSet)
255
public
ImmutableSegmentedHashSet
<T> WithComparer(IEqualityComparer<T>? equalityComparer)
257
var
self = this;
270
=> obj is
ImmutableSegmentedHashSet
<T> other && Equals(other);
272
public bool Equals(
ImmutableSegmentedHashSet
<T> other)
ImmutableSegmentedHashSet`1+Builder.cs (6)
20
private
ImmutableSegmentedHashSet
<T> _set;
28
internal Builder(
ImmutableSegmentedHashSet
<T> set)
63
var
originalSet = RoslynImmutableInterlocked.InterlockedExchange(ref _set, default);
120
else if (other is
ImmutableSegmentedHashSet
<T> otherSet)
230
if (other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
257
public
ImmutableSegmentedHashSet
<T> ToImmutable()
ImmutableSegmentedHashSet`1+PrivateInterlocked.cs (9)
17
internal static
ImmutableSegmentedHashSet
<T> VolatileRead(in
ImmutableSegmentedHashSet
<T> location)
26
internal static
ImmutableSegmentedHashSet
<T> InterlockedExchange(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
35
internal static
ImmutableSegmentedHashSet
<T> InterlockedCompareExchange(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value,
ImmutableSegmentedHashSet
<T> comparand)
RoslynImmutableInterlocked.cs (26)
151
public static bool Update<T>(ref
ImmutableSegmentedHashSet
<T> location, Func<
ImmutableSegmentedHashSet
<T>,
ImmutableSegmentedHashSet
<T>> transformer)
156
var
oldValue =
ImmutableSegmentedHashSet
<T>.PrivateInterlocked.VolatileRead(in location);
159
var
newValue = transformer(oldValue);
166
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
192
public static bool Update<T, TArg>(ref
ImmutableSegmentedHashSet
<T> location, Func<
ImmutableSegmentedHashSet
<T>, TArg,
ImmutableSegmentedHashSet
<T>> transformer, TArg transformerArgument)
197
var
oldValue =
ImmutableSegmentedHashSet
<T>.PrivateInterlocked.VolatileRead(in location);
200
var
newValue = transformer(oldValue, transformerArgument);
207
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
223
public static
ImmutableSegmentedHashSet
<T> InterlockedExchange<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
225
return
ImmutableSegmentedHashSet
<T>.PrivateInterlocked.InterlockedExchange(ref location, value);
237
public static
ImmutableSegmentedHashSet
<T> InterlockedCompareExchange<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value,
ImmutableSegmentedHashSet
<T> comparand)
239
return
ImmutableSegmentedHashSet
<T>.PrivateInterlocked.InterlockedCompareExchange(ref location, value, comparand);
251
public static bool InterlockedInitialize<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
253
return InterlockedCompareExchange(ref location, value, default(
ImmutableSegmentedHashSet
<T>)).IsDefault;
Microsoft.CodeAnalysis.UnitTests (43)
Collections\ImmutableSegmentedHashSetBuilderTest.cs (16)
34
var builder =
ImmutableSegmentedHashSet
<int>.Empty.ToBuilder();
43
var
set = builder.ToImmutable();
55
var
set =
ImmutableSegmentedHashSet
<int>.Empty.Add(1);
66
var
set2 = builder.ToImmutable();
81
var builder =
ImmutableSegmentedHashSet
<int>.Empty.Union(Enumerable.Range(1, 10)).ToBuilder();
103
var
collection =
ImmutableSegmentedHashSet
<int>.Empty.Add(1);
108
var
newImmutable = builder.ToImmutable();
123
var
set = ImmutableSegmentedHashSet.Create(1);
143
var
set = builder.ToImmutable();
155
var
set = builder.ToImmutable();
168
var
set = builder.ToImmutable();
293
var builder =
ImmutableSegmentedHashSet
<string?>.Empty.ToBuilder();
321
ImmutableSegmentedHashSet
<int>.Builder builder = ImmutableSegmentedHashSet.CreateBuilder<int>();
339
ImmutableSegmentedHashSet
<int>.Builder? nullBuilder = null;
Collections\ImmutableSegmentedHashSetTest.cs (21)
32
ImmutableSegmentedHashSet
<string>.Empty.WithComparer(StringComparer.Ordinal),
37
ImmutableSegmentedHashSet
<string>.Empty.WithComparer(StringComparer.OrdinalIgnoreCase),
46
var
ordinalSet =
ImmutableSegmentedHashSet
<string>.Empty
53
var
ignoreCaseSet = ordinalSet.WithComparer(StringComparer.OrdinalIgnoreCase);
61
var
set =
ImmutableSegmentedHashSet
<string>.Empty
71
var
emptySet = EmptyTyped<int>().WithComparer(new BadHasher<int>());
78
var
emptySet = EmptyTyped<string>().WithComparer(new BadHasher<string>());
85
var
collection = ImmutableSegmentedHashSet.Create<int>().Add(5);
114
var
set = ImmutableSegmentedHashSet.Create<string?>();
161
var
set = ImmutableSegmentedHashSet.Create<int>(new BadHasher<int>(), 5, 6);
163
var
setAfterRemovingFive = set.Remove(5);
176
var
set = ImmutableSegmentedHashSet.Create<string>(new BadHasher<string>(), "a", "b");
178
var
setAfterRemovingA = set.Remove("a");
187
ImmutableSegmentedHashSet
<int> set = ImmutableSegmentedHashSet.Create(1, 2, 3);
205
var
set = ImmutableSegmentedHashSet.Create<string>("a").WithComparer(StringComparer.OrdinalIgnoreCase);
211
var
actualSet = set.SymmetricExcept(otherCollection);
217
return
ImmutableSegmentedHashSet
<T>.Empty;
220
private protected static
ImmutableSegmentedHashSet
<T> EmptyTyped<T>()
222
return
ImmutableSegmentedHashSet
<T>.Empty;
Collections\ImmutableSegmentedHashSetTest.nonnetstandard.cs (2)
30
TryGetValueTestHelper(
ImmutableSegmentedHashSet
<string>.Empty.WithComparer(StringComparer.OrdinalIgnoreCase));
50
Assert.True(IsSame(emptySet,
ImmutableSegmentedHashSet
<T>.Empty));
Collections\ImmutableSetTest.nonnetstandard.cs (2)
66
ImmutableSegmentedHashSet
<T> => null,
82
ImmutableSegmentedHashSet
<T> s => s.KeyComparer,
Collections\ImmutablesTestBase.cs (2)
75
if (first is
ImmutableSegmentedHashSet
<T> firstSegmented
76
&& second is
ImmutableSegmentedHashSet
<T> secondSegmented)