Binder\DecisionDagBuilder.cs (21)
1192IConstantValueSet? values = fac?.Related(rel.Relation.Operator(), rel.ConstantValue);
1197else if (((IConstantValueSet?)values?.Complement())?.IsEmpty != true)
1800var fromTestPassing = valueFac.Related(relation.Operator(), value);
1801(var whenTrueValues, var whenFalseValues, fromTestPassing, var fromTestFailing) = splitValues(values, input, fromTestPassing);
2075var whenTrueConstantValueSet = whenTrueValues as IConstantValueSet;
2078var whenFalseConstantValueSet = whenFalseValues as IConstantValueSet;
3555IConstantValueSet possibleValues = fac.Related(BinaryOperatorKind.LessThanOrEqual, int.MaxValue - offset);
3556IConstantValueSet lengthValues = fac.Related(relation, constant);
3557if (((IConstantValueSet)lengthValues.Intersect(possibleValues)).IsEmpty)
3559if (((IConstantValueSet)lengthValues.Complement().Intersect(possibleValues)).IsEmpty)
4035/// Represents a disjunction of value tests on the same input, compactly stored as an <see cref="IConstantValueSet"/>.
4042public readonly IConstantValueSet Values;
4045public ValueSet(BoundDagTemp input, IConstantValueSet values, SyntaxNode syntax)
4130if (possibleValues is not IConstantValueSet)
4134var intersection = (IConstantValueSet)possibleValues.Intersect(Values);
5011IConstantValueSet values = getValueSetForElement(builder[0], factory);
5014values = (IConstantValueSet)values.Union(getValueSetForElement(builder[i], factory));
5027static IConstantValueSet getValueSetForElement(Tests element, IConstantValueSetFactory factory)