9 types derived from BoundPattern
Microsoft.CodeAnalysis.CSharp (9)
Generated\BoundNodes.xml.Generated.cs (9)
8025
internal sealed partial class BoundConstantPattern :
BoundPattern
8062
internal sealed partial class BoundDiscardPattern :
BoundPattern
8102
internal abstract partial class BoundObjectPattern :
BoundPattern
8240
internal sealed partial class BoundSlicePattern :
BoundPattern
8279
internal sealed partial class BoundITuplePattern :
BoundPattern
8423
internal sealed partial class BoundTypePattern :
BoundPattern
8459
internal sealed partial class BoundBinaryPattern :
BoundPattern
8498
internal sealed partial class BoundNegatedPattern :
BoundPattern
8532
internal sealed partial class BoundRelationalPattern :
BoundPattern
218 references to BoundPattern
Microsoft.CodeAnalysis.CSharp (218)
Binder\Binder_Patterns.cs (33)
39
BoundPattern
pattern = BindPattern(node.Pattern, expression.Type, permitDesignations: true, hasErrors, diagnostics, underIsPattern: true);
49
BoundPattern
pattern,
58
bool negated = pattern.IsNegated(out
var
innerPattern);
175
internal
BoundPattern
BindPattern(
201
private
BoundPattern
BindParenthesizedPattern(
213
private
BoundPattern
BindSlicePattern(
228
BoundPattern
? pattern = null;
270
private ImmutableArray<
BoundPattern
> BindListPatternSubpatterns(
280
var builder = ArrayBuilder<
BoundPattern
>.GetInstance(subpatterns.Count);
283
BoundPattern
boundPattern;
338
ImmutableArray<
BoundPattern
> subpatterns = BindListPatternSubpatterns(
413
private static
BoundPattern
BindDiscardPattern(DiscardPatternSyntax node, TypeSymbol inputType, BindingDiagnosticBag diagnostics)
419
private
BoundPattern
BindConstantPatternWithFallbackToTypePattern(
428
internal
BoundPattern
BindConstantPatternWithFallbackToTypePattern(
848
private
BoundPattern
BindDeclarationPattern(
968
private
BoundPattern
BindRecursivePattern(
1156
BoundPattern
pattern = BindVarDesignation(variable, objectType, permitDesignations, hasErrors: false, diagnostics);
1328
private
BoundPattern
BindVarPattern(
1354
private
BoundPattern
BindVarDesignation(
1435
BoundPattern
pattern = BindVarDesignation(variable, elementType, permitDesignations, isError, diagnostics);
1458
BoundPattern
pattern = BindVarDesignation(variable, elementType, permitDesignations, isError, diagnostics);
1514
BoundPattern
boundPattern = BindPattern(pattern, memberType, permitDesignations, hasErrors, diagnostics);
1622
private
BoundPattern
BindTypePattern(
1635
private
BoundPattern
BindRelationalPattern(
1728
private
BoundPattern
BindUnaryPattern(
1738
var
subPattern = BindPattern(node.Pattern, inputType, permitDesignations, hasErrors, diagnostics, underIsPattern);
1742
private
BoundPattern
BindBinaryPattern(
1764
BoundPattern
result = BindPattern(binaryPatternAndPermitDesignations.pat.Left, inputType, binaryPatternAndPermitDesignations.permitDesignations, hasErrors, diagnostics);
1785
static
BoundPattern
bindBinaryPattern(
1786
BoundPattern
preboundLeft,
1801
var
right = binder.BindPattern(node.Right, inputType, permitDesignations, hasErrors, diagnostics);
1868
var
right = binder.BindPattern(node.Right, preboundLeft.NarrowedType, permitDesignations, hasErrors, diagnostics);
1875
static void collectCandidates(
BoundPattern
pat, ArrayBuilder<TypeSymbol> candidates)
Binder\DecisionDagBuilder.cs (9)
117
BoundPattern
pattern,
130
BoundPattern
pattern,
187
BoundPattern
pattern,
197
BoundPattern
pattern,
316
BoundPattern
pattern,
329
BoundPattern
pattern,
585
BoundPattern
pattern = recursive.Deconstruction[i].Pattern;
606
BoundPattern
pattern = recursive.Deconstruction[i].Pattern;
629
BoundPattern
pattern = subpattern.Pattern;
Binder\DecisionDagBuilder_CheckOrReachability.cs (69)
64
BoundPattern
pattern,
338
BoundPattern
pattern,
349
var
normalizedPattern = PatternNormalizer.Rewrite(pattern, rootIdentifier.Type);
363
var
normalizedNegatedPattern = PatternNormalizer.Rewrite(negated, rootIdentifier.Type);
384
static void populateStateForCases(ArrayBuilder<
BoundPattern
> set, PooledHashSet<LabelSymbol> labelsToIgnore,
395
foreach (
BoundPattern
pattern in set)
413
static void analyze(
BoundPattern
pattern, ref readonly ReachabilityAnalysisContext context)
417
var currentCases = ArrayBuilder<
BoundPattern
>.GetInstance();
426
static void analyzePattern(ArrayBuilder<
BoundPattern
> currentCases,
BoundPattern
pattern, Func<
BoundPattern
,
BoundPattern
>? wrapIntoParentAndPattern, ref readonly ReachabilityAnalysisContext context)
434
static void analyzeBinary(ArrayBuilder<
BoundPattern
> currentCases, BoundBinaryPattern binaryPattern, Func<
BoundPattern
,
BoundPattern
>? wrapIntoParentAndPattern, ref readonly ReachabilityAnalysisContext context)
440
var patterns = ArrayBuilder<
BoundPattern
>.GetInstance();
448
BoundPattern
pattern = patterns[i];
450
BoundPattern
wrappedPattern = wrapIntoParentAndPattern?.Invoke(pattern) ?? pattern;
476
Func<
BoundPattern
,
BoundPattern
> newWrapIntoParentAndPattern = (
BoundPattern
newPattern) =>
481
var
result = wrapIntoParentAndPattern?.Invoke(wrappedPattern) ?? wrappedPattern;
505
static void checkReachability(ArrayBuilder<
BoundPattern
> orCases, ref readonly ReachabilityAnalysisContext context)
540
static void addPatternsFromOrTree(
BoundPattern
pattern, ArrayBuilder<
BoundPattern
> builder)
620
private Func<
BoundPattern
,
BoundPattern
>? _makeEvaluationSequenceOperand;
640
private readonly
BoundPattern
? _operand;
651
private OperandOrOperation(
BoundPattern
? operand, bool? disjunction, SyntaxNode? operationSyntax)
663
public static OperandOrOperation CreateOperand(
BoundPattern
operand)
668
public bool IsOperand([NotNullWhen(true)] out
BoundPattern
? operand)
707
internal static
BoundPattern
Rewrite(
BoundPattern
pattern, TypeSymbol inputType)
719
private
BoundPattern
GetResult(TypeSymbol inputType)
723
var stack = ArrayBuilder<
BoundPattern
>.GetInstance();
732
var
right = stack.Pop();
733
var
left = stack.Pop();
737
else if (operandOrOperation.IsOperand(out
BoundPattern
? operand))
762
var
result = stack.Single();
767
static TypeSymbol narrowedTypeForBinary(
BoundPattern
resultLeft,
BoundPattern
resultRight, bool resultDisjunction)
888
private void TryPushOperand(
BoundPattern
pattern)
919
public
BoundPattern
NegateIfNeeded(
BoundPattern
node)
970
private static
BoundPattern
WithInputTypeCheckIfNeeded(
BoundPattern
pattern, TypeSymbol inputType)
1027
BoundPattern
typePattern = new BoundTypePattern(pattern.Syntax,
1079
BoundPattern
initialCheck;
1112
_makeEvaluationSequenceOperand = (
BoundPattern
newPattern) =>
1119
BoundPattern
newRecursive = new BoundRecursivePattern(
1147
_makeEvaluationSequenceOperand = (
BoundPattern
newPattern) =>
1154
BoundPattern
newRecursive = new BoundRecursivePattern(
1187
private void VisitPatternAndCombine(SyntaxNode syntax,
BoundPattern
pattern, int startOfLeft)
1235
_makeEvaluationSequenceOperand = (
BoundPattern
newPattern) =>
1242
BoundPattern
newITuple = new BoundITuplePattern(newPattern.Syntax, ituplePattern.GetLengthMethod,
1286
ImmutableArray<
BoundPattern
> equivalentDefaultPatterns = listPattern.Subpatterns.SelectAsArray(makeEquivalentDefaultPattern);
1298
Func<
BoundPattern
,
BoundPattern
> makeListPattern = (
BoundPattern
newPattern) =>
1303
ImmutableArray<
BoundPattern
> newSubpatterns = equivalentDefaultPatterns.SetItem(i, newPattern);
1305
BoundPattern
newList = new BoundListPattern(
1319
Func<
BoundPattern
,
BoundPattern
>? makeListPatternWithSlice = null;
1322
makeListPatternWithSlice = (
BoundPattern
newPattern) =>
1331
BoundPattern
newSlice = new BoundSlicePattern(newPattern.Syntax, newPattern, slice.IndexerAccess,
1334
ImmutableArray<
BoundPattern
> newSubpatterns = equivalentDefaultPatterns.SetItem(i, newSlice);
1336
BoundPattern
newList = new BoundListPattern(
1381
static
BoundPattern
makeEquivalentDefaultPattern(
BoundPattern
pattern)
Binder\DecisionDagBuilder_ListPatterns.cs (2)
50
foreach (
BoundPattern
subpattern in subpatterns)
57
if (slice.Pattern is
BoundPattern
slicePattern)
Binder\SwitchBinder_Patterns.cs (3)
250
BoundPattern
pattern = sectionBinder.BindConstantPatternWithFallbackToTypePattern(
282
BoundPattern
pattern = sectionBinder.BindPattern(
296
void reportIfConstantNamedUnderscore(
BoundPattern
pattern, ExpressionSyntax expression)
Binder\SwitchExpressionArmBinder.cs (1)
42
BoundPattern
pattern = armBinder.BindPattern(node.Pattern, switchGoverningType, permitDesignations: true, hasErrors, diagnostics);
BoundTree\BoundIsPatternExpression.cs (1)
16
bool negated = this.Pattern.IsNegated(out
var
innerPattern);
BoundTree\BoundListPattern.cs (1)
13
internal BoundListPattern WithSubpatterns(ImmutableArray<
BoundPattern
> subpatterns)
BoundTree\BoundPattern.cs (1)
14
internal bool IsNegated(out
BoundPattern
innerPattern)
BoundTree\BoundPositionalSubpattern.cs (1)
9
internal BoundPositionalSubpattern WithPattern(
BoundPattern
pattern)
BoundTree\BoundPropertySubpattern.cs (1)
9
internal BoundPropertySubpattern WithPattern(
BoundPattern
pattern)
BoundTree\BoundSlicePattern.cs (1)
11
internal BoundSlicePattern WithPattern(
BoundPattern
? pattern)
BoundTree\BoundTreeRewriter.cs (6)
218
if (node is BoundExpression or
BoundPattern
)
342
BoundPattern
child = node.Left;
367
var
left = (
BoundPattern
?)this.Visit(child);
373
var
right = (
BoundPattern
?)this.Visit(binary.Right);
BoundTree\BoundTreeVisitors.cs (1)
202
Debug.Assert(node is BoundExpression or
BoundPattern
);
BoundTree\BoundTreeWalker.cs (4)
73
if (node is BoundExpression or
BoundPattern
)
88
Debug.Assert(node is BoundExpression or
BoundPattern
);
152
var rightOperands = ArrayBuilder<
BoundPattern
>.GetInstance();
157
BoundPattern
? current = binary.Left;
BoundTree\NullabilityRewriter.cs (4)
152
var
leftChild = (
BoundPattern
)Visit(stack.Peek().Left);
161
var
right = (
BoundPattern
)Visit(currentBinary.Right);
Compilation\CSharpSemanticModel.cs (3)
2021
BoundPattern
pattern = lowestBoundNode as
BoundPattern
?? highestBoundNode as
BoundPattern
?? (highestBoundNode is BoundSubpattern sp ? sp.Pattern : null);
Compilation\MemberSemanticModel.NodeMapBuilder.cs (2)
225
var stack = ArrayBuilder<
BoundPattern
>.GetInstance();
228
BoundPattern
currentPattern = binaryPattern.Left;
FlowAnalysis\AbstractFlowPass.cs (5)
363
if (node is BoundExpression or
BoundPattern
)
930
bool negated = node.Pattern.IsNegated(out
var
pattern);
979
static bool patternMatchesNull(
BoundPattern
pattern)
1029
static bool? isBoolTest(
BoundPattern
pattern)
1102
public virtual void VisitPattern(
BoundPattern
pattern)
FlowAnalysis\DefiniteAssignment.cs (3)
1943
public override void VisitPattern(
BoundPattern
pattern)
1953
void assignPatternVariablesAndMarkReadFields(
BoundPattern
pattern, bool definitely = true)
2028
foreach (
BoundPattern
p in pat.Subpatterns)
FlowAnalysis\NullableWalker.cs (1)
3707
Debug.Assert(node is BoundExpression or
BoundPattern
);
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
98
if (node is BoundExpression or
BoundPattern
)
FlowAnalysis\NullableWalker_Patterns.cs (2)
26
BoundPattern
pattern)
155
BoundPattern
pattern)
FlowAnalysis\VariablesDeclaredWalker.cs (3)
50
public override void VisitPattern(
BoundPattern
pattern)
69
private void NoteDeclaredPatternVariables(
BoundPattern
pattern)
94
foreach (
var
elementPattern in listPattern.Subpatterns)
Generated\BoundNodes.xml.Generated.cs (60)
4909
public BoundSwitchExpressionArm(SyntaxNode syntax, ImmutableArray<LocalSymbol> locals,
BoundPattern
pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label, bool hasErrors = false)
4926
public
BoundPattern
Pattern { get; }
4934
public BoundSwitchExpressionArm Update(ImmutableArray<LocalSymbol> locals,
BoundPattern
pattern, BoundExpression? whenClause, BoundExpression value, LabelSymbol label)
5696
public BoundSwitchLabel(SyntaxNode syntax, LabelSymbol label,
BoundPattern
pattern, BoundExpression? whenClause, bool hasErrors = false)
5709
public
BoundPattern
Pattern { get; }
5715
public BoundSwitchLabel Update(LabelSymbol label,
BoundPattern
pattern, BoundExpression? whenClause)
7957
public BoundIsPatternExpression(SyntaxNode syntax, BoundExpression expression,
BoundPattern
pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type, bool hasErrors = false)
7976
public
BoundPattern
Pattern { get; }
7985
public BoundIsPatternExpression Update(BoundExpression expression,
BoundPattern
pattern, bool isNegated, BoundDecisionDag reachabilityDecisionDag, LabelSymbol whenTrueLabel, LabelSymbol whenFalseLabel, TypeSymbol? type)
8198
public 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)
8218
public ImmutableArray<
BoundPattern
> Subpatterns { get; }
8228
public BoundListPattern Update(ImmutableArray<
BoundPattern
> subpatterns, bool hasSlice, BoundExpression? lengthAccess, BoundExpression? indexerAccess, BoundListPatternReceiverPlaceholder? receiverPlaceholder, BoundListPatternIndexPlaceholder? argumentPlaceholder, Symbol? variable, BoundExpression? variableAccess, TypeSymbol inputType, TypeSymbol narrowedType)
8242
public BoundSlicePattern(SyntaxNode syntax,
BoundPattern
? pattern, BoundExpression? indexerAccess, BoundSlicePatternReceiverPlaceholder? receiverPlaceholder, BoundSlicePatternRangePlaceholder? argumentPlaceholder, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8259
public
BoundPattern
? Pattern { get; }
8267
public BoundSlicePattern Update(
BoundPattern
? pattern, BoundExpression? indexerAccess, BoundSlicePatternReceiverPlaceholder? receiverPlaceholder, BoundSlicePatternRangePlaceholder? argumentPlaceholder, TypeSymbol inputType, TypeSymbol narrowedType)
8321
protected BoundSubpattern(BoundKind kind, SyntaxNode syntax,
BoundPattern
pattern, bool hasErrors = false)
8330
public
BoundPattern
Pattern { get; }
8335
public BoundPositionalSubpattern(SyntaxNode syntax, Symbol? symbol,
BoundPattern
pattern, bool hasErrors = false)
8349
public BoundPositionalSubpattern Update(Symbol? symbol,
BoundPattern
pattern)
8363
public BoundPropertySubpattern(SyntaxNode syntax, BoundPropertySubpatternMember? member, bool isLengthOrCount,
BoundPattern
pattern, bool hasErrors = false)
8379
public BoundPropertySubpattern Update(BoundPropertySubpatternMember? member, bool isLengthOrCount,
BoundPattern
pattern)
8461
public BoundBinaryPattern(SyntaxNode syntax, bool disjunction,
BoundPattern
left,
BoundPattern
right, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8480
public
BoundPattern
Left { get; }
8481
public
BoundPattern
Right { get; }
8486
public BoundBinaryPattern Update(bool disjunction,
BoundPattern
left,
BoundPattern
right, TypeSymbol inputType, TypeSymbol narrowedType)
8500
public BoundNegatedPattern(SyntaxNode syntax,
BoundPattern
negated, TypeSymbol inputType, TypeSymbol narrowedType, bool hasErrors = false)
8515
public
BoundPattern
Negated { get; }
8520
public BoundNegatedPattern Update(
BoundPattern
negated, TypeSymbol inputType, TypeSymbol narrowedType)
11659
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
11811
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
12232
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
12274
ImmutableArray<
BoundPattern
> subpatterns = this.VisitList(node.Subpatterns);
12286
BoundPattern
? pattern = (
BoundPattern
?)this.Visit(node.Pattern);
12306
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
12312
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
12331
BoundPattern
left = (
BoundPattern
)this.Visit(node.Left);
12332
BoundPattern
right = (
BoundPattern
)this.Visit(node.Right);
12339
BoundPattern
negated = (
BoundPattern
)this.Visit(node.Negated);
13810
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
14876
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
14935
ImmutableArray<
BoundPattern
> subpatterns = this.VisitList(node.Subpatterns);
14948
BoundPattern
? pattern = (
BoundPattern
?)this.Visit(node.Pattern);
14968
BoundPattern
pattern = (
BoundPattern
)this.Visit(node.Pattern);
14991
BoundPattern
negated = (
BoundPattern
)this.Visit(node.Negated);