3 instantiations of BoundWhenDecisionDagNode
Microsoft.CodeAnalysis.CSharp (3)
Binder\DecisionDagBuilder.cs (2)
1030state.Dag = uniqifyDagNode(new BoundWhenDecisionDagNode(first.Syntax, first.Bindings, first.WhenClause, whenTrue, whenFalse)); 1036return bindings.IsDefaultOrEmpty ? final : uniqifyDagNode(new BoundWhenDecisionDagNode(syntax, bindings, null, final, null));
Generated\BoundNodes.xml.Generated.cs (1)
5137var result = new BoundWhenDecisionDagNode(this.Syntax, bindings, whenExpression, whenTrue, whenFalse, this.HasErrors);
37 references to BoundWhenDecisionDagNode
Microsoft.CodeAnalysis.CSharp (37)
Binder\DecisionDagBuilder.cs (1)
29/// <see cref="BoundWhenDecisionDagNode"/> represents the test performed by evaluating the expression of the
Binder\PatternExplainer.cs (4)
61BoundWhenDecisionDagNode w when distance(w.WhenTrue) is var trueDist2 && distance(w.WhenFalse) is var falseDist2 => 88case BoundWhenDecisionDagNode w: 159case BoundWhenDecisionDagNode whenNode: 258bool sense = t.WhenTrue == nextNode || (t.WhenFalse != nextNode && t.WhenTrue is BoundWhenDecisionDagNode);
BoundTree\BoundDecisionDag.cs (2)
37case BoundWhenDecisionDagNode w: 130case BoundWhenDecisionDagNode p:
BoundTree\BoundDecisionDagNode.cs (4)
29case (BoundWhenDecisionDagNode n1, BoundWhenDecisionDagNode n2): 46case BoundWhenDecisionDagNode n: 95case BoundWhenDecisionDagNode node:
FlowAnalysis\NullableWalker_Patterns.cs (1)
669case BoundWhenDecisionDagNode w:
Generated\BoundNodes.xml.Generated.cs (8)
5133public BoundWhenDecisionDagNode Update(ImmutableArray<BoundPatternBinding> bindings, BoundExpression? whenExpression, BoundDecisionDagNode whenTrue, BoundDecisionDagNode? whenFalse) 5137var result = new BoundWhenDecisionDagNode(this.Syntax, bindings, whenExpression, whenTrue, whenFalse, this.HasErrors); 9100return VisitWhenDecisionDagNode((BoundWhenDecisionDagNode)node, arg); 9438public virtual R VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node, A arg) => this.DefaultVisit(node, arg); 9674public virtual BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) => this.DefaultVisit(node); 10302public override BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) 11562public override BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) 16124public override TreeDumperNode VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node, object? arg) => new TreeDumperNode("whenDecisionDagNode", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (11)
70case BoundWhenDecisionDagNode w: 351.Any(static (node, mightAssignWalker) => node is BoundWhenDecisionDagNode w && mightAssignWalker.MightAssignSomething(w.WhenExpression), mightAssignWalker); 377case BoundWhenDecisionDagNode _: 1002var whenExpressionMap = PooledDictionary<BoundExpression, (LabelSymbol LabelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> WhenNodes)>.GetInstance(); 1003var whenNodeMap = PooledDictionary<BoundWhenDecisionDagNode, (LabelSymbol LabelToWhenExpression, int WhenNodeIdentifier)>.GetInstance(); 1006if (node is BoundWhenDecisionDagNode whenNode) 1020var list = ArrayBuilder<BoundWhenDecisionDagNode>.GetInstance(); 1033if (node is BoundWhenDecisionDagNode whenNode) 1054bool tryLowerAsJumpToSharedWhenExpression(BoundWhenDecisionDagNode whenNode) 1079void lowerWhenExpressionIfShared(BoundExpression whenExpression, LabelSymbol labelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> whenNodes) 1144void lowerWhenClause(BoundWhenDecisionDagNode whenClause)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (3)
516.Any(static node => node is BoundWhenDecisionDagNode { WhenExpression: { ConstantValueOpt: null } }); 536if (node is BoundWhenDecisionDagNode w) 582case BoundWhenDecisionDagNode n:
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (3)
65case BoundWhenDecisionDagNode w: 139if (node is BoundWhenDecisionDagNode w) 281case BoundWhenDecisionDagNode whenNode: