3 instantiations of BoundWhenDecisionDagNode
Microsoft.CodeAnalysis.CSharp (3)
Binder\DecisionDagBuilder.cs (2)
1078state.Dag = uniqifyDagNode(new BoundWhenDecisionDagNode(first.Syntax, first.Bindings, first.WhenClause, whenTrue, whenFalse)); 1084return bindings.IsDefaultOrEmpty ? final : uniqifyDagNode(new BoundWhenDecisionDagNode(syntax, bindings, null, final, null));
Generated\BoundNodes.xml.Generated.cs (1)
5159var result = new BoundWhenDecisionDagNode(this.Syntax, bindings, whenExpression, whenTrue, whenFalse, this.HasErrors);
38 references to BoundWhenDecisionDagNode
Microsoft.CodeAnalysis.CSharp (38)
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: 189case BoundWhenDecisionDagNode whenNode: 298bool 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)
671case BoundWhenDecisionDagNode w:
Generated\BoundNodes.xml.Generated.cs (8)
5155public BoundWhenDecisionDagNode Update(ImmutableArray<BoundPatternBinding> bindings, BoundExpression? whenExpression, BoundDecisionDagNode whenTrue, BoundDecisionDagNode? whenFalse) 5159var result = new BoundWhenDecisionDagNode(this.Syntax, bindings, whenExpression, whenTrue, whenFalse, this.HasErrors); 9166return VisitWhenDecisionDagNode((BoundWhenDecisionDagNode)node, arg); 9504public virtual R VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node, A arg) => this.DefaultVisit(node, arg); 9740public virtual BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) => this.DefaultVisit(node); 10369public override BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) 11723public override BoundNode? VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node) 16325public override TreeDumperNode VisitWhenDecisionDagNode(BoundWhenDecisionDagNode node, object? arg) => new TreeDumperNode("whenDecisionDagNode", null, new TreeDumperNode[]
Lowering\LocalRewriter\LocalRewriter.DecisionDagRewriter.cs (12)
70case BoundWhenDecisionDagNode w: 351.Any(static (node, mightAssignWalker) => node is BoundWhenDecisionDagNode w && mightAssignWalker.MightAssignSomething(w.WhenExpression), mightAssignWalker); 377case BoundWhenDecisionDagNode _: 1010var whenExpressionMap = PooledDictionary<BoundExpression, (LabelSymbol LabelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> WhenNodes)>.GetInstance(); 1011var whenNodeMap = PooledDictionary<BoundWhenDecisionDagNode, (LabelSymbol LabelToWhenExpression, int WhenNodeIdentifier)>.GetInstance(); 1014if (node is BoundWhenDecisionDagNode whenNode) 1028var list = ArrayBuilder<BoundWhenDecisionDagNode>.GetInstance(); 1041if (node is BoundWhenDecisionDagNode whenNode) 1062bool tryLowerAsJumpToSharedWhenExpression(BoundWhenDecisionDagNode whenNode) 1087void lowerWhenExpressionIfShared(BoundExpression whenExpression, LabelSymbol labelToWhenExpression, ArrayBuilder<BoundWhenDecisionDagNode> whenNodes) 1108foreach (var whenNode in whenNodes) 1152void lowerWhenClause(BoundWhenDecisionDagNode whenClause)
Lowering\LocalRewriter\LocalRewriter.PatternLocalRewriter.cs (3)
528.Any(static node => node is BoundWhenDecisionDagNode { WhenExpression: { ConstantValueOpt: null } }); 548if (node is BoundWhenDecisionDagNode w) 594case BoundWhenDecisionDagNode n:
Lowering\LocalRewriter\LocalRewriter_IsPatternOperator.cs (3)
65case BoundWhenDecisionDagNode w: 139if (node is BoundWhenDecisionDagNode w) 281case BoundWhenDecisionDagNode whenNode: