Binder\DecisionDagBuilder.cs (21)
1191IConstantValueSet? values = fac?.Related(rel.Relation.Operator(), rel.ConstantValue);
1196else if (((IConstantValueSet?)values?.Complement())?.IsEmpty != true)
1799var fromTestPassing = valueFac.Related(relation.Operator(), value);
1800(var whenTrueValues, var whenFalseValues, fromTestPassing, var fromTestFailing) = splitValues(values, input, fromTestPassing);
2074var whenTrueConstantValueSet = whenTrueValues as IConstantValueSet;
2077var whenFalseConstantValueSet = whenFalseValues as IConstantValueSet;
3554IConstantValueSet possibleValues = fac.Related(BinaryOperatorKind.LessThanOrEqual, int.MaxValue - offset);
3555IConstantValueSet lengthValues = fac.Related(relation, constant);
3556if (((IConstantValueSet)lengthValues.Intersect(possibleValues)).IsEmpty)
3558if (((IConstantValueSet)lengthValues.Complement().Intersect(possibleValues)).IsEmpty)
4034/// Represents a disjunction of value tests on the same input, compactly stored as an <see cref="IConstantValueSet"/>.
4041public readonly IConstantValueSet Values;
4044public ValueSet(BoundDagTemp input, IConstantValueSet values, SyntaxNode syntax)
4129if (possibleValues is not IConstantValueSet)
4133var intersection = (IConstantValueSet)possibleValues.Intersect(Values);
5010IConstantValueSet values = getValueSetForElement(builder[0], factory);
5013values = (IConstantValueSet)values.Union(getValueSetForElement(builder[i], factory));
5026static IConstantValueSet getValueSetForElement(Tests element, IConstantValueSetFactory factory)