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