6 instantiations of BoundBinaryPattern
Microsoft.CodeAnalysis.CSharp (6)
Binder\Binder_Patterns.cs (2)
1807
return new
BoundBinaryPattern
(node, disjunction: isDisjunction, preboundLeft, right, inputType: inputType, narrowedType: narrowedType, hasErrors);
1871
return new
BoundBinaryPattern
(node, disjunction: isDisjunction, preboundLeft, right, inputType: inputType, narrowedType: right.NarrowedType, hasErrors);
Binder\DecisionDagBuilder_CheckOrReachability.cs (3)
480
var wrappedPattern = new
BoundBinaryPattern
(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.NarrowedType);
735
stack.Push(new
BoundBinaryPattern
(operationSyntax, disjunction, left, right, left.InputType, narrowedType));
1031
var result = new
BoundBinaryPattern
(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.NarrowedType);
Generated\BoundNodes.xml.Generated.cs (1)
8482
var result = new
BoundBinaryPattern
(this.Syntax, disjunction, left, right, inputType, narrowedType, this.HasErrors);
86 references to BoundBinaryPattern
Microsoft.CodeAnalysis.CSharp (86)
Binder\Binder_Patterns.cs (3)
83
case
BoundBinaryPattern
_:
121
case
BoundBinaryPattern
_:
1877
if (pat is
BoundBinaryPattern
{ Disjunction: true } p)
Binder\DecisionDagBuilder.cs (6)
311
case
BoundBinaryPattern
bin:
644
BoundBinaryPattern
bin,
650
var binaryPatternStack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
651
var
currentNode = bin;
656
currentNode = currentNode.Left as
BoundBinaryPattern
;
671
static Tests makeTestsAndBindingsForBinaryPattern(DecisionDagBuilder @this, Tests leftTests, BoundDagTemp leftOutput, BoundDagTemp input,
BoundBinaryPattern
bin, out BoundDagTemp output, ArrayBuilder<BoundPatternBinding> bindings)
Binder\DecisionDagBuilder_CheckOrReachability.cs (19)
415
if (pattern is
BoundBinaryPattern
binaryPattern)
428
if (pattern is
BoundBinaryPattern
nestedBinary)
434
static void analyzeBinary(ArrayBuilder<BoundPattern> currentCases,
BoundBinaryPattern
binaryPattern, Func<BoundPattern, BoundPattern>? wrapIntoParentAndPattern, ref readonly ReachabilityAnalysisContext context)
462
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
463
BoundBinaryPattern
? current = binaryPattern;
467
current = current.Left as
BoundBinaryPattern
;
480
var
wrappedPattern = new BoundBinaryPattern(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.NarrowedType);
542
if (pattern is
BoundBinaryPattern
{ Disjunction: true } orPattern)
544
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
546
BoundBinaryPattern
? current = orPattern;
550
current = current.Left as
BoundBinaryPattern
;
556
Debug.Assert(current.Left is not
BoundBinaryPattern
{ Disjunction: true });
790
Debug.Assert(node is
BoundBinaryPattern
818
public override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
827
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
829
BoundBinaryPattern
? current = node;
833
current = current.Left as
BoundBinaryPattern
;
841
Debug.Assert(!(current.Left is
BoundBinaryPattern
binary && binary.Disjunction == node.Disjunction));
1031
var
result = new BoundBinaryPattern(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.NarrowedType);
BoundTree\BoundNode_Source.cs (1)
349
case
BoundBinaryPattern
binaryPattern:
BoundTree\BoundTreeRewriter.cs (5)
340
public sealed override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
349
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
352
BoundBinaryPattern
binary = (
BoundBinaryPattern
)child;
364
binary = (
BoundBinaryPattern
)child;
BoundTree\BoundTreeWalker.cs (3)
145
public sealed override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
147
if (node.Left is not
BoundBinaryPattern
binary)
161
binary = (
BoundBinaryPattern
)current;
Compilation\MemberSemanticModel.NodeMapBuilder.cs (3)
223
else if (current is
BoundBinaryPattern
binaryPattern)
229
binaryPattern = currentPattern as
BoundBinaryPattern
;
240
binaryPattern = currentPattern as
BoundBinaryPattern
;
FlowAnalysis\AbstractFlowPass.cs (12)
927
BoundDeclarationPattern or BoundConstantPattern or BoundNegatedPattern or
BoundBinaryPattern
or
996
case
BoundBinaryPattern
binary:
998
Debug.Assert(binaryPatterns.Peek().Left is not
BoundBinaryPattern
);
1001
while (binaryPatterns.TryPop(out
var
currentBinary))
1037
case
BoundBinaryPattern
binary:
1039
Debug.Assert(binaryPatterns.Peek().Left is not
BoundBinaryPattern
);
1042
while (binaryPatterns.TryPop(out
var
currentBinary))
1079
static ArrayBuilder<
BoundBinaryPattern
> getBinaryPatterns(
BoundBinaryPattern
binaryPattern)
1083
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
1088
if (binaryPattern.Left is
BoundBinaryPattern
leftBinaryPattern)
1113
public override BoundNode VisitBinaryPattern(
BoundBinaryPattern
node)
FlowAnalysis\DefiniteAssignment.cs (5)
2050
var
pat = (
BoundBinaryPattern
)pattern;
2052
if (pat.Left is not
BoundBinaryPattern
)
2061
var stack = ArrayBuilder<(
BoundBinaryPattern
pattern, bool def)>.GetInstance();
2067
pat = pat.Left as
BoundBinaryPattern
;
FlowAnalysis\NullableWalker.DebugVerifier.cs (2)
319
public override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
326
if (node.Left is not
BoundBinaryPattern
child)
FlowAnalysis\NullableWalker_Patterns.cs (8)
112
public override BoundNode VisitBinaryPattern(
BoundBinaryPattern
node)
116
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
117
BoundBinaryPattern
current = node;
121
current = current.Left as
BoundBinaryPattern
;
129
Debug.Assert(current.Left is not
BoundBinaryPattern
);
223
case
BoundBinaryPattern
p:
225
var
current = p;
231
if (current.Left is
BoundBinaryPattern
left)
Generated\BoundNodes.xml.Generated.cs (9)
8478
public
BoundBinaryPattern
Update(bool disjunction, BoundPattern left, BoundPattern right, TypeSymbol inputType, TypeSymbol narrowedType)
8482
var
result = new BoundBinaryPattern(this.Syntax, disjunction, left, right, inputType, narrowedType, this.HasErrors);
9311
return VisitBinaryPattern((
BoundBinaryPattern
)node, arg);
9562
public virtual R VisitBinaryPattern(
BoundBinaryPattern
node, A arg) => this.DefaultVisit(node, arg);
9798
public virtual BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node) => this.DefaultVisit(node);
10777
public override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
12321
public override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
14979
public override BoundNode? VisitBinaryPattern(
BoundBinaryPattern
node)
17192
public override TreeDumperNode VisitBinaryPattern(
BoundBinaryPattern
node, object? arg) => new TreeDumperNode("binaryPattern", null, new TreeDumperNode[]
Lowering\DiagnosticsPass_ExpressionTrees.cs (3)
723
public override BoundNode VisitBinaryPattern(
BoundBinaryPattern
node)
727
BoundBinaryPattern
current = node;
731
if (current.Left is
BoundBinaryPattern
left)
Operations\CSharpOperationFactory.cs (7)
235
return CreateBoundBinaryPatternOperation((
BoundBinaryPattern
)boundNode);
2643
private IOperation CreateBoundBinaryPatternOperation(
BoundBinaryPattern
boundBinaryPattern)
2645
if (boundBinaryPattern.Left is not
BoundBinaryPattern
)
2651
var stack = ArrayBuilder<
BoundBinaryPattern
>.GetInstance();
2652
BoundBinaryPattern
? current = boundBinaryPattern;
2657
current = current.Left as
BoundBinaryPattern
;
2670
static BinaryPatternOperation createOperation(CSharpOperationFactory @this,
BoundBinaryPattern
boundBinaryPattern, IPatternOperation left)