3 instantiations of ReferenceHolder
Microsoft.CodeAnalysis.Workspaces (3)
Utilities\ReferenceHolder`1.cs (3)
32
=>
new
(value);
42
return new
ReferenceHolder
<T>(new WeakReference<T>(value), ReferenceEqualityComparer.Instance.GetHashCode(value));
101
=>
new
(new WeakReference<T>(null!), hashCode);
11 references to ReferenceHolder
Microsoft.CodeAnalysis.Workspaces (11)
Utilities\ReferenceHolder`1.cs (8)
10
internal readonly struct ReferenceHolder<T> : IEquatable<
ReferenceHolder
<T>>
31
public static
ReferenceHolder
<T> Strong(T value)
34
public static
ReferenceHolder
<T> Weak(T value)
55
return obj is
ReferenceHolder
<T> other
59
public bool Equals(
ReferenceHolder
<T> other)
96
/// Creates a <see cref="
ReferenceHolder
{T}"/> for a weakly-held reference that has since been collected.
99
/// <returns>A weak <see cref="
ReferenceHolder
{T}"/> which was already collected.</returns>
100
public static
ReferenceHolder
<T> ReleasedWeak(int hashCode)
Utilities\WeakSet`1.cs (3)
16
private readonly HashSet<
ReferenceHolder
<T>> _values = [];
27
return _values.Add(
ReferenceHolder
<T>.Weak(value));
32
return _values.Contains(
ReferenceHolder
<T>.Strong(value));