9 types derived from BoundPattern
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
8017internal sealed partial class BoundConstantPattern : BoundPattern 8054internal sealed partial class BoundDiscardPattern : BoundPattern 8094internal abstract partial class BoundObjectPattern : BoundPattern 8232internal sealed partial class BoundSlicePattern : BoundPattern 8271internal sealed partial class BoundITuplePattern : BoundPattern 8415internal sealed partial class BoundTypePattern : BoundPattern 8451internal sealed partial class BoundBinaryPattern : BoundPattern 8490internal sealed partial class BoundNegatedPattern : BoundPattern 8524internal sealed partial class BoundRelationalPattern : BoundPattern
144 references to BoundPattern
Microsoft.CodeAnalysis.CSharp (144)
Binder\Binder_Patterns.cs (33)
39BoundPattern pattern = BindPattern(node.Pattern, expression.Type, permitDesignations: true, hasErrors, diagnostics, underIsPattern: true); 49BoundPattern pattern, 58bool negated = pattern.IsNegated(out var innerPattern); 164internal BoundPattern BindPattern( 190private BoundPattern BindParenthesizedPattern( 202private BoundPattern BindSlicePattern( 217BoundPattern? pattern = null; 259private ImmutableArray<BoundPattern> BindListPatternSubpatterns( 269var builder = ArrayBuilder<BoundPattern>.GetInstance(subpatterns.Count); 272BoundPattern boundPattern; 327ImmutableArray<BoundPattern> subpatterns = BindListPatternSubpatterns( 402private static BoundPattern BindDiscardPattern(DiscardPatternSyntax node, TypeSymbol inputType, BindingDiagnosticBag diagnostics) 408private BoundPattern BindConstantPatternWithFallbackToTypePattern( 417internal BoundPattern BindConstantPatternWithFallbackToTypePattern( 837private BoundPattern BindDeclarationPattern( 957private BoundPattern BindRecursivePattern( 1145BoundPattern pattern = BindVarDesignation(variable, objectType, permitDesignations, hasErrors: false, diagnostics); 1317private BoundPattern BindVarPattern( 1343private BoundPattern BindVarDesignation( 1424BoundPattern pattern = BindVarDesignation(variable, elementType, permitDesignations, isError, diagnostics); 1447BoundPattern pattern = BindVarDesignation(variable, elementType, permitDesignations, isError, diagnostics); 1503BoundPattern boundPattern = BindPattern(pattern, memberType, permitDesignations, hasErrors, diagnostics); 1611private BoundPattern BindTypePattern( 1624private BoundPattern BindRelationalPattern( 1717private BoundPattern BindUnaryPattern( 1727var subPattern = BindPattern(node.Pattern, inputType, permitDesignations, hasErrors, diagnostics, underIsPattern); 1731private BoundPattern BindBinaryPattern( 1753BoundPattern result = BindPattern(binaryPatternAndPermitDesignations.pat.Left, inputType, binaryPatternAndPermitDesignations.permitDesignations, hasErrors, diagnostics); 1774static BoundPattern bindBinaryPattern( 1775BoundPattern preboundLeft, 1790var right = binder.BindPattern(node.Right, inputType, permitDesignations, hasErrors, diagnostics); 1857var right = binder.BindPattern(node.Right, preboundLeft.NarrowedType, permitDesignations, hasErrors, diagnostics); 1864static void collectCandidates(BoundPattern pat, ArrayBuilder<TypeSymbol> candidates)
Binder\DecisionDagBuilder.cs (9)
117BoundPattern pattern, 130BoundPattern pattern, 187BoundPattern pattern, 197BoundPattern pattern, 270BoundPattern pattern, 283BoundPattern pattern, 539BoundPattern pattern = recursive.Deconstruction[i].Pattern; 560BoundPattern pattern = recursive.Deconstruction[i].Pattern; 583BoundPattern pattern = subpattern.Pattern;
Binder\DecisionDagBuilder_ListPatterns.cs (2)
50foreach (BoundPattern subpattern in subpatterns) 57if (slice.Pattern is BoundPattern slicePattern)
Binder\SwitchBinder_Patterns.cs (3)
240BoundPattern pattern = sectionBinder.BindConstantPatternWithFallbackToTypePattern( 272BoundPattern pattern = sectionBinder.BindPattern( 286void reportIfConstantNamedUnderscore(BoundPattern pattern, ExpressionSyntax expression)
Binder\SwitchExpressionArmBinder.cs (1)
42BoundPattern pattern = armBinder.BindPattern(node.Pattern, switchGoverningType, permitDesignations: true, hasErrors, diagnostics);
BoundTree\BoundIsPatternExpression.cs (1)
16bool negated = this.Pattern.IsNegated(out var innerPattern);
BoundTree\BoundPattern.cs (1)
14internal bool IsNegated(out BoundPattern innerPattern)
BoundTree\BoundTreeRewriter.cs (6)
218if (node is BoundExpression or BoundPattern) 342BoundPattern child = node.Left; 367var left = (BoundPattern?)this.Visit(child); 373var right = (BoundPattern?)this.Visit(binary.Right);
BoundTree\BoundTreeVisitors.cs (1)
202Debug.Assert(node is BoundExpression or BoundPattern);
BoundTree\BoundTreeWalker.cs (4)
73if (node is BoundExpression or BoundPattern) 88Debug.Assert(node is BoundExpression or BoundPattern); 152var rightOperands = ArrayBuilder<BoundPattern>.GetInstance(); 157BoundPattern? current = binary.Left;
Compilation\CSharpSemanticModel.cs (3)
2034BoundPattern pattern = lowestBoundNode as BoundPattern ?? highestBoundNode as BoundPattern ?? (highestBoundNode is BoundSubpattern sp ? sp.Pattern : null);
Compilation\MemberSemanticModel.NodeMapBuilder.cs (2)
225var stack = ArrayBuilder<BoundPattern>.GetInstance(); 228BoundPattern currentPattern = binaryPattern.Left;
FlowAnalysis\AbstractFlowPass.cs (5)
363if (node is BoundExpression or BoundPattern) 930bool negated = node.Pattern.IsNegated(out var pattern); 979static bool patternMatchesNull(BoundPattern pattern) 1029static bool? isBoolTest(BoundPattern pattern) 1102public virtual void VisitPattern(BoundPattern pattern)
FlowAnalysis\DefiniteAssignment.cs (3)
1943public override void VisitPattern(BoundPattern pattern) 1953void assignPatternVariablesAndMarkReadFields(BoundPattern pattern, bool definitely = true) 2028foreach (BoundPattern p in pat.Subpatterns)
FlowAnalysis\NullableWalker.cs (1)
3708Debug.Assert(node is BoundExpression or BoundPattern);
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
98if (node is BoundExpression or BoundPattern)
FlowAnalysis\NullableWalker_Patterns.cs (2)
26BoundPattern pattern) 155BoundPattern pattern)
FlowAnalysis\VariablesDeclaredWalker.cs (2)
51public override void VisitPattern(BoundPattern pattern) 70private void NoteDeclaredPatternVariables(BoundPattern pattern)
Generated\BoundNodes.xml.Generated.cs (64)
4901public BoundSwitchExpressionArm(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label, bool hasErrors = false) 4918public BoundPattern Pattern { get; } 4926public BoundSwitchExpressionArm Update(ImmutableArray<LocalSymbol> locals, BoundPattern pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label) 5688public BoundSwitchLabel(SyntaxNode syntax, LabelSymbol label, BoundPattern pattern, BoundExpression? whenClause, bool hasErrors = false) 5701public BoundPattern Pattern { get; } 5707public BoundSwitchLabel Update(LabelSymbol label, BoundPattern pattern, BoundExpression? whenClause) 7949public BoundIsPatternExpression(SyntaxNode syntax, BoundExpression expression, BoundPattern pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type, bool hasErrors = false) 7968public BoundPattern Pattern { get; } 7977public BoundIsPatternExpression Update(BoundExpression expression, BoundPattern pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type) 8190public BoundListPattern(SyntaxNode syntax, ImmutableArray<BoundPattern> subpatterns, bool hasSlice, BoundExpression? lengthAccess, BoundExpression? indexerAccess, BoundListPatternReceiverPlaceholder? receiverPlaceholder, BoundListPatternIndexPlaceholder? argumentPlaceholder, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8210public ImmutableArray<BoundPattern> Subpatterns { get; } 8220public BoundListPattern Update(ImmutableArray<BoundPattern> subpatterns, bool hasSlice, BoundExpression? lengthAccess, BoundExpression? indexerAccess, BoundListPatternReceiverPlaceholder? receiverPlaceholder, BoundListPatternIndexPlaceholder? argumentPlaceholder, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType) 8234public BoundSlicePattern(SyntaxNode syntax, BoundPattern? pattern, BoundExpression? indexerAccess, BoundSlicePatternReceiverPlaceholder? receiverPlaceholder, BoundSlicePatternRangePlaceholder? argumentPlaceholder, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8251public BoundPattern? Pattern { get; } 8259public BoundSlicePattern Update(BoundPattern? pattern, BoundExpression? indexerAccess, BoundSlicePatternReceiverPlaceholder? receiverPlaceholder, BoundSlicePatternRangePlaceholder? argumentPlaceholder, TypeSymbol inputType, TypeSymbol narrowedType) 8313protected BoundSubpattern(BoundKind kind, SyntaxNode syntax, BoundPattern pattern, bool hasErrors = false) 8322public BoundPattern Pattern { get; } 8327public BoundPositionalSubpattern(SyntaxNode syntax, Symbol? symbol, BoundPattern pattern, bool hasErrors = false) 8341public BoundPositionalSubpattern Update(Symbol? symbol, BoundPattern pattern) 8355public BoundPropertySubpattern(SyntaxNode syntax, BoundPropertySubpatternMember? member, bool isLengthOrCount, BoundPattern pattern, bool hasErrors = false) 8371public BoundPropertySubpattern Update(BoundPropertySubpatternMember? member, bool isLengthOrCount, BoundPattern pattern) 8453public BoundBinaryPattern(SyntaxNode syntax, bool disjunction, BoundPattern left, BoundPattern right, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8472public BoundPattern Left { get; } 8473public BoundPattern Right { get; } 8478public BoundBinaryPattern Update(bool disjunction, BoundPattern left, BoundPattern right, TypeSymbol inputType, TypeSymbol narrowedType) 8492public BoundNegatedPattern(SyntaxNode syntax, BoundPattern negated, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false) 8507public BoundPattern Negated { get; } 8512public BoundNegatedPattern Update(BoundPattern negated, TypeSymbol inputType, TypeSymbol narrowedType) 11651BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 11803BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 12224BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 12266ImmutableArray<BoundPattern> subpatterns = this.VisitList(node.Subpatterns); 12278BoundPattern? pattern = (BoundPattern?)this.Visit(node.Pattern); 12298BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 12304BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 12323BoundPattern left = (BoundPattern)this.Visit(node.Left); 12324BoundPattern right = (BoundPattern)this.Visit(node.Right); 12331BoundPattern negated = (BoundPattern)this.Visit(node.Negated); 13802BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 14868BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 14927ImmutableArray<BoundPattern> subpatterns = this.VisitList(node.Subpatterns); 14940BoundPattern? pattern = (BoundPattern?)this.Visit(node.Pattern); 14960BoundPattern pattern = (BoundPattern)this.Visit(node.Pattern); 14983BoundPattern left = (BoundPattern)this.Visit(node.Left); 14984BoundPattern right = (BoundPattern)this.Visit(node.Right); 14992BoundPattern negated = (BoundPattern)this.Visit(node.Negated);