2 instantiations of BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (2)
Binder\DecisionDagBuilder.cs (1)
1235
var boundDecisionDag = new
BoundDecisionDag
(rootDecisionDagNode.Syntax, rootDecisionDagNode, _suitableForLowering);
Generated\BoundNodes.xml.Generated.cs (1)
5068
var result = new
BoundDecisionDag
(this.Syntax, rootNode, suitableForLowering, this.HasErrors);
77 references to BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (77)
Binder\Binder_Patterns.cs (2)
104
BoundDecisionDag
decisionDag = DecisionDagBuilder.CreateDecisionDagForIsPattern(
186
static bool? getConstantResult(
BoundDecisionDag
decisionDag, bool negated, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel)
Binder\DecisionDagBuilder_CheckOrReachability.cs (1)
595
BoundDecisionDag
dag = context.Builder.MakeBoundDecisionDag(context.Syntax, ref casesBuilder.AsRef());
Binder\DecisionDagBuilder.cs (12)
24
/// the class <see cref="
BoundDecisionDag
"/> and is a representation of a finite state automaton that performs a
48
/// cref="
BoundDecisionDag
"/> containing this set of nodes becomes part of the bound nodes (e.g. in <see
82
public static
BoundDecisionDag
CreateDecisionDagForSwitchStatement(
98
public static
BoundDecisionDag
CreateDecisionDagForSwitchExpression(
114
public static
BoundDecisionDag
CreateDecisionDagForIsPattern(
129
private
BoundDecisionDag
CreateDecisionDagForIsPattern(
144
private
BoundDecisionDag
CreateDecisionDagForSwitchStatement(
169
private
BoundDecisionDag
CreateDecisionDagForSwitchExpression(
1215
private
BoundDecisionDag
MakeBoundDecisionDag(SyntaxNode syntax, ref TemporaryArray<StateForCase> cases)
1235
var
boundDecisionDag = new BoundDecisionDag(rootDecisionDagNode.Syntax, rootDecisionDagNode, _suitableForLowering);
1606
/// Compute the <see cref="
BoundDecisionDag
"/> corresponding to each <see cref="DagState"/> of the given <see cref="DecisionDag"/>
3017
/// machine (<see cref="
BoundDecisionDag
"/>), and contains a representation of the meaning of the state. Because we always make
Binder\SwitchBinder_Patterns.cs (2)
45
BoundDecisionDag
decisionDag = DecisionDagBuilder.CreateDecisionDagForSwitchStatement(
79
BoundDecisionDag
decisionDag,
Binder\SwitchExpressionBinder.cs (4)
36
out
BoundDecisionDag
decisionDag, out LabelSymbol? defaultLabel, out bool wasReported, diagnostics);
65
out
BoundDecisionDag
decisionDag,
136
BoundDecisionDag
.AddSuccessors(ref builder, n);
140
BoundDecisionDag
.AddSuccessors(ref builder, n);
BoundTree\BoundDecisionDag.cs (2)
93
public
BoundDecisionDag
Rewrite(Func<BoundDecisionDagNode, IReadOnlyDictionary<BoundDecisionDagNode, BoundDecisionDagNode>, BoundDecisionDagNode> makeReplacement)
144
public
BoundDecisionDag
SimplifyDecisionDagIfConstantInput(BoundExpression input)
BoundTree\BoundIsPatternExpression.cs (2)
11
public
BoundDecisionDag
GetDecisionDagForLowering(CSharpCompilation compilation)
13
BoundDecisionDag
decisionDag = this.ReachabilityDecisionDag;
BoundTree\BoundSwitchExpression.cs (2)
12
public
BoundDecisionDag
GetDecisionDagForLowering(CSharpCompilation compilation, out LabelSymbol? defaultLabel)
16
BoundDecisionDag
decisionDag = this.ReachabilityDecisionDag;
BoundTree\BoundSwitchStatement.cs (2)
13
public
BoundDecisionDag
GetDecisionDagForLowering(CSharpCompilation compilation, out LabelSymbol? unreachableDefaultLabel)
17
BoundDecisionDag
decisionDag = this.ReachabilityDecisionDag;
FlowAnalysis\NullableWalker_Patterns.cs (1)
379
BoundDecisionDag
decisionDag,
Generated\BoundNodes.xml.Generated.cs (28)
3814
public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections,
BoundDecisionDag
reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false)
3838
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
3845
public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections,
BoundDecisionDag
reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel)
4921
protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
4938
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
4986
public BoundUnconvertedSwitchExpression(SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
5000
public BoundUnconvertedSwitchExpression Update(BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type)
5014
public BoundConvertedSwitchExpression(SyntaxNode syntax, TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type, bool hasErrors = false)
5034
public BoundConvertedSwitchExpression Update(TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type)
5064
public
BoundDecisionDag
Update(BoundDecisionDagNode rootNode, bool suitableForLowering)
5068
var
result = new BoundDecisionDag(this.Syntax, rootNode, suitableForLowering, this.HasErrors);
8071
public BoundIsPatternExpression(SyntaxNode syntax, BoundExpression expression, BoundPattern pattern, bool hasUnionMatching, bool isNegated,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type, bool hasErrors = false)
8094
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
8101
public BoundIsPatternExpression Update(BoundExpression expression, BoundPattern pattern, bool hasUnionMatching, bool isNegated,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type)
9342
return VisitDecisionDag((
BoundDecisionDag
)node, arg);
9692
public virtual R VisitDecisionDag(
BoundDecisionDag
node, A arg) => this.DefaultVisit(node, arg);
9933
public virtual BoundNode? VisitDecisionDag(
BoundDecisionDag
node) => this.DefaultVisit(node);
10564
public override BoundNode? VisitDecisionDag(
BoundDecisionDag
node)
11725
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11936
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11945
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11950
public override BoundNode? VisitDecisionDag(
BoundDecisionDag
node)
12510
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
13895
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
14135
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
14155
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
15192
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
16633
public override TreeDumperNode VisitDecisionDag(
BoundDecisionDag
node, object? arg) => new TreeDumperNode("decisionDag", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter_BasePatternSwitchLocalRewriter.cs (1)
74
protected (ImmutableArray<BoundStatement> loweredDag, ImmutableDictionary<SyntaxNode, ImmutableArray<BoundStatement>> switchSections) LowerDecisionDag(
BoundDecisionDag
decisionDag)
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (5)
24
BoundDecisionDag
decisionDag = node.GetDecisionDagForLowering(_factory.Compilation);
105
static bool containsBindings(
BoundDecisionDag
decisionDag)
119
BoundDecisionDag
decisionDag,
151
internal BoundExpression LowerGeneralIsPattern(BoundIsPatternExpression node,
BoundDecisionDag
decisionDag)
262
BoundDecisionDag
decisionDag,
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (2)
104
BoundDecisionDag
loweringDag = node.GetDecisionDagForLowering(_factory.Compilation, out LabelSymbol? unreachableDefaultLabel);
105
BoundDecisionDag
decisionDag = ShareTempsIfPossibleAndEvaluateInput(
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (1)
53
BoundDecisionDag
decisionDag = ShareTempsIfPossibleAndEvaluateInput(
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
62
private void ComputeLabelSet(
BoundDecisionDag
decisionDag)
337
protected
BoundDecisionDag
ShareTempsIfPossibleAndEvaluateInput(
338
BoundDecisionDag
decisionDag,
369
protected ImmutableArray<BoundStatement> LowerDecisionDagCore(
BoundDecisionDag
decisionDag)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (6)
540
protected
BoundDecisionDag
ShareTempsAndEvaluateInput(
542
BoundDecisionDag
decisionDag,
644
private
BoundDecisionDag
RewriteTupleInput(
645
BoundDecisionDag
decisionDag,
667
var
rewrittenDag = decisionDag.Rewrite(makeReplacement);
716
return
BoundDecisionDag
.TrivialReplacement(node, replacement);