9 types derived from BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
5425internal sealed partial class BoundDagDeconstructEvaluation : BoundDagEvaluation 5454internal sealed partial class BoundDagTypeEvaluation : BoundDagEvaluation 5483internal sealed partial class BoundDagFieldEvaluation : BoundDagEvaluation 5512internal sealed partial class BoundDagPropertyEvaluation : BoundDagEvaluation 5543internal sealed partial class BoundDagIndexEvaluation : BoundDagEvaluation 5574internal sealed partial class BoundDagIndexerEvaluation : BoundDagEvaluation 5621internal sealed partial class BoundDagSliceEvaluation : BoundDagEvaluation 5670internal sealed partial class BoundDagAssignmentEvaluation : BoundDagEvaluation 5699internal sealed partial class BoundDagPassThroughEvaluation : BoundDagEvaluation
94 references to BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (94)
Binder\DecisionDagBuilder.cs (52)
224var usedValues = PooledHashSet<BoundDagEvaluation>.GetInstance(); 255case Tests.One(BoundDagEvaluation e): 425BoundDagTemp temp = MakeUnionValue(input.DagTemp, unionValue, out BoundDagEvaluation valueEvaluation); 433private BoundDagTemp MakeUnionValue(BoundDagTemp input, BoundPropertySubpatternMember unionValue, out BoundDagEvaluation valueEvaluation) 472internal static bool IsUnionValueEvaluation(BoundDagEvaluation? source, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 665internal static bool IsUnionTryGetValueEvaluation([NotNullWhen(true)] BoundDagEvaluation? evaluation, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 756BoundDagEvaluation hasValueEvaluation = new BoundDagPropertyEvaluation(unionValue.Syntax, hasValue, isLengthOrCount: false, inputInfo.DagTemp); 1077BoundDagEvaluation evaluation; 1249var tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 1277int tempIdentifier(BoundDagEvaluation e) 1408case BoundDagEvaluation e: 1486if (state.SelectedTest is BoundDagEvaluation eval) 1677case BoundDagEvaluation e: 1769case BoundDagEvaluation _: 1922private FrozenArrayBuilder<StateForCase> RemoveEvaluation(DagState state, BoundDagEvaluation e) 2530case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2554internal static bool IsEqualEvaluation(BoundDagEvaluation? s1Source, BoundDagEvaluation? s2Source) 2648case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2667internal static BoundDagEvaluation? SkipAllTypeEvaluations(BoundDagTypeEvaluation typeEval) 2828PooledDictionary<BoundDagEvaluation, int> tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 2829int tempIdentifier(BoundDagEvaluation? e) 2924case BoundDagEvaluation e: 3287protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3289public Tests RemoveEvaluation(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, BoundDagEvaluation e) 3294protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3403protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3427protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3433/// Note that the test might be a <see cref="BoundDagEvaluation"/>, in which case it is deemed to have 3453if (other is BoundDagEvaluation) 3574protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3612if (tempsUpdatedResult.Test is BoundDagEvaluation) 3658static Tests removeEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3699BoundDagEvaluation e) 3707private static bool IsEquivalentEvaluation(One tests, BoundDagEvaluation e1, [NotNullWhen(true)] out BoundDagEvaluation? underlying) 3709if (tests.Test is BoundDagEvaluation eval && 3732private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3734if (IsEquivalentEvaluation(tests, e1, out var eval)) 3744private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3768if (IsEquivalentEvaluation(tests, e1, out var eval)) 3929case BoundDagEvaluation eval: 3948var updated = eval.Update(replacement); 4018Debug.Assert(test is not BoundDagEvaluation); 4062if (test is BoundDagEvaluation) 4157ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4209protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4330protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e)
Binder\PatternExplainer.cs (5)
312out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 315evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 347evaluations.Add(temp, evaluationBuilder = new ArrayBuilder<BoundDagEvaluation>()); 361Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 677foreach (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)
441var evaluation = p.Evaluation; 688var evaluation = output.Source;
Generated\BoundNodes.xml.Generated.cs (10)
5089public BoundEvaluationDecisionDagNode(SyntaxNode syntax, BoundDagEvaluation evaluation, BoundDecisionDagNode next, bool hasErrors = false) 5100public BoundDagEvaluation Evaluation { get; } 5106public BoundEvaluationDecisionDagNode Update(BoundDagEvaluation evaluation, BoundDecisionDagNode next) 5240public BoundDagTemp(SyntaxNode syntax, TypeSymbol type, BoundDagEvaluation? source, int index, bool hasErrors = false) 5252public BoundDagEvaluation? Source { get; } 5258public 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_IsPatternOperator.cs (1)
196case BoundDagEvaluation eval:
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
135protected BoundExpression LowerEvaluation(BoundDagEvaluation evaluation) 495BoundDagEvaluation evaluation,