2 instantiations of BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (2)
Binder\DecisionDagBuilder.cs (1)
756
var boundDecisionDag = new
BoundDecisionDag
(rootDecisionDagNode.Syntax, rootDecisionDagNode);
Generated\BoundNodes.xml.Generated.cs (1)
5022
var result = new
BoundDecisionDag
(this.Syntax, rootNode, this.HasErrors);
74 references to BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (73)
Binder\Binder_Patterns.cs (2)
59
BoundDecisionDag
decisionDag = DecisionDagBuilder.CreateDecisionDagForIsPattern(
130
static bool? getConstantResult(
BoundDecisionDag
decisionDag, bool negated, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel)
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
81
public static
BoundDecisionDag
CreateDecisionDagForSwitchStatement(
97
public static
BoundDecisionDag
CreateDecisionDagForSwitchExpression(
113
public static
BoundDecisionDag
CreateDecisionDagForIsPattern(
127
private
BoundDecisionDag
CreateDecisionDagForIsPattern(
141
private
BoundDecisionDag
CreateDecisionDagForSwitchStatement(
166
private
BoundDecisionDag
CreateDecisionDagForSwitchExpression(
737
private
BoundDecisionDag
MakeBoundDecisionDag(SyntaxNode syntax, ref TemporaryArray<StateForCase> cases)
756
var
boundDecisionDag = new BoundDecisionDag(rootDecisionDagNode.Syntax, rootDecisionDagNode);
971
/// Compute the <see cref="
BoundDecisionDag
"/> corresponding to each <see cref="DagState"/> of the given <see cref="DecisionDag"/>
1838
/// 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(
74
BoundDecisionDag
decisionDag,
Binder\SwitchExpressionBinder.cs (4)
34
bool reportedNotExhaustive = CheckSwitchExpressionExhaustive(node, boundInputExpression, switchArms, out
BoundDecisionDag
decisionDag, out LabelSymbol? defaultLabel, diagnostics);
58
out
BoundDecisionDag
decisionDag,
125
BoundDecisionDag
.AddSuccessors(ref builder, n);
129
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)
12
public
BoundDecisionDag
GetDecisionDagForLowering(CSharpCompilation compilation)
14
BoundDecisionDag
decisionDag = this.ReachabilityDecisionDag;
FlowAnalysis\NullableWalker_Patterns.cs (1)
376
BoundDecisionDag
decisionDag,
Generated\BoundNodes.xml.Generated.cs (28)
3770
public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections,
BoundDecisionDag
reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false)
3794
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
3801
public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections,
BoundDecisionDag
reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel)
4879
protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
4896
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
4942
public BoundUnconvertedSwitchExpression(SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false)
4956
public BoundUnconvertedSwitchExpression Update(BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type)
4970
public BoundConvertedSwitchExpression(SyntaxNode syntax, TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type, bool hasErrors = false)
4990
public BoundConvertedSwitchExpression Update(TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type)
5018
public
BoundDecisionDag
Update(BoundDecisionDagNode rootNode)
5022
var
result = new BoundDecisionDag(this.Syntax, rootNode, this.HasErrors);
7947
public BoundIsPatternExpression(SyntaxNode syntax, BoundExpression expression, BoundPattern pattern, bool isNegated,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type, bool hasErrors = false)
7968
public
BoundDecisionDag
ReachabilityDecisionDag { get; }
7975
public BoundIsPatternExpression Update(BoundExpression expression, BoundPattern pattern, bool isNegated,
BoundDecisionDag
reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type)
9129
return VisitDecisionDag((
BoundDecisionDag
)node, arg);
9470
public virtual R VisitDecisionDag(
BoundDecisionDag
node, A arg) => this.DefaultVisit(node, arg);
9706
public virtual BoundNode? VisitDecisionDag(
BoundDecisionDag
node) => this.DefaultVisit(node);
10321
public override BoundNode? VisitDecisionDag(
BoundDecisionDag
node)
11449
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11661
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11670
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
11675
public override BoundNode? VisitDecisionDag(
BoundDecisionDag
node)
12225
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
13572
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
13813
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
13833
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
14870
BoundDecisionDag
reachabilityDecisionDag = node.ReachabilityDecisionDag;
16280
public override TreeDumperNode VisitDecisionDag(
BoundDecisionDag
node, object? arg) => new TreeDumperNode("decisionDag", null, new TreeDumperNode[]
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)
509
protected
BoundDecisionDag
ShareTempsAndEvaluateInput(
511
BoundDecisionDag
decisionDag,
613
private
BoundDecisionDag
RewriteTupleInput(
614
BoundDecisionDag
decisionDag,
636
var
rewrittenDag = decisionDag.Rewrite(makeReplacement);
685
return
BoundDecisionDag
.TrivialReplacement(node, replacement);
Lowering\LocalRewriter\LocalRewriter_BasePatternSwitchLocalRewriter.cs (1)
68
protected (ImmutableArray<BoundStatement> loweredDag, ImmutableDictionary<SyntaxNode, ImmutableArray<BoundStatement>> switchSections) LowerDecisionDag(
BoundDecisionDag
decisionDag)
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (3)
17
BoundDecisionDag
decisionDag = node.GetDecisionDagForLowering(_factory.Compilation);
109
internal BoundExpression LowerGeneralIsPattern(BoundIsPatternExpression node,
BoundDecisionDag
decisionDag)
220
BoundDecisionDag
decisionDag,
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (1)
98
BoundDecisionDag
decisionDag = ShareTempsIfPossibleAndEvaluateInput(
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (1)
53
BoundDecisionDag
decisionDag = ShareTempsIfPossibleAndEvaluateInput(
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (1)
Semantics\PatternMatchingTestBase.cs (1)
461
var
decisionDag = node switch