Binder\DecisionDagBuilder_CheckOrReachability.cs (19)
493if (pattern is BoundBinaryPattern binaryPattern)
506if (pattern is BoundBinaryPattern nestedBinary)
512static void analyzeBinary(ArrayBuilder<BoundPattern> currentCases, BoundBinaryPattern binaryPattern, Func<BoundPattern, BoundPattern>? wrapIntoParentAndPattern, ref readonly ReachabilityAnalysisContext context)
540var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance();
541BoundBinaryPattern? current = binaryPattern;
545current = current.Left as BoundBinaryPattern;
558var wrappedPattern = new BoundBinaryPattern(newPattern.Syntax, disjunction: false, current.Left, newPattern, current.InputType, newPattern.NarrowedType);
620if (pattern is BoundBinaryPattern { Disjunction: true } orPattern)
622var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance();
624BoundBinaryPattern? current = orPattern;
628current = current.Left as BoundBinaryPattern;
634Debug.Assert(current.Left is not BoundBinaryPattern { Disjunction: true });
869Debug.Assert(node is BoundBinaryPattern
897public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node)
906var stack = ArrayBuilder<BoundBinaryPattern>.GetInstance();
908BoundBinaryPattern? current = node;
912current = current.Left as BoundBinaryPattern;
920Debug.Assert(!(current.Left is BoundBinaryPattern binary && binary.Disjunction == node.Disjunction));
1110var result = new BoundBinaryPattern(pattern.Syntax, disjunction: false, left: typePattern, right: pattern, inputType, pattern.NarrowedType);
Generated\BoundNodes.xml.Generated.cs (8)
8659public BoundBinaryPattern Update(bool disjunction, BoundPattern left, BoundPattern right, TypeSymbol inputType, TypeSymbol narrowedType)
8663var result = new BoundBinaryPattern(this.Syntax, disjunction, left, right, inputType, narrowedType, this.HasErrors);
9527return VisitBinaryPattern((BoundBinaryPattern)node, arg);
9784public virtual R VisitBinaryPattern(BoundBinaryPattern node, A arg) => this.DefaultVisit(node, arg);
10025public virtual BoundNode? VisitBinaryPattern(BoundBinaryPattern node) => this.DefaultVisit(node);
11037public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node)
12615public override BoundNode? VisitBinaryPattern(BoundBinaryPattern node)
17579public override TreeDumperNode VisitBinaryPattern(BoundBinaryPattern node, object? arg) => new TreeDumperNode("binaryPattern", null, new TreeDumperNode[]