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) 754BoundDagEvaluation hasValueEvaluation = new BoundDagPropertyEvaluation(unionValue.Syntax, hasValue, isLengthOrCount: false, OriginalInput(inputInfo.DagTemp, hasValue)); 1045BoundDagEvaluation evaluation; 1216var tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 1244int tempIdentifier(BoundDagEvaluation e) 1375case BoundDagEvaluation e: 1453if (state.SelectedTest is BoundDagEvaluation eval) 1644case BoundDagEvaluation e: 1736case BoundDagEvaluation _: 1889private FrozenArrayBuilder<StateForCase> RemoveEvaluation(DagState state, BoundDagEvaluation e) 2475case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2499internal static bool IsEqualEvaluation(BoundDagEvaluation? s1Source, BoundDagEvaluation? s2Source) 2593case (BoundDagEvaluation s1, BoundDagEvaluation s2) when s1.IsEquivalentTo(s2): 2612internal static BoundDagEvaluation? SkipAllTypeEvaluations(BoundDagTypeEvaluation typeEval) 2773PooledDictionary<BoundDagEvaluation, int> tempIdentifierMap = PooledDictionary<BoundDagEvaluation, int>.GetInstance(); 2774int tempIdentifier(BoundDagEvaluation? e) 2869case BoundDagEvaluation e: 3230protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e); 3232public Tests RemoveEvaluation(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, BoundDagEvaluation e) 3237protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3346protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3370protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3376/// Note that the test might be a <see cref="BoundDagEvaluation"/>, in which case it is deemed to have 3396if (other is BoundDagEvaluation) 3517protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 3591public static Tests RemoveEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e, out Tests? condition) 3627private static bool IsEquivalentEvaluation(One tests, BoundDagEvaluation e1, [NotNullWhen(true)] out BoundDagEvaluation? underlying) 3629if (tests.Test is BoundDagEvaluation eval && 3652private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e1) 3654if (IsEquivalentEvaluation(tests, e1, out var eval)) 3664private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation oldEval, BoundDagEvaluation newEval) 3688if (IsEquivalentEvaluation(tests, e1, out var eval)) 3849case BoundDagEvaluation eval: 3868var updated = eval.Update(replacement); 3938Debug.Assert(test is not BoundDagEvaluation); 3976protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e) 4097protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap, BoundDagEvaluation e)
Binder\PatternExplainer.cs (5)
286out Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluations) 289evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>>(); 321evaluations.Add(temp, evaluationBuilder = new ArrayBuilder<BoundDagEvaluation>()); 334Dictionary<BoundDagTemp, ArrayBuilder<BoundDagEvaluation>> evaluationMap, 650foreach (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)
437var evaluation = p.Evaluation; 684var 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: