5 instantiations of Maybe
ILLink.RoslynAnalyzer (5)
DataFlow\InterproceduralState.cs (2)
66HoistedLocals.Set(key, new Maybe<TValue>(lattice.HoistedLocalLattice.ValueLattice.ValueLattice.Top)); 80existingValue, new(value)));
src\tools\illink\src\ILLink.Shared\DataFlow\MaybeLattice.cs (3)
26return new(copyValue.DeepCopy()); 27return new(value); 51return new Maybe<T>(ValueLattice.Meet(leftValue, rightValue));
21 references to Maybe
ILLink.RoslynAnalyzer (21)
DataFlow\InterproceduralState.cs (6)
25public DefaultValueDictionary<LocalKey, Maybe<TValue>> HoistedLocals; 31DefaultValueDictionary<LocalKey, Maybe<TValue>> hoistedLocals, 62var existingValue = HoistedLocals.Get(key); 71var existingValue = HoistedLocals.Get(key); 94public readonly DictionaryLattice<LocalKey, Maybe<TValue>, MaybeLattice<TValue, TValueLattice>> HoistedLocalLattice; 98DictionaryLattice<LocalKey, Maybe<TValue>, MaybeLattice<TValue, TValueLattice>> hoistedLocalLattice
DataFlow\LocalDataFlowAnalysis.cs (1)
69DictionaryLattice<LocalKey, Maybe<TValue>, MaybeLattice<TValue, TLattice>> hoistedLocalLattice = default;
src\tools\illink\src\ILLink.Shared\DataFlow\MaybeLattice.cs (14)
13public struct Maybe<T> : IEquatable<Maybe<T>>, IDeepCopyValue<Maybe<T>> 18public bool Equals(Maybe<T> other) => MaybeValue?.Equals(other.MaybeValue) ?? other.MaybeValue == null; 19public override bool Equals(object? obj) => obj is Maybe<T> other && Equals(other); 21public Maybe<T> DeepCopy() 30public static bool operator ==(Maybe<T> left, Maybe<T> right) => left.Equals(right); 31public static bool operator !=(Maybe<T> left, Maybe<T> right) => !(left == right); 34public struct MaybeLattice<T, TValueLattice> : ILattice<Maybe<T>> 44public Maybe<T> Top { get; } 45public Maybe<T> Meet(Maybe<T> left, Maybe<T> right)