8 instantiations of BoundBinaryPattern
Microsoft.CodeAnalysis.CSharp (8)
Binder\Binder_Patterns.cs (2)
2519return new BoundBinaryPattern(node, disjunction: true, preboundLeft, right, inputType: inputType, narrowedType: narrowedType, hasErrors); 2528var result = new BoundBinaryPattern(node, disjunction: isDisjunction, preboundLeft, right, inputType: inputType, narrowedType: right.NarrowedType, hasErrors);
Binder\DecisionDagBuilder_CheckOrReachability.cs (3)
488var wrappedPattern = new BoundBinaryPattern(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.NarrowedType); 743stack.Push(new BoundBinaryPattern(operationSyntax, disjunction, left, right, left.InputType, narrowedType)); 1040var result = new BoundBinaryPattern(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.NarrowedType);
Binder\UnionMatchingRewriter.cs (2)
87return new BoundBinaryPattern( 415return new BoundBinaryPattern(node, disjunction: false, left, right, inputType: left.InputType, narrowedType: right.NarrowedType) { WasCompilerGenerated = makeCompilerGenerated };
Generated\BoundNodes.xml.Generated.cs (1)
8680var result = new BoundBinaryPattern(this.Syntax, disjunction, left, right, inputType, narrowedType, this.HasErrors);
105 references to BoundBinaryPattern
Microsoft.CodeAnalysis.CSharp (105)
Binder\Binder_Patterns.cs (6)
509case BoundBinaryPattern _: 547case BoundBinaryPattern _: 2486static BoundBinaryPattern bindBinaryPattern( 2528var result = new BoundBinaryPattern(node, disjunction: isDisjunction, preboundLeft, right, inputType: inputType, narrowedType: right.NarrowedType, hasErrors); 2591while (pat is BoundBinaryPattern { Disjunction: true } p) 2622if (pat is BoundBinaryPattern { Disjunction: false } p)
Binder\DecisionDagBuilder.cs (6)
405case BoundBinaryPattern bin: 1105BoundBinaryPattern bin, 1111var binaryPatternStack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 1112var currentNode = bin; 1117currentNode = currentNode.Left as BoundBinaryPattern; 1132Tests makeTestsAndBindingsForBinaryPattern(DecisionDagBuilder @this, Tests leftTests, TestInputOutputInfo leftOutputInfo, TestInputOutputInfo inputInfo, BoundBinaryPattern bin, out TestInputOutputInfo outputInfo, ArrayBuilder<BoundPatternBinding> bindings)
Binder\DecisionDagBuilder_CheckOrReachability.cs (19)
423if (pattern is BoundBinaryPattern binaryPattern) 436if (pattern is BoundBinaryPattern nestedBinary) 442static void analyzeBinary(ArrayBuilder<BoundPattern> currentCases, BoundBinaryPattern binaryPattern, Func<BoundPattern, BoundPattern>? wrapIntoParentAndPattern, ref readonly ReachabilityAnalysisContext context) 470var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 471BoundBinaryPattern? current = binaryPattern; 475current = current.Left as BoundBinaryPattern; 488var wrappedPattern = new BoundBinaryPattern(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.NarrowedType); 550if (pattern is BoundBinaryPattern { Disjunction: true } orPattern) 552var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 554BoundBinaryPattern? current = orPattern; 558current = current.Left as BoundBinaryPattern; 564Debug.Assert(current.Left is not BoundBinaryPattern { Disjunction: true }); 799Debug.Assert(node is BoundBinaryPattern 827public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 836var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 838BoundBinaryPattern? current = node; 842current = current.Left as BoundBinaryPattern; 850Debug.Assert(!(current.Left is BoundBinaryPattern binary && binary.Disjunction == node.Disjunction)); 1040var result = new BoundBinaryPattern(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.NarrowedType);
Binder\UnionMatchingRewriter.cs (7)
228public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 230var binaryPatternStack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 231BoundBinaryPattern? currentNode = node; 236currentNode = currentNode.Left as BoundBinaryPattern; 241var binaryPattern = binaryPatternStack.Pop(); 277BoundBinaryPattern node 413private static BoundBinaryPattern MakeBinaryAnd(SyntaxNode node, BoundPattern left, BoundPattern right, bool makeCompilerGenerated)
BoundTree\BoundNode_Source.cs (1)
349case BoundBinaryPattern binaryPattern:
BoundTree\BoundTreeRewriter.cs (5)
340public sealed override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 349var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 352BoundBinaryPattern binary = (BoundBinaryPattern)child; 364binary = (BoundBinaryPattern)child;
BoundTree\BoundTreeWalker.cs (3)
145public sealed override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 147if (node.Left is not BoundBinaryPattern binary) 161binary = (BoundBinaryPattern)current;
BoundTree\NullabilityRewriter.cs (4)
138public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 142var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 143BoundBinaryPattern? currentBinary = node; 148currentBinary = currentBinary.Left as BoundBinaryPattern;
Compilation\MemberSemanticModel.NodeMapBuilder.cs (3)
223else if (current is BoundBinaryPattern binaryPattern) 229binaryPattern = currentPattern as BoundBinaryPattern; 240binaryPattern = currentPattern as BoundBinaryPattern;
FlowAnalysis\AbstractFlowPass.cs (12)
928BoundDeclarationPattern or BoundConstantPattern or BoundNegatedPattern or BoundBinaryPattern or 997case BoundBinaryPattern binary: 999Debug.Assert(binaryPatterns.Peek().Left is not BoundBinaryPattern); 1002while (binaryPatterns.TryPop(out var currentBinary)) 1038case BoundBinaryPattern binary: 1040Debug.Assert(binaryPatterns.Peek().Left is not BoundBinaryPattern); 1043while (binaryPatterns.TryPop(out var currentBinary)) 1080static ArrayBuilder<BoundBinaryPattern> getBinaryPatterns(BoundBinaryPattern binaryPattern) 1084var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 1089if (binaryPattern.Left is BoundBinaryPattern leftBinaryPattern) 1114public override BoundNode VisitBinaryPattern(BoundBinaryPattern node)
FlowAnalysis\DefiniteAssignment.cs (5)
2051var pat = (BoundBinaryPattern)pattern; 2053if (pat.Left is not BoundBinaryPattern) 2062var stack = ArrayBuilder<(BoundBinaryPattern pattern, bool def)>.GetInstance(); 2068pat = pat.Left as BoundBinaryPattern;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
333public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 340if (node.Left is not BoundBinaryPattern child)
FlowAnalysis\NullableWalker_Patterns.cs (8)
113public override BoundNode VisitBinaryPattern(BoundBinaryPattern node) 117var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 118BoundBinaryPattern current = node; 122current = current.Left as BoundBinaryPattern; 130Debug.Assert(current.Left is not BoundBinaryPattern); 226case BoundBinaryPattern p: 228var current = p; 234if (current.Left is BoundBinaryPattern left)
FlowAnalysis\VariablesDeclaredWalker.cs (6)
124case BoundBinaryPattern: 126var binaryPattern = (BoundBinaryPattern)pattern; 127if (binaryPattern.Left is not BoundBinaryPattern) 140var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 144binaryPattern = binaryPattern.Left as BoundBinaryPattern;
Generated\BoundNodes.xml.Generated.cs (8)
8676public BoundBinaryPattern Update(bool disjunction, BoundPattern left, BoundPattern right, TypeSymbol inputType, TypeSymbol narrowedType) 8680var result = new BoundBinaryPattern(this.Syntax, disjunction, left, right, inputType, narrowedType, this.HasErrors); 9544return VisitBinaryPattern((BoundBinaryPattern)node, arg); 9801public virtual R VisitBinaryPattern(BoundBinaryPattern node, A arg) => this.DefaultVisit(node, arg); 10042public virtual BoundNode? VisitBinaryPattern(BoundBinaryPattern node) => this.DefaultVisit(node); 11042public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 12617public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node) 17574public override TreeDumperNode VisitBinaryPattern(BoundBinaryPattern node, object? arg) => new TreeDumperNode("binaryPattern", null, new TreeDumperNode[]
Lowering\DiagnosticsPass_ExpressionTrees.cs (3)
725public override BoundNode VisitBinaryPattern(BoundBinaryPattern node) 729BoundBinaryPattern current = node; 733if (current.Left is BoundBinaryPattern left)
Operations\CSharpOperationFactory.cs (7)
234return CreateBoundBinaryPatternOperation((BoundBinaryPattern)boundNode); 2709private IOperation CreateBoundBinaryPatternOperation(BoundBinaryPattern boundBinaryPattern) 2711if (boundBinaryPattern.Left is not BoundBinaryPattern) 2717var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance(); 2718BoundBinaryPattern? current = boundBinaryPattern; 2723current = current.Left as BoundBinaryPattern; 2736static BinaryPatternOperation createOperation(CSharpOperationFactory @this, BoundBinaryPattern boundBinaryPattern, IPatternOperation left)