6 implementations of IConstantValueSet
Microsoft.CodeAnalysis.CSharp (6)
Utilities\ValueSetFactory.BoolValueSet.cs (1)
13private sealed class BoolValueSet : IConstantValueSet<bool>
Utilities\ValueSetFactory.EnumeratedValueSet.cs (1)
21private sealed class EnumeratedValueSet<T> : IConstantValueSet<T>
Utilities\ValueSetFactory.FloatingValueSet.cs (1)
20private sealed class FloatingValueSet<TFloating> : IConstantValueSet<TFloating>
Utilities\ValueSetFactory.NintValueSet.cs (1)
15private sealed class NintValueSet : IConstantValueSet<int>, IValueSet
Utilities\ValueSetFactory.NuintValueSet.cs (1)
15private sealed class NuintValueSet : IConstantValueSet<uint>, IValueSet
Utilities\ValueSetFactory.NumericValueSet.cs (1)
22private sealed class NumericValueSet<T> : IConstantValueSet<T>
131 references to IConstantValueSet
Microsoft.CodeAnalysis.CSharp (72)
Binder\DecisionDagBuilder.cs (2)
3813var lengthValues = (IConstantValueSet<int>)state.RemainingValues[s1LengthTemp];
Binder\PatternExplainer.cs (2)
460var lengthValues = (IConstantValueSet<int>)computeRemainingValues(ValueSetFactory.ForLength, getArray(constraintMap, lengthTemp));
Utilities\IConstantValueSetFactory.cs (1)
55IConstantValueSet<T> Related(BinaryOperatorKind relation, T value);
Utilities\IValueSet.cs (5)
73IConstantValueSet<T> Intersect(IConstantValueSet<T> other); 78IConstantValueSet<T> Union(IConstantValueSet<T> other); 83new IConstantValueSet<T> Complement();
Utilities\ValueSetFactory.BoolValueSet.cs (7)
73public IConstantValueSet<bool> Complement() => Create(!_hasFalse, !_hasTrue); 77public IConstantValueSet<bool> Intersect(IConstantValueSet<bool> other) 85public IValueSet Intersect(IValueSet other) => this.Intersect((IConstantValueSet<bool>)other); 87public IConstantValueSet<bool> Union(IConstantValueSet<bool> other) 95IValueSet IValueSet.Union(IValueSet other) => this.Union((IConstantValueSet<bool>)other);
Utilities\ValueSetFactory.BoolValueSetFactory.cs (1)
28public IConstantValueSet<bool> Related(BinaryOperatorKind relation, bool value)
Utilities\ValueSetFactory.DecimalValueSetFactory.cs (1)
21public IConstantValueSet<decimal> Related(BinaryOperatorKind relation, decimal value) => _underlying.Related(relation, DecimalTC.Normalize(value));
Utilities\ValueSetFactory.EnumeratedValueSet.cs (7)
113public IConstantValueSet<T> Complement() => new EnumeratedValueSet<T>(!_included, _membersIncludedOrExcluded, _tc); 117public IConstantValueSet<T> Intersect(IConstantValueSet<T> o) 138IValueSet IValueSet.Intersect(IValueSet other) => Intersect((IConstantValueSet<T>)other); 140public IConstantValueSet<T> Union(IConstantValueSet<T> o) 161IValueSet IValueSet.Union(IValueSet other) => Union((IConstantValueSet<T>)other);
Utilities\ValueSetFactory.EnumeratedValueSetFactory.cs (2)
27public IConstantValueSet<T> Related(BinaryOperatorKind relation, T value) 50IConstantValueSet<T> result = EnumeratedValueSet<T>.NoValues(_tc);
Utilities\ValueSetFactory.FloatingValueSet.cs (14)
22private readonly IConstantValueSet<TFloating> _numbers; 26private FloatingValueSet(IConstantValueSet<TFloating> numbers, bool hasNaN, FloatingTC<TFloating> tc) 32internal static IConstantValueSet<TFloating> AllValues(FloatingTC<TFloating> tc) => new FloatingValueSet<TFloating>( 35internal static IConstantValueSet<TFloating> NoValues(FloatingTC<TFloating> tc) => new FloatingValueSet<TFloating>( 38internal static IConstantValueSet<TFloating> Random(int expectedSize, Random random, FloatingTC<TFloating> tc) 46numbers: (IConstantValueSet<TFloating>)new NumericValueSetFactory<TFloating>(tc).Random(expectedSize, random), hasNaN: hasNan, tc); 70public static IConstantValueSet<TFloating> Related(BinaryOperatorKind relation, TFloating value, FloatingTC<TFloating> tc) 98public IConstantValueSet<TFloating> Intersect(IConstantValueSet<TFloating> o) 111IValueSet IValueSet.Intersect(IValueSet other) => this.Intersect((IConstantValueSet<TFloating>)other); 113public IConstantValueSet<TFloating> Union(IConstantValueSet<TFloating> o) 126IValueSet IValueSet.Union(IValueSet other) => this.Union((IConstantValueSet<TFloating>)other); 128public IConstantValueSet<TFloating> Complement()
Utilities\ValueSetFactory.FloatingValueSetFactory.cs (1)
24public IConstantValueSet<TFloating> Related(BinaryOperatorKind relation, TFloating value) =>
Utilities\ValueSetFactory.NintValueSet.cs (7)
21private readonly IConstantValueSet<int> _values; 39internal NintValueSet(bool hasSmall, IConstantValueSet<int> values, bool hasLarge) 87public IConstantValueSet<int> Complement() 98public IConstantValueSet<int> Intersect(IConstantValueSet<int> o) 110public IConstantValueSet<int> Union(IConstantValueSet<int> o)
Utilities\ValueSetFactory.NintValueSetFactory.cs (2)
23public IConstantValueSet<int> Related(BinaryOperatorKind relation, int value) 36values: (IConstantValueSet<int>)new NumericValueSetFactory<int>(IntTC.DefaultInstance).Random(expectedSize, random),
Utilities\ValueSetFactory.NonNegativeIntValueSetFactory.cs (1)
25public IConstantValueSet<int> Related(BinaryOperatorKind relation, int value)
Utilities\ValueSetFactory.NuintValueSet.cs (7)
21private readonly IConstantValueSet<uint> _values; 31internal NuintValueSet(IConstantValueSet<uint> values, bool hasLarge) 74public IConstantValueSet<uint> Complement() 84public IConstantValueSet<uint> Intersect(IConstantValueSet<uint> o) 95public IConstantValueSet<uint> Union(IConstantValueSet<uint> o)
Utilities\ValueSetFactory.NuintValueSetFactory.cs (2)
23public IConstantValueSet<uint> Related(BinaryOperatorKind relation, uint value) 34values: (IConstantValueSet<uint>)new NumericValueSetFactory<uint>(UIntTC.Instance).Random(expectedSize, random),
Utilities\ValueSetFactory.NumericValueSet.cs (9)
64var gz = new NumericValueSetFactory<T>(_tc).Related(BinaryOperatorKind.GreaterThanOrEqual, _tc.Zero); 131public IConstantValueSet<T> Complement() 162public IConstantValueSet<T> Intersect(IConstantValueSet<T> o) 237IValueSet IValueSet.Intersect(IValueSet other) => this.Intersect((IConstantValueSet<T>)other); 239public IConstantValueSet<T> Union(IConstantValueSet<T> o) 288IValueSet IValueSet.Union(IValueSet other) => this.Union((IConstantValueSet<T>)other); 293internal static IConstantValueSet<T> Random(int expectedSize, Random random, INumericTC<T> tc)
Utilities\ValueSetFactory.NumericValueSetFactory.cs (1)
29public IConstantValueSet<T> Related(BinaryOperatorKind relation, T value)
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (59)
Utilities\ValueSetTests.cs (59)
36IConstantValueSet<int> values = ForInt.Related(GreaterThanOrEqual, i1); 46IConstantValueSet<int> values = ForInt.Related(GreaterThanOrEqual, i1); 65IConstantValueSet<int> values = ForInt.Related(GreaterThan, i1); 75IConstantValueSet<int> values = ForInt.Related(GreaterThan, i1); 94IConstantValueSet<int> values = ForInt.Related(LessThanOrEqual, i1); 104IConstantValueSet<int> values = ForInt.Related(LessThanOrEqual, i1); 123IConstantValueSet<int> values = ForInt.Related(LessThan, i1); 133IConstantValueSet<int> values = ForInt.Related(LessThan, i1); 152IConstantValueSet<int> values = ForInt.Related(Equal, i1); 162IConstantValueSet<int> values = ForInt.Related(Equal, i1); 175IConstantValueSet<int> values1 = ForInt.Related(GreaterThanOrEqual, i1).Intersect(ForInt.Related(LessThanOrEqual, i2)); 177IConstantValueSet<int> values2 = ForInt.Related(LessThanOrEqual, i2).Intersect(ForInt.Related(GreaterThanOrEqual, i1)); 191IConstantValueSet<int> values1 = ForInt.Related(GreaterThanOrEqual, i1).Intersect(ForInt.Related(LessThanOrEqual, i2)); 193IConstantValueSet<int> values2 = ForInt.Related(LessThanOrEqual, i2).Intersect(ForInt.Related(GreaterThanOrEqual, i1)); 207IConstantValueSet<int> values1 = ForInt.Related(LessThanOrEqual, i1).Union(ForInt.Related(GreaterThanOrEqual, i2)); 209IConstantValueSet<int> values2 = ForInt.Related(GreaterThanOrEqual, i2).Union(ForInt.Related(LessThanOrEqual, i1)); 222IConstantValueSet<int> values1 = ForInt.Related(LessThanOrEqual, i1).Union(ForInt.Related(GreaterThanOrEqual, i2)); 224IConstantValueSet<int> values2 = ForInt.Related(GreaterThanOrEqual, i2).Union(ForInt.Related(LessThanOrEqual, i1)); 238IConstantValueSet<int> values1 = ForInt.Related(LessThanOrEqual, i1).Union(ForInt.Related(GreaterThanOrEqual, i2)); 240IConstantValueSet<int> values2 = values1.Complement(); 254IConstantValueSet<int> values = ForInt.Related(GreaterThanOrEqual, i1).Intersect(ForInt.Related(LessThanOrEqual, i2)); 282IConstantValueSet<int> values = ForInt.Related(GreaterThanOrEqual, i1).Intersect(ForInt.Related(LessThanOrEqual, i2)); 295IConstantValueSet<double> values = ForDouble.Related(GreaterThanOrEqual, d1).Intersect(ForDouble.Related(LessThanOrEqual, d2)); 303IConstantValueSet<char> gea1 = ForChar.Related(GreaterThanOrEqual, 'a'); 304IConstantValueSet<char> lez1 = ForChar.Related(LessThanOrEqual, 'z'); 305IConstantValueSet<char> gea2 = ForChar.Related(GreaterThanOrEqual, 'A'); 306IConstantValueSet<char> lez2 = ForChar.Related(LessThanOrEqual, 'Z'); 307var letters = gea1.Intersect(lez1).Union(gea2.Intersect(lez2)); 315var lt = ForDouble.Related(LessThan, 0.0); 317var gt = ForDouble.Related(GreaterThan, 0.0); 319var eq = ForDouble.Related(Equal, 0.0); 321var none = lt.Complement().Intersect(gt.Complement()).Intersect(eq.Complement()); 330var lt = ForFloat.Related(LessThan, 0.0f); 332var gt = ForFloat.Related(GreaterThan, 0.0f); 334var eq = ForFloat.Related(Equal, 0.0f); 336var none = lt.Complement().Intersect(gt.Complement()).Intersect(eq.Complement()); 357var neg = ForDouble.Related(LessThan, 0.0); 361var mi = ForDouble.Related(Equal, double.NegativeInfinity); 371var i = ForDouble.Related(Equal, double.PositiveInfinity); 385var notaset = ForString.Related(Equal, "a").Complement(); 386var bset = ForString.Related(Equal, "b"); 387var intersect = bset.Intersect(notaset); 394var t = ForBool.Related(Equal, true); 395var f = ForBool.Related(Equal, false); 396var em = t.Intersect(f); 398var q = t.Intersect(t); 408var s = ForByte.Related(GreaterThan, 10).Intersect(ForByte.Related(LessThan, 100)); 415var s1 = ForString.Related(Equal, "a"); 416var s2 = ForString.Related(Equal, "b"); 429var s1 = ForDouble.Related(LessThan, 3.14d); 433var s2 = ForDouble.Related(GreaterThan, 31.4d); 443var s1 = ForLong.Related(LessThan, 2); 462var s2 = ForLong.Related(GreaterThan, -5).Intersect(s1); 721var s1 = ForInt.Related(BinaryOperatorKind.Equal, i); 743var s1 = ForInt.Related(BinaryOperatorKind.Equal, j); 764var s1 = ForInt.Related(BinaryOperatorKind.LessThan, i); 789var s1 = ForInt.Related(BinaryOperatorKind.LessThan, j); 813var s1 = ForInt.Related(BinaryOperatorKind.Equal, i); 835var s1 = ForInt.Related(BinaryOperatorKind.Equal, j);