9 types derived from BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
5428
internal sealed partial class BoundDagDeconstructEvaluation :
BoundDagEvaluation
5457
internal sealed partial class BoundDagTypeEvaluation :
BoundDagEvaluation
5486
internal sealed partial class BoundDagFieldEvaluation :
BoundDagEvaluation
5515
internal sealed partial class BoundDagPropertyEvaluation :
BoundDagEvaluation
5546
internal sealed partial class BoundDagIndexEvaluation :
BoundDagEvaluation
5577
internal sealed partial class BoundDagIndexerEvaluation :
BoundDagEvaluation
5624
internal sealed partial class BoundDagSliceEvaluation :
BoundDagEvaluation
5673
internal sealed partial class BoundDagAssignmentEvaluation :
BoundDagEvaluation
5702
internal sealed partial class BoundDagPassThroughEvaluation :
BoundDagEvaluation
87 references to BoundDagEvaluation
Microsoft.CodeAnalysis.CSharp (87)
Binder\DecisionDagBuilder.cs (46)
225
var usedValues = PooledHashSet<
BoundDagEvaluation
>.GetInstance();
256
case Tests.One(
BoundDagEvaluation
e):
426
BoundDagTemp temp = MakeUnionValue(input.DagTemp, unionValue, out
BoundDagEvaluation
valueEvaluation);
434
private BoundDagTemp MakeUnionValue(BoundDagTemp input, BoundPropertySubpatternMember unionValue, out
BoundDagEvaluation
valueEvaluation)
473
internal static bool IsUnionValueEvaluation(
BoundDagEvaluation
? source, [NotNullWhen(true)] out BoundDagTemp? unionInstance)
666
internal static bool IsUnionTryGetValueEvaluation([NotNullWhen(true)]
BoundDagEvaluation
? evaluation, [NotNullWhen(true)] out TypeSymbol? targetType, [NotNullWhen(true)] out BoundDagTemp? unionInstance)
757
BoundDagEvaluation
hasValueEvaluation = new BoundDagPropertyEvaluation(unionValue.Syntax, hasValue, isLengthOrCount: false, inputInfo.DagTemp);
1078
BoundDagEvaluation
evaluation;
1409
case
BoundDagEvaluation
e:
1487
if (state.SelectedTest is
BoundDagEvaluation
eval)
1678
case
BoundDagEvaluation
e:
1770
case
BoundDagEvaluation
_:
1923
private FrozenArrayBuilder<StateForCase> RemoveEvaluation(DagState state,
BoundDagEvaluation
e)
2531
case (
BoundDagEvaluation
s1,
BoundDagEvaluation
s2) when s1.IsEquivalentTo(s2):
2555
internal static bool IsEqualEvaluation(
BoundDagEvaluation
? s1Source,
BoundDagEvaluation
? s2Source)
2649
case (
BoundDagEvaluation
s1,
BoundDagEvaluation
s2) when s1.IsEquivalentTo(s2):
2668
internal static
BoundDagEvaluation
? SkipAllTypeEvaluations(BoundDagTypeEvaluation typeEval)
3288
protected abstract RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e);
3290
public Tests RemoveEvaluation(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings,
BoundDagEvaluation
e)
3295
protected Tests RemoveEvaluationAndUpdateTempReferences(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
3404
protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
3428
protected 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
3454
if (other is
BoundDagEvaluation
)
3575
protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
3613
if (tempsUpdatedResult.Test is
BoundDagEvaluation
)
3659
static Tests removeEvaluation(One tests, DecisionDagBuilder builder, DagState state, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e, out Tests? condition)
3700
BoundDagEvaluation
e)
3708
private static bool IsEquivalentEvaluation(One tests,
BoundDagEvaluation
e1, [NotNullWhen(true)] out
BoundDagEvaluation
? underlying)
3710
if (tests.Test is
BoundDagEvaluation
eval &&
3733
private static Tests RemoveSimpleEvaluationWithResultTemp(One tests, ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e1)
3735
if (IsEquivalentEvaluation(tests, e1, out
var
eval))
3745
private static void AddResultTempReplacement(ref ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
oldEval,
BoundDagEvaluation
newEval)
3769
if (IsEquivalentEvaluation(tests, e1, out
var
eval))
3930
case
BoundDagEvaluation
eval:
3949
var
updated = eval.Update(replacement);
4019
Debug.Assert(test is not
BoundDagEvaluation
);
4063
if (test is
BoundDagEvaluation
)
4158
ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
4210
protected override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder builder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
4331
protected sealed override RemoveEvaluationAndUpdateTempReferencesResult RemoveEvaluationAndUpdateTempReferencesCore(DecisionDagBuilder dagBuilder, DagState state, ImmutableArray<BoundPatternBinding> bindings, ImmutableDictionary<BoundDagTemp, BoundDagTemp> tempMap,
BoundDagEvaluation
e)
Binder\PatternExplainer.cs (5)
312
out Dictionary<BoundDagTemp, ArrayBuilder<
BoundDagEvaluation
>> evaluations)
315
evaluations = new Dictionary<BoundDagTemp, ArrayBuilder<
BoundDagEvaluation
>>();
347
evaluations.Add(temp, evaluationBuilder = new ArrayBuilder<
BoundDagEvaluation
>());
361
Dictionary<BoundDagTemp, ArrayBuilder<
BoundDagEvaluation
>> evaluationMap,
677
foreach (
var
eval in evaluations)
BoundTree\BoundDagEvaluation.cs (20)
16
public sealed override bool Equals([NotNullWhen(true)] object? obj) => obj is
BoundDagEvaluation
other && this.Equals(other);
17
public virtual bool Equals(
BoundDagEvaluation
other)
40
public virtual bool IsEquivalentTo(
BoundDagEvaluation
other)
89
public new
BoundDagEvaluation
Update(BoundDagTemp input) => UpdateEvaluationImpl(input);
90
public abstract
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input);
138
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
146
BoundDagEvaluation
? nonTypeEvaluation = DecisionDagBuilder.SkipAllTypeEvaluations(this);
165
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
179
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
189
public override bool IsEquivalentTo(
BoundDagEvaluation
obj)
202
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
217
public override bool IsEquivalentTo(
BoundDagEvaluation
obj)
233
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
253
public override bool IsEquivalentTo(
BoundDagEvaluation
obj)
270
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
290
public override bool IsEquivalentTo(
BoundDagEvaluation
obj)
296
public override bool Equals(
BoundDagEvaluation
other)
309
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
354
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
391
public override
BoundDagEvaluation
UpdateEvaluationImpl(BoundDagTemp input) => Update(input);
BoundTree\Constructors.cs (1)
649
public BoundDagTemp(SyntaxNode syntax, TypeSymbol type,
BoundDagEvaluation
? source)
FlowAnalysis\NullableWalker_Patterns.cs (2)
441
var
evaluation = p.Evaluation;
688
var
evaluation = output.Source;
Generated\BoundNodes.xml.Generated.cs (10)
5092
public BoundEvaluationDecisionDagNode(SyntaxNode syntax,
BoundDagEvaluation
evaluation, BoundDecisionDagNode next, bool hasErrors = false)
5103
public
BoundDagEvaluation
Evaluation { get; }
5109
public BoundEvaluationDecisionDagNode Update(
BoundDagEvaluation
evaluation, BoundDecisionDagNode next)
5243
public BoundDagTemp(SyntaxNode syntax, TypeSymbol type,
BoundDagEvaluation
? source, int index, bool hasErrors = false)
5255
public
BoundDagEvaluation
? Source { get; }
5261
public BoundDagTemp Update(TypeSymbol type,
BoundDagEvaluation
? source, int index)
11957
BoundDagEvaluation
evaluation = (
BoundDagEvaluation
)this.Visit(node.Evaluation);
11982
BoundDagEvaluation
? source = (
BoundDagEvaluation
?)this.Visit(node.Source);
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (1)
238
case
BoundDagEvaluation
eval:
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (2)
135
protected BoundExpression LowerEvaluation(
BoundDagEvaluation
evaluation)
495
BoundDagEvaluation
evaluation,