9 types derived from BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
5428internal sealed partial class BoundDagDeconstructEvaluation : BoundDagEvaluation 5457internal sealed partial class BoundDagTypeEvaluation : BoundDagEvaluation 5486internal sealed partial class BoundDagFieldEvaluation : BoundDagEvaluation 5515internal sealed partial class BoundDagPropertyEvaluation : BoundDagEvaluation 5546internal sealed partial class BoundDagIndexEvaluation : BoundDagEvaluation 5577internal sealed partial class BoundDagIndexerEvaluation : BoundDagEvaluation 5624internal sealed partial class BoundDagSliceEvaluation : BoundDagEvaluation 5673internal sealed partial class BoundDagAssignmentEvaluation : BoundDagEvaluation 5702internal sealed partial class BoundDagPassThroughEvaluation : BoundDagEvaluation
87 references to BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (87)
Binder\DecisionDagBuilder.cs (46)
225var usedValues = PooledHashSet<BoundDagEvaluation>.GetInstance(); 256case Tests.One(BoundDagEvaluation e): 426BoundDagTemp temp = MakeUnionValue(input.DagTemp, unionValue, out BoundDagEvaluation valueEvaluation); 434private BoundDagTemp MakeUnionValue(BoundDagTemp input, BoundPropertySubpatternMember unionValue, out BoundDagEvaluation valueEvaluation) 473internal static bool IsUnionValueEvaluation(BoundDagEvaluation? source, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 666internal static bool IsUnionTryGetValueEvaluation([NotNullWhen(true)] BoundDagEvaluation? evaluation, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance) 757BoundDagEvaluation hasValueEvaluation = new BoundDagPropertyEvaluation(unionValue.Syntax, hasValue, isLengthOrCount: false, inputInfo.DagTemp); 1078BoundDagEvaluation evaluation; 1409case BoundDagEvaluation e: 1487if (state.SelectedTest is BoundDagEvaluation eval) 1678case BoundDagEvaluation e: 1770case BoundDagEvaluation _: 1923private FrozenArrayBuilder<StateForCase> RemoveEvaluation(DagState state, BoundDagEvaluation e) 2531case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2555internal static bool IsEqualEvaluation(BoundDagEvaluation? s1Source, BoundDagEvaluation? s2Source) 2649case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2668internal static BoundDagEvaluation? SkipAllTypeEvaluations(BoundDagTypeEvaluation typeEval) 3288protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3290public Tests RemoveEvaluation(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, BoundDagEvaluation e) 3295protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3404protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3428protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3434/// Note that the test might be a <see cref="BoundDagEvaluation"/>, in which case it is deemed to have 3454if (other is BoundDagEvaluation) 3575protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3613if (tempsUpdatedResult.Test is BoundDagEvaluation) 3659static Tests removeEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3700BoundDagEvaluation e) 3708private static bool IsEquivalentEvaluation(One tests, BoundDagEvaluation e1, [NotNullWhen(true)] out BoundDagEvaluation? underlying) 3710if (tests.Test is BoundDagEvaluation eval && 3733private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3735if (IsEquivalentEvaluation(tests, e1, out var eval)) 3745private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3769if (IsEquivalentEvaluation(tests, e1, out var eval)) 3930case BoundDagEvaluation eval: 3949var updated = eval.Update(replacement); 4019Debug.Assert(test is not BoundDagEvaluation); 4063if (test is BoundDagEvaluation) 4158ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4210protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4331protected 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\Constructors.cs (1)
649public 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)
5092public BoundEvaluationDecisionDagNode(SyntaxNode syntax, BoundDagEvaluation evaluation, BoundDecisionDagNode next, bool hasErrors = false) 5103public BoundDagEvaluation Evaluation { get; } 5109public BoundEvaluationDecisionDagNode Update(BoundDagEvaluation evaluation, BoundDecisionDagNode next) 5243public BoundDagTemp(SyntaxNode syntax, TypeSymbol type, BoundDagEvaluation? source, int index, bool hasErrors = false) 5255public BoundDagEvaluation? Source { get; } 5261public BoundDagTemp Update(TypeSymbol type, BoundDagEvaluation? source, int index) 11957BoundDagEvaluation evaluation = (BoundDagEvaluation)this.Visit(node.Evaluation); 11982BoundDagEvaluation? source = (BoundDagEvaluation?)this.Visit(node.Source);
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (1)
238case BoundDagEvaluation eval:
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
135protected BoundExpression LowerEvaluation(BoundDagEvaluation evaluation) 495BoundDagEvaluation evaluation,