2 instantiations of BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (2)
Binder\DecisionDagBuilder.cs (1)
756var boundDecisionDag = new BoundDecisionDag(rootDecisionDagNode.Syntax, rootDecisionDagNode);
Generated\BoundNodes.xml.Generated.cs (1)
5006var result = new BoundDecisionDag(this.Syntax, rootNode, this.HasErrors);
73 references to BoundDecisionDag
Microsoft.CodeAnalysis.CSharp (73)
Binder\Binder_Patterns.cs (2)
58BoundDecisionDag decisionDag = DecisionDagBuilder.CreateDecisionDagForIsPattern( 129static 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 81public static BoundDecisionDag CreateDecisionDagForSwitchStatement( 97public static BoundDecisionDag CreateDecisionDagForSwitchExpression( 113public static BoundDecisionDag CreateDecisionDagForIsPattern( 127private BoundDecisionDag CreateDecisionDagForIsPattern( 141private BoundDecisionDag CreateDecisionDagForSwitchStatement( 166private BoundDecisionDag CreateDecisionDagForSwitchExpression( 737private BoundDecisionDag MakeBoundDecisionDag(SyntaxNode syntax, ref TemporaryArray<StateForCase> cases) 756var 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)
45BoundDecisionDag decisionDag = DecisionDagBuilder.CreateDecisionDagForSwitchStatement( 74BoundDecisionDag decisionDag,
Binder\SwitchExpressionBinder.cs (4)
34bool reportedNotExhaustive = CheckSwitchExpressionExhaustive(node, boundInputExpression, switchArms, out BoundDecisionDag decisionDag, out LabelSymbol? defaultLabel, diagnostics); 58out BoundDecisionDag decisionDag, 125BoundDecisionDag.AddSuccessors(ref builder, n); 129BoundDecisionDag.AddSuccessors(ref builder, n);
BoundTree\BoundDecisionDag.cs (2)
93public BoundDecisionDag Rewrite(Func<BoundDecisionDagNode, IReadOnlyDictionary<BoundDecisionDagNode, BoundDecisionDagNode>, BoundDecisionDagNode> makeReplacement) 144public BoundDecisionDag SimplifyDecisionDagIfConstantInput(BoundExpression input)
BoundTree\BoundIsPatternExpression.cs (2)
11public BoundDecisionDag GetDecisionDagForLowering(CSharpCompilation compilation) 13BoundDecisionDag decisionDag = this.ReachabilityDecisionDag;
BoundTree\BoundSwitchExpression.cs (2)
12public BoundDecisionDag GetDecisionDagForLowering(CSharpCompilation compilation, out LabelSymbol? defaultLabel) 16BoundDecisionDag decisionDag = this.ReachabilityDecisionDag;
BoundTree\BoundSwitchStatement.cs (2)
12public BoundDecisionDag GetDecisionDagForLowering(CSharpCompilation compilation) 14BoundDecisionDag decisionDag = this.ReachabilityDecisionDag;
FlowAnalysis\NullableWalker_Patterns.cs (1)
376BoundDecisionDag decisionDag,
Generated\BoundNodes.xml.Generated.cs (28)
3754public BoundSwitchStatement(SyntaxNode syntax, BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel, bool hasErrors = false) 3778public BoundDecisionDag ReachabilityDecisionDag { get; } 3785public BoundSwitchStatement Update(BoundExpression expression, ImmutableArray<LocalSymbol> innerLocals, ImmutableArray<MethodSymbol> innerLocalFunctions, ImmutableArray<BoundSwitchSection> switchSections, BoundDecisionDag reachabilityDecisionDag, BoundSwitchLabel? defaultLabel, LabelSymbol breakLabel) 4863protected BoundSwitchExpression(BoundKind kind, SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4880public BoundDecisionDag ReachabilityDecisionDag { get; } 4926public BoundUnconvertedSwitchExpression(SyntaxNode syntax, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type, bool hasErrors = false) 4940public BoundUnconvertedSwitchExpression Update(BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol? type) 4954public BoundConvertedSwitchExpression(SyntaxNode syntax, TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type, bool hasErrors = false) 4974public BoundConvertedSwitchExpression Update(TypeSymbol? naturalTypeOpt, bool wasTargetTyped, BoundExpression expression, ImmutableArray<BoundSwitchExpressionArm> switchArms, BoundDecisionDag reachabilityDecisionDag, LabelSymbol? defaultLabel, bool reportedNotExhaustive, TypeSymbol type) 5002public BoundDecisionDag Update(BoundDecisionDagNode rootNode) 5006var result = new BoundDecisionDag(this.Syntax, rootNode, this.HasErrors); 7931public BoundIsPatternExpression(SyntaxNode syntax, BoundExpression expression, BoundPattern pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type, bool hasErrors = false) 7952public BoundDecisionDag ReachabilityDecisionDag { get; } 7959public BoundIsPatternExpression Update(BoundExpression expression, BoundPattern pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type) 9113return VisitDecisionDag((BoundDecisionDag)node, arg); 9454public virtual R VisitDecisionDag(BoundDecisionDag node, A arg) => this.DefaultVisit(node, arg); 9690public virtual BoundNode? VisitDecisionDag(BoundDecisionDag node) => this.DefaultVisit(node); 10303public override BoundNode? VisitDecisionDag(BoundDecisionDag node) 11428BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 11640BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 11649BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 11654public override BoundNode? VisitDecisionDag(BoundDecisionDag node) 12204BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 13564BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 13805BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 13825BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 14862BoundDecisionDag reachabilityDecisionDag = node.ReachabilityDecisionDag; 16270public override TreeDumperNode VisitDecisionDag(BoundDecisionDag node, object? arg) => new TreeDumperNode("decisionDag", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (4)
62private void ComputeLabelSet(BoundDecisionDag decisionDag) 337protected BoundDecisionDag ShareTempsIfPossibleAndEvaluateInput( 338BoundDecisionDag decisionDag, 369protected ImmutableArray<BoundStatement> LowerDecisionDagCore(BoundDecisionDag decisionDag)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (6)
509protected BoundDecisionDag ShareTempsAndEvaluateInput( 511BoundDecisionDag decisionDag, 613private BoundDecisionDag RewriteTupleInput( 614BoundDecisionDag decisionDag, 636var rewrittenDag = decisionDag.Rewrite(makeReplacement); 685return BoundDecisionDag.TrivialReplacement(node, replacement);
Lowering\LocalRewriter\LocalRewriter_BasePatternSwitchLocalRewriter.cs (1)
68protected (ImmutableArray<BoundStatement> loweredDag, ImmutableDictionary<SyntaxNode, ImmutableArray<BoundStatement>> switchSections) LowerDecisionDag(BoundDecisionDag decisionDag)
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (3)
17BoundDecisionDag decisionDag = node.GetDecisionDagForLowering(_factory.Compilation); 109internal BoundExpression LowerGeneralIsPattern(BoundIsPatternExpression node, BoundDecisionDag decisionDag) 220BoundDecisionDag decisionDag,
Lowering\LocalRewriter\LocalRewriter_PatternSwitchStatement.cs (1)
98BoundDecisionDag decisionDag = ShareTempsIfPossibleAndEvaluateInput(
Lowering\LocalRewriter\LocalRewriter_SwitchExpression.cs (1)
53BoundDecisionDag decisionDag = ShareTempsIfPossibleAndEvaluateInput(