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