8 instantiations of ImmutableSegmentedHashSet
Microsoft.CodeAnalysis (8)
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (3)
69
public static readonly ImmutableSegmentedHashSet<T> Empty =
new
(new SegmentedHashSet<T>());
115
return new
ImmutableSegmentedHashSet
<T>(set);
313
return new
ImmutableSegmentedHashSet
<T>(new SegmentedHashSet<T>(self._set, equalityComparer));
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+PrivateMarshal.cs (4)
26
return new
ImmutableSegmentedHashSet
<T>(set);
35
return new
ImmutableSegmentedHashSet
<T>(set);
44
return new
ImmutableSegmentedHashSet
<T>(set);
49
=> set is not null ? new
ImmutableSegmentedHashSet
<T>(set) : default;
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (1)
266
_set = new
ImmutableSegmentedHashSet
<T>(ReadOnlySet);
192 references to ImmutableSegmentedHashSet
Microsoft.CodeAnalysis (127)
src\Dependencies\Collections\RoslynImmutableInterlocked.cs (26)
154
public static bool Update<T>(ref
ImmutableSegmentedHashSet
<T> location, Func<
ImmutableSegmentedHashSet
<T>,
ImmutableSegmentedHashSet
<T>> transformer)
159
var
oldValue =
ImmutableSegmentedHashSet
<T>.PrivateMarshal.VolatileRead(in location);
162
var
newValue = transformer(oldValue);
169
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
195
public static bool Update<T, TArg>(ref
ImmutableSegmentedHashSet
<T> location, Func<
ImmutableSegmentedHashSet
<T>, TArg,
ImmutableSegmentedHashSet
<T>> transformer, TArg transformerArgument)
200
var
oldValue =
ImmutableSegmentedHashSet
<T>.PrivateMarshal.VolatileRead(in location);
203
var
newValue = transformer(oldValue, transformerArgument);
210
var
interlockedResult = InterlockedCompareExchange(ref location, newValue, oldValue);
226
public static
ImmutableSegmentedHashSet
<T> InterlockedExchange<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
228
return
ImmutableSegmentedHashSet
<T>.PrivateMarshal.InterlockedExchange(ref location, value);
240
public static
ImmutableSegmentedHashSet
<T> InterlockedCompareExchange<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value,
ImmutableSegmentedHashSet
<T> comparand)
242
return
ImmutableSegmentedHashSet
<T>.PrivateMarshal.InterlockedCompareExchange(ref location, value, comparand);
254
public static bool InterlockedInitialize<T>(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
256
return InterlockedCompareExchange(ref location, value, default(
ImmutableSegmentedHashSet
<T>)).IsDefault;
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet.cs (30)
16
public static
ImmutableSegmentedHashSet
<T> Create<T>()
17
=>
ImmutableSegmentedHashSet
<T>.Empty;
20
public static
ImmutableSegmentedHashSet
<T> Create<T>(T item)
21
=>
ImmutableSegmentedHashSet
<T>.Empty.Add(item);
24
public static
ImmutableSegmentedHashSet
<T> Create<T>(params T[] items)
25
=>
ImmutableSegmentedHashSet
<T>.Empty.Union(items);
28
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer)
29
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer);
32
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer, T item)
33
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Add(item);
36
public static
ImmutableSegmentedHashSet
<T> Create<T>(IEqualityComparer<T>? equalityComparer, params T[] items)
37
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Union(items);
40
public static
ImmutableSegmentedHashSet
<T>.Builder CreateBuilder<T>()
41
=>
ImmutableSegmentedHashSet
<T>.Empty.ToBuilder();
44
public static
ImmutableSegmentedHashSet
<T>.Builder CreateBuilder<T>(IEqualityComparer<T>? equalityComparer)
45
=>
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).ToBuilder();
48
public static
ImmutableSegmentedHashSet
<T> CreateRange<T>(IEnumerable<T> items)
50
if (items is
ImmutableSegmentedHashSet
<T> existingSet)
53
return
ImmutableSegmentedHashSet
<T>.Empty.Union(items);
57
public static
ImmutableSegmentedHashSet
<T> CreateRange<T>(IEqualityComparer<T>? equalityComparer, IEnumerable<T> items)
59
if (items is
ImmutableSegmentedHashSet
<T> existingSet)
62
return
ImmutableSegmentedHashSet
<T>.Empty.WithComparer(equalityComparer).Union(items);
66
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source)
68
if (source is
ImmutableSegmentedHashSet
<TSource> existingSet)
71
return
ImmutableSegmentedHashSet
<TSource>.Empty.Union(source);
75
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this IEnumerable<TSource> source, IEqualityComparer<TSource>? equalityComparer)
77
if (source is
ImmutableSegmentedHashSet
<TSource> existingSet)
80
return
ImmutableSegmentedHashSet
<TSource>.Empty.WithComparer(equalityComparer).Union(source);
84
public static
ImmutableSegmentedHashSet
<TSource> ToImmutableSegmentedHashSet<TSource>(this
ImmutableSegmentedHashSet
<TSource>.Builder builder)
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1.cs (35)
19
/// <para>There are different scenarios best for <see cref="
ImmutableSegmentedHashSet
{T}"/> and others
23
/// <see cref="
ImmutableSegmentedHashSet
{T}"/>:</para>
28
/// <description><see cref="
ImmutableSegmentedHashSet
{T}"/> Complexity</description>
66
internal readonly partial struct ImmutableSegmentedHashSet<T> : IImmutableSet<T>, ISet<T>, ICollection, IEquatable<
ImmutableSegmentedHashSet
<T>>
69
public static readonly
ImmutableSegmentedHashSet
<T> Empty = new(new SegmentedHashSet<T>());
95
public static bool operator ==(
ImmutableSegmentedHashSet
<T> left,
ImmutableSegmentedHashSet
<T> right)
98
public static bool operator !=(
ImmutableSegmentedHashSet
<T> left,
ImmutableSegmentedHashSet
<T> right)
101
public static bool operator ==(
ImmutableSegmentedHashSet
<T>? left,
ImmutableSegmentedHashSet
<T>? right)
104
public static bool operator !=(
ImmutableSegmentedHashSet
<T>? left,
ImmutableSegmentedHashSet
<T>? right)
108
public
ImmutableSegmentedHashSet
<T> Add(T value)
110
var
self = this;
131
public
ImmutableSegmentedHashSet
<T> Clear()
133
var
self = this;
148
public
ImmutableSegmentedHashSet
<T> Except(IEnumerable<T> other)
150
var
self = this;
152
if (other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
180
public
ImmutableSegmentedHashSet
<T> Intersect(IEnumerable<T> other)
182
var
self = this;
184
if (self.IsEmpty || other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
218
public
ImmutableSegmentedHashSet
<T> Remove(T value)
220
var
self = this;
240
public
ImmutableSegmentedHashSet
<T> SymmetricExcept(IEnumerable<T> other)
242
var
self = this;
244
if (other is
ImmutableSegmentedHashSet
<T> otherSet)
279
public
ImmutableSegmentedHashSet
<T> Union(IEnumerable<T> other)
281
var
self = this;
283
if (other is
ImmutableSegmentedHashSet
<T> otherSet)
305
public
ImmutableSegmentedHashSet
<T> WithComparer(IEqualityComparer<T>? equalityComparer)
307
var
self = this;
320
=> obj is
ImmutableSegmentedHashSet
<T> other && Equals(other);
322
public bool Equals(
ImmutableSegmentedHashSet
<T> other)
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+Builder.cs (2)
23
internal Builder(
ImmutableSegmentedHashSet
<T> set)
114
public
ImmutableSegmentedHashSet
<T> ToImmutable()
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+PrivateMarshal.cs (12)
20
internal static
ImmutableSegmentedHashSet
<T> VolatileRead(in
ImmutableSegmentedHashSet
<T> location)
29
internal static
ImmutableSegmentedHashSet
<T> InterlockedExchange(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value)
38
internal static
ImmutableSegmentedHashSet
<T> InterlockedCompareExchange(ref
ImmutableSegmentedHashSet
<T> location,
ImmutableSegmentedHashSet
<T> value,
ImmutableSegmentedHashSet
<T> comparand)
48
internal static
ImmutableSegmentedHashSet
<T> AsImmutableSegmentedHashSet(SegmentedHashSet<T>? set)
51
/// <inheritdoc cref="SegmentedCollectionsMarshal.AsSegmentedHashSet{T}(
ImmutableSegmentedHashSet
{T})"/>
52
internal static SegmentedHashSet<T>? AsSegmentedHashSet(
ImmutableSegmentedHashSet
<T> set)
src\Dependencies\Collections\Segmented\ImmutableSegmentedHashSet`1+ValueBuilder.cs (6)
23
private
ImmutableSegmentedHashSet
<T> _set;
31
internal ValueBuilder(
ImmutableSegmentedHashSet
<T> set)
66
var
originalSet = RoslynImmutableInterlocked.InterlockedExchange(ref _set, default);
127
else if (other is
ImmutableSegmentedHashSet
<T> otherSet)
237
if (other is
ImmutableSegmentedHashSet
<T> { IsEmpty: true })
264
public
ImmutableSegmentedHashSet
<T> ToImmutable()
src\Dependencies\Collections\Segmented\SegmentedCollectionsMarshal.cs (16)
140
/// Gets an <see cref="
ImmutableSegmentedHashSet
{T}"/> value wrapping the input <see cref="SegmentedHashSet{T}"/>.
143
/// <param name="set">The input segmented hash set to wrap in the returned <see cref="
ImmutableSegmentedHashSet
{T}"/> value.</param>
144
/// <returns>An <see cref="
ImmutableSegmentedHashSet
{T}"/> value wrapping <paramref name="set"/>.</returns>
148
/// set, and that it won't be modified once the returned <see cref="
ImmutableSegmentedHashSet
{T}"/> value starts
150
/// <see cref="
ImmutableSegmentedHashSet
{T}"/> values to change after its creation.
153
/// If <paramref name="set"/> is <see langword="null"/>, the returned <see cref="
ImmutableSegmentedHashSet
{T}"/>
154
/// value will be uninitialized (i.e. its <see cref="
ImmutableSegmentedHashSet
{T}.IsDefault"/> property will be
158
public static
ImmutableSegmentedHashSet
<T> AsImmutableSegmentedHashSet<T>(SegmentedHashSet<T>? set)
159
=>
ImmutableSegmentedHashSet
<T>.PrivateMarshal.AsImmutableSegmentedHashSet(set);
162
/// Gets the underlying <see cref="SegmentedHashSet{T}"/> for an input <see cref="
ImmutableSegmentedHashSet
{T}"/> value.
164
/// <typeparam name="T">The type of elements in the input <see cref="
ImmutableSegmentedHashSet
{T}"/> value.</typeparam>
165
/// <param name="set">The input <see cref="
ImmutableSegmentedHashSet
{T}"/> value to get the underlying <see cref="SegmentedHashSet{T}"/> from.</param>
171
/// don't expect the contents of the <see cref="
ImmutableSegmentedHashSet
{T}"/> value to change.
174
/// If <paramref name="set"/> is uninitialized (i.e. its <see cref="
ImmutableSegmentedHashSet
{T}.IsDefault"/>
178
public static SegmentedHashSet<T>? AsSegmentedHashSet<T>(
ImmutableSegmentedHashSet
<T> set)
179
=>
ImmutableSegmentedHashSet
<T>.PrivateMarshal.AsSegmentedHashSet(set);
Microsoft.CodeAnalysis.CSharp (19)
Compilation\SyntaxAndDeclarationManager.cs (12)
61
var lastComputedMemberNamesMap = PooledDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>>.GetInstance();
164
IDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>> lastComputedMemberNamesMap,
179
lastComputedMemberNames: OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>.Empty, ref declTable);
185
lastComputedMemberNamesMap.Add(tree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>.Empty);
199
IDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>> lastComputedMemberNamesMap,
296
OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>> lastComputedMemberNames,
501
OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>> lastComputedMemberNames = tryGetLastComputedMemberNames(
605
static OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>> tryGetLastComputedMemberNames(
608
ImmutableDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>>.Builder lastComputedMemberNamesMap)
618
var builder = ArrayBuilder<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>.GetInstance();
642
builder.Add(new WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>(singleType.MemberNames));
659
return OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>.Empty;
Compilation\SyntaxAndDeclarationManager.LazyState.cs (2)
43
internal readonly ImmutableDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>> LastComputedMemberNames;
52
ImmutableDictionary<SyntaxTree, OneOrMany<WeakReference<StrongBox<
ImmutableSegmentedHashSet
<string>>>>> lastComputedMemberNames,
Declarations\DeclarationTreeBuilder.cs (2)
22
using BoxedMemberNames = StrongBox<
ImmutableSegmentedHashSet
<string>>;
39
private static readonly BoxedMemberNames s_emptyMemberNames = new BoxedMemberNames(
ImmutableSegmentedHashSet
<string>.Empty);
Declarations\SingleTypeDeclaration.cs (3)
29
private readonly StrongBox<
ImmutableSegmentedHashSet
<string>> _memberNames;
85
StrongBox<
ImmutableSegmentedHashSet
<string>> memberNames,
134
public StrongBox<
ImmutableSegmentedHashSet
<string>> MemberNames => _memberNames;
Microsoft.CodeAnalysis.UnitTests (46)
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)
Collections\SegmentedCollectionsMarshalTests.cs (3)
566
ImmutableSegmentedHashSet
<T> immutableHashSet = SegmentedCollectionsMarshal.AsImmutableSegmentedHashSet(set);
614
SegmentedHashSet<T>? set = SegmentedCollectionsMarshal.AsSegmentedHashSet(
ImmutableSegmentedHashSet
<T>.Empty);
637
ImmutableSegmentedHashSet
<T> immutableHashSet = ImmutableSegmentedHashSet.CreateRange(values);