9 types derived from BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
5444internal sealed partial class BoundDagDeconstructEvaluation : BoundDagEvaluation 5473internal sealed partial class BoundDagTypeEvaluation : BoundDagEvaluation 5502internal sealed partial class BoundDagFieldEvaluation : BoundDagEvaluation 5531internal sealed partial class BoundDagPropertyEvaluation : BoundDagEvaluation 5562internal sealed partial class BoundDagIndexEvaluation : BoundDagEvaluation 5593internal sealed partial class BoundDagIndexerEvaluation : BoundDagEvaluation 5640internal sealed partial class BoundDagSliceEvaluation : BoundDagEvaluation 5689internal sealed partial class BoundDagAssignmentEvaluation : BoundDagEvaluation 5718internal sealed partial class BoundDagPassThroughEvaluation : BoundDagEvaluation
90 references to BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (90)
Binder\DecisionDagBuilder.cs (48)
222var usedValues = PooledHashSet<BoundDagEvaluation>.GetInstance(); 253case Tests.One(BoundDagEvaluation e): 417BoundDagTemp temp = MakeUnionValue(input.DagTemp, unionValue, out BoundDagEvaluation valueEvaluation); 425private BoundDagTemp MakeUnionValue(BoundDagTemp input, BoundPropertySubpatternMember unionValue, out BoundDagEvaluation valueEvaluation) 464internal static bool IsUnionValueEvaluation(BoundDagEvaluation? source, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 657internal static bool IsUnionTryGetValueEvaluation([NotNullWhen(true)] BoundDagEvaluation? evaluation, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 748BoundDagEvaluation hasValueEvaluation = new BoundDagPropertyEvaluation(unionValue.Syntax, hasValue, isLengthOrCount: false, inputInfo.DagTemp); 1051BoundDagEvaluation evaluation; 1221var tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 1249int tempIdentifier(BoundDagEvaluation e) 1380case BoundDagEvaluation e: 1458if (state.SelectedTest is BoundDagEvaluation eval) 1649case BoundDagEvaluation e: 1741case BoundDagEvaluation _: 1894private FrozenArrayBuilder<StateForCase> RemoveEvaluation(DagState state, BoundDagEvaluation e) 2502case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2526internal static bool IsEqualEvaluation(BoundDagEvaluation? s1Source, BoundDagEvaluation? s2Source) 2620case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2639internal static BoundDagEvaluation? SkipAllTypeEvaluations(BoundDagTypeEvaluation typeEval) 2800PooledDictionary<BoundDagEvaluation, int> tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 2801int tempIdentifier(BoundDagEvaluation? e) 2896case BoundDagEvaluation e: 3257protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3259public Tests RemoveEvaluation(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, BoundDagEvaluation e) 3264protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3373protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3397protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3403/// Note that the test might be a <see cref="BoundDagEvaluation"/>, in which case it is deemed to have 3423if (other is BoundDagEvaluation) 3544protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3618public static Tests RemoveEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3654private static bool IsEquivalentEvaluation(One tests, BoundDagEvaluation e1, [NotNullWhen(true)] out BoundDagEvaluation? underlying) 3656if (tests.Test is BoundDagEvaluation eval && 3679private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3681if (IsEquivalentEvaluation(tests, e1, out var eval)) 3691private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3715if (IsEquivalentEvaluation(tests, e1, out var eval)) 3876case BoundDagEvaluation eval: 3895var updated = eval.Update(replacement); 3965Debug.Assert(test is not BoundDagEvaluation); 4003protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4124protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e)
Binder\PatternExplainer.cs (5)
287out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 290evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 322evaluations.Add(temp, evaluationBuilder = new ArrayBuilder<BoundDagEvaluation>()); 336Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 652foreach (var eval in evaluations)
BoundTree\BoundDagEvaluation.cs (20)
16public sealed override bool Equals([NotNullWhen(true)] object? obj) => obj is BoundDagEvaluation other && this.Equals(other); 17public virtual bool Equals(BoundDagEvaluation other) 40public virtual bool IsEquivalentTo(BoundDagEvaluation other) 89public new BoundDagEvaluation Update(BoundDagTemp input) => UpdateEvaluationImpl(input); 90public abstract BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input); 138public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 146BoundDagEvaluation? nonTypeEvaluation = DecisionDagBuilder.SkipAllTypeEvaluations(this); 165public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 179public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 189public override bool IsEquivalentTo(BoundDagEvaluation obj) 202public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 217public override bool IsEquivalentTo(BoundDagEvaluation obj) 233public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 253public override bool IsEquivalentTo(BoundDagEvaluation obj) 270public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 290public override bool IsEquivalentTo(BoundDagEvaluation obj) 296public override bool Equals(BoundDagEvaluation other) 309public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 354public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input); 391public override BoundDagEvaluation UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
BoundTree\BoundDagTest.cs (1)
110case BoundDagEvaluation e:
BoundTree\Constructors.cs (1)
644public BoundDagTemp(SyntaxNode syntax, TypeSymbol type, BoundDagEvaluation? source)
FlowAnalysis\NullableWalker_Patterns.cs (2)
439var evaluation = p.Evaluation; 686var evaluation = output.Source;
Generated\BoundNodes.xml.Generated.cs (10)
5108public BoundEvaluationDecisionDagNode(SyntaxNode syntax, BoundDagEvaluation evaluation, BoundDecisionDagNode next, bool hasErrors = false) 5119public BoundDagEvaluation Evaluation { get; } 5125public BoundEvaluationDecisionDagNode Update(BoundDagEvaluation evaluation, BoundDecisionDagNode next) 5259public BoundDagTemp(SyntaxNode syntax, TypeSymbol type, BoundDagEvaluation? source, int index, bool hasErrors = false) 5271public BoundDagEvaluation? Source { get; } 5277public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 11960BoundDagEvaluation evaluation = (BoundDagEvaluation)this.Visit(node.Evaluation); 11985BoundDagEvaluation? source = (BoundDagEvaluation?)this.Visit(node.Source);
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
135protected BoundExpression LowerEvaluation(BoundDagEvaluation evaluation) 495BoundDagEvaluation evaluation,
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (1)
196case BoundDagEvaluation eval: