12 types derived from PatternSyntax
Microsoft.CodeAnalysis.CSharp (12)
Syntax.xml.Syntax.Generated.cs (12)
5244
public sealed partial class DiscardPatternSyntax :
PatternSyntax
5282
public sealed partial class DeclarationPatternSyntax :
PatternSyntax
5337
public sealed partial class VarPatternSyntax :
PatternSyntax
5379
public sealed partial class RecursivePatternSyntax :
PatternSyntax
5620
public sealed partial class ConstantPatternSyntax :
PatternSyntax
5660
public sealed partial class ParenthesizedPatternSyntax :
PatternSyntax
5705
public sealed partial class RelationalPatternSyntax :
PatternSyntax
5748
public sealed partial class TypePatternSyntax :
PatternSyntax
5789
public sealed partial class BinaryPatternSyntax :
PatternSyntax
5847
public sealed partial class UnaryPatternSyntax :
PatternSyntax
5889
public sealed partial class ListPatternSyntax :
PatternSyntax
5959
public sealed partial class SlicePatternSyntax :
PatternSyntax
257 references to PatternSyntax
Microsoft.CodeAnalysis.CSharp (87)
Binder\Binder_Patterns.cs (4)
176
PatternSyntax
node,
271
SeparatedSyntaxList<
PatternSyntax
> subpatterns,
281
foreach (
PatternSyntax
pattern in subpatterns)
1484
PatternSyntax
pattern = p.Pattern;
Binder\ExpressionVariableFinder.cs (2)
346
PatternSyntax
currentPattern = node;
348
var rightPatternStack = ArrayBuilder<
PatternSyntax
>.GetInstance();
BoundTree\BoundTreeVisitors.cs (3)
187
if (syntax is not (ExpressionSyntax or
PatternSyntax
))
189
syntax = syntax.DescendantNodes(n => n is not (ExpressionSyntax or
PatternSyntax
)).FirstOrDefault(n => n is ExpressionSyntax or
PatternSyntax
) ?? syntax;
Compilation\CSharpSemanticModel.cs (2)
952
public TypeInfo GetTypeInfo(
PatternSyntax
pattern, CancellationToken cancellationToken = default(CancellationToken))
5045
case
PatternSyntax
pattern:
Compilation\MemberSemanticModel.cs (1)
2297
!(node is
PatternSyntax
))
Syntax.xml.Main.Generated.cs (32)
1771
=> node.Update((ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"), VisitToken(node.IsKeyword), (
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"));
1798
=> node.Update((BaseExpressionColonSyntax?)Visit(node.ExpressionColon), (
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"));
1804
=> node.Update(VisitToken(node.OpenParenToken), (
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"), VisitToken(node.CloseParenToken));
1813
=> node.Update((
PatternSyntax
?)Visit(node.Left) ?? throw new ArgumentNullException("left"), VisitToken(node.OperatorToken), (
PatternSyntax
?)Visit(node.Right) ?? throw new ArgumentNullException("right"));
1816
=> node.Update(VisitToken(node.OperatorToken), (
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"));
1822
=> node.Update(VisitToken(node.DotDotToken), (
PatternSyntax
?)Visit(node.Pattern));
1936
=> node.Update(VisitToken(node.Keyword), (
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"), (WhenClauseSyntax?)Visit(node.WhenClause), VisitToken(node.ColonToken));
1948
=> node.Update((
PatternSyntax
?)Visit(node.Pattern) ?? throw new ArgumentNullException("pattern"), (WhenClauseSyntax?)Visit(node.WhenClause), VisitToken(node.EqualsGreaterThanToken), (ExpressionSyntax?)Visit(node.Expression) ?? throw new ArgumentNullException("expression"));
3695
public static IsPatternExpressionSyntax IsPatternExpression(ExpressionSyntax expression, SyntaxToken isKeyword,
PatternSyntax
pattern)
3704
public static IsPatternExpressionSyntax IsPatternExpression(ExpressionSyntax expression,
PatternSyntax
pattern)
3797
public static SubpatternSyntax Subpattern(BaseExpressionColonSyntax? expressionColon,
PatternSyntax
pattern)
3804
public static SubpatternSyntax Subpattern(
PatternSyntax
pattern)
3815
public static ParenthesizedPatternSyntax ParenthesizedPattern(SyntaxToken openParenToken,
PatternSyntax
pattern, SyntaxToken closeParenToken)
3824
public static ParenthesizedPatternSyntax ParenthesizedPattern(
PatternSyntax
pattern)
3852
public static BinaryPatternSyntax BinaryPattern(SyntaxKind kind,
PatternSyntax
left, SyntaxToken operatorToken,
PatternSyntax
right)
3872
public static BinaryPatternSyntax BinaryPattern(SyntaxKind kind,
PatternSyntax
left,
PatternSyntax
right)
3884
public static UnaryPatternSyntax UnaryPattern(SyntaxToken operatorToken,
PatternSyntax
pattern)
3892
public static UnaryPatternSyntax UnaryPattern(
PatternSyntax
pattern)
3896
public static ListPatternSyntax ListPattern(SyntaxToken openBracketToken, SeparatedSyntaxList<
PatternSyntax
> patterns, SyntaxToken closeBracketToken, VariableDesignationSyntax? designation)
3904
public static ListPatternSyntax ListPattern(SeparatedSyntaxList<
PatternSyntax
> patterns, VariableDesignationSyntax? designation)
3908
public static ListPatternSyntax ListPattern(SeparatedSyntaxList<
PatternSyntax
> patterns = default)
3912
public static SlicePatternSyntax SlicePattern(SyntaxToken dotDotToken,
PatternSyntax
? pattern)
3919
public static SlicePatternSyntax SlicePattern(
PatternSyntax
? pattern = default)
4610
public static CasePatternSwitchLabelSyntax CasePatternSwitchLabel(SyntaxToken keyword,
PatternSyntax
pattern, WhenClauseSyntax? whenClause, SyntaxToken colonToken)
4619
public static CasePatternSwitchLabelSyntax CasePatternSwitchLabel(
PatternSyntax
pattern, WhenClauseSyntax? whenClause, SyntaxToken colonToken)
4623
public static CasePatternSwitchLabelSyntax CasePatternSwitchLabel(
PatternSyntax
pattern, SyntaxToken colonToken)
4670
public static SwitchExpressionArmSyntax SwitchExpressionArm(
PatternSyntax
pattern, WhenClauseSyntax? whenClause, SyntaxToken equalsGreaterThanToken, ExpressionSyntax expression)
4679
public static SwitchExpressionArmSyntax SwitchExpressionArm(
PatternSyntax
pattern, WhenClauseSyntax? whenClause, ExpressionSyntax expression)
4683
public static SwitchExpressionArmSyntax SwitchExpressionArm(
PatternSyntax
pattern, ExpressionSyntax expression)
Syntax.xml.Syntax.Generated.cs (41)
5095
private
PatternSyntax
? pattern;
5108
public
PatternSyntax
Pattern => GetRed(ref this.pattern, 2)!;
5129
public IsPatternExpressionSyntax Update(ExpressionSyntax expression, SyntaxToken isKeyword,
PatternSyntax
pattern)
5143
public IsPatternExpressionSyntax WithPattern(
PatternSyntax
pattern) => Update(this.Expression, this.IsKeyword, pattern);
5568
private
PatternSyntax
? pattern;
5577
public
PatternSyntax
Pattern => GetRed(ref this.pattern, 1)!;
5598
public SubpatternSyntax Update(BaseExpressionColonSyntax? expressionColon,
PatternSyntax
pattern)
5611
public SubpatternSyntax WithPattern(
PatternSyntax
pattern) => Update(this.ExpressionColon, pattern);
5662
private
PatternSyntax
? pattern;
5671
public
PatternSyntax
Pattern => GetRed(ref this.pattern, 1)!;
5682
public ParenthesizedPatternSyntax Update(SyntaxToken openParenToken,
PatternSyntax
pattern, SyntaxToken closeParenToken)
5695
public ParenthesizedPatternSyntax WithPattern(
PatternSyntax
pattern) => Update(this.OpenParenToken, pattern, this.CloseParenToken);
5791
private
PatternSyntax
? left;
5792
private
PatternSyntax
? right;
5799
public
PatternSyntax
Left => GetRedAtZero(ref this.left)!;
5803
public
PatternSyntax
Right => GetRed(ref this.right, 2)!;
5824
public BinaryPatternSyntax Update(
PatternSyntax
left, SyntaxToken operatorToken,
PatternSyntax
right)
5836
public BinaryPatternSyntax WithLeft(
PatternSyntax
left) => Update(left, this.OperatorToken, this.Right);
5838
public BinaryPatternSyntax WithRight(
PatternSyntax
right) => Update(this.Left, this.OperatorToken, right);
5849
private
PatternSyntax
? pattern;
5858
public
PatternSyntax
Pattern => GetRed(ref this.pattern, 1)!;
5867
public UnaryPatternSyntax Update(SyntaxToken operatorToken,
PatternSyntax
pattern)
5880
public UnaryPatternSyntax WithPattern(
PatternSyntax
pattern) => Update(this.OperatorToken, pattern);
5901
public SeparatedSyntaxList<
PatternSyntax
> Patterns
5906
return red != null ? new SeparatedSyntaxList<
PatternSyntax
>(red, GetChildIndex(1)) : default;
5933
public ListPatternSyntax Update(SyntaxToken openBracketToken, SeparatedSyntaxList<
PatternSyntax
> patterns, SyntaxToken closeBracketToken, VariableDesignationSyntax? designation)
5946
public ListPatternSyntax WithPatterns(SeparatedSyntaxList<
PatternSyntax
> patterns) => Update(this.OpenBracketToken, patterns, this.CloseBracketToken, this.Designation);
5950
public ListPatternSyntax AddPatterns(params
PatternSyntax
[] items) => WithPatterns(this.Patterns.AddRange(items));
5961
private
PatternSyntax
? pattern;
5970
public
PatternSyntax
? Pattern => GetRed(ref this.pattern, 1);
5979
public SlicePatternSyntax Update(SyntaxToken dotDotToken,
PatternSyntax
? pattern)
5992
public SlicePatternSyntax WithPattern(
PatternSyntax
? pattern) => Update(this.DotDotToken, pattern);
8700
private
PatternSyntax
? pattern;
8714
public
PatternSyntax
Pattern => GetRed(ref this.pattern, 1)!;
8739
public CasePatternSwitchLabelSyntax Update(SyntaxToken keyword,
PatternSyntax
pattern, WhenClauseSyntax? whenClause, SyntaxToken colonToken)
8753
public CasePatternSwitchLabelSyntax WithPattern(
PatternSyntax
pattern) => Update(this.Keyword, pattern, this.WhenClause, this.ColonToken);
8937
private
PatternSyntax
? pattern;
8946
public
PatternSyntax
Pattern => GetRedAtZero(ref this.pattern)!;
8975
public SwitchExpressionArmSyntax Update(
PatternSyntax
pattern, WhenClauseSyntax? whenClause, SyntaxToken equalsGreaterThanToken, ExpressionSyntax expression)
8987
public SwitchExpressionArmSyntax WithPattern(
PatternSyntax
pattern) => Update(pattern, this.WhenClause, this.EqualsGreaterThanToken, this.Expression);
Syntax\SubpatternSyntax.cs (2)
16
public SubpatternSyntax Update(NameColonSyntax? nameColon,
PatternSyntax
pattern)
25
public static SubpatternSyntax Subpattern(NameColonSyntax? nameColon,
PatternSyntax
pattern)
Microsoft.CodeAnalysis.CSharp.CodeStyle (22)
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (6)
18
PatternSyntax
, BinaryPatternSyntax, SyntaxKind>(CSharpPatternPrecedenceService.Instance)
28
protected override bool IsBinaryLike(
PatternSyntax
node)
31
protected override (
PatternSyntax
, SyntaxToken,
PatternSyntax
) GetPartsOfBinaryLike(BinaryPatternSyntax binaryPattern)
37
protected override
PatternSyntax
? TryGetAppropriateParent(BinaryPatternSyntax binaryLike)
38
=> binaryLike.Parent as
PatternSyntax
;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
47
var
inner = parenthesizedPattern.Pattern;
53
if (parenthesizedPattern.Parent is not
PatternSyntax
)
src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
52
var
pattern = patternExpression.Pattern;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (2)
84
internal sealed class Source(
PatternSyntax
patternSyntax, IOperation target) : AnalyzedPattern(target)
86
public readonly
PatternSyntax
PatternSyntax = patternSyntax;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (1)
64
case IIsPatternOperation { Pattern.Syntax:
PatternSyntax
pattern } op:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (5)
736
var
pattern = node.Pattern;
781
return node.Parent is
PatternSyntax
patternParent &&
786
ParenthesizedPatternSyntax node,
PatternSyntax
parentPattern)
788
var
pattern = node.Pattern;
801
public static OperatorPrecedence GetOperatorPrecedence(this
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpPatternPrecedenceService.cs (2)
12
internal sealed class CSharpPatternPrecedenceService : AbstractCSharpPrecedenceService<
PatternSyntax
>
20
public override OperatorPrecedence GetOperatorPrecedence(
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1010
return node is
PatternSyntax
? null : node;
1372
=> node is
PatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
193
if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is
PatternSyntax
or CaseSwitchLabelSyntax)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (25)
src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.Rewriter.cs (4)
130
private static
PatternSyntax
GetPattern(SyntaxList<SwitchLabelSyntax> switchLabels, out WhenClauseSyntax? whenClause)
143
var
totalPattern = GetPattern(switchLabels[0], out var whenClauseUnused);
148
var
nextPatternPart = GetPattern(switchLabels[i], out whenClauseUnused);
158
private static
PatternSyntax
GetPattern(SwitchLabelSyntax switchLabel, out WhenClauseSyntax? whenClause)
src\Analyzers\CSharp\CodeFixes\UsePatternCombinators\CSharpUsePatternCombinatorsCodeFixProvider.cs (5)
83
var
patternSyntax = AsPatternSyntax(pattern).WithAdditionalAnnotations(Formatter.Annotation);
88
private static
PatternSyntax
AsPatternSyntax(AnalyzedPattern pattern)
107
private static
PatternSyntax
ProcessNotPattern(Not notPattern)
110
var
underlyingPattern = AsPatternSyntax(notPattern.Pattern);
111
var
unwrapped = underlyingPattern;
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (2)
114
static (SyntaxToken notKeyword,
PatternSyntax
pattern) CreatePattern(
134
PatternSyntax
pattern = binaryExpression.Kind() switch
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (2)
1471
var
patternSyntax = leftToken.GetAncestor<
PatternSyntax
>();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
65
public static
PatternSyntax
Parenthesize(
66
this
PatternSyntax
pattern, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true)
68
var
withoutTrivia = pattern.WithoutTrivia();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (8)
104
PatternSyntax
pattern => pattern.Parenthesize(includeElasticTrivia, addSimplifierAnnotation),
213
(
PatternSyntax
)pattern);
216
=> SyntaxFactory.BinaryPattern(SyntaxKind.AndPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
239
=> SyntaxFactory.UnaryPattern(NotKeyword, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
242
=> SyntaxFactory.BinaryPattern(SyntaxKind.OrPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
251
=> SyntaxFactory.UnaryPattern(operatorToken, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1608
private IEnumerable<TypeInferenceInfo> GetPatternTypes(
PatternSyntax
pattern)
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (9)
Semantics\PatternMatchingTests2.cs (5)
2177
foreach (
var
pat in tree.GetRoot().DescendantNodesAndSelf().OfType<
PatternSyntax
>())
2268
var patterns = tree.GetRoot().DescendantNodesAndSelf().OfType<
PatternSyntax
>().ToArray();
2312
var patterns = tree.GetRoot().DescendantNodesAndSelf().OfType<
PatternSyntax
>().ToArray();
2358
var patterns = tree.GetRoot().DescendantNodesAndSelf().OfType<
PatternSyntax
>().ToArray();
Semantics\PatternMatchingTests3.cs (4)
4103
var patterns = tree.GetRoot().DescendantNodes().OfType<
PatternSyntax
>().ToArray();
4107
var
pattern = patterns[i];
4330
var patterns = tree.GetRoot().DescendantNodes().OfType<
PatternSyntax
>().ToArray();
4334
var
pattern = patterns[i];
Microsoft.CodeAnalysis.CSharp.Features (58)
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (23)
35
private static readonly
PatternSyntax
s_trueConstantPattern = ConstantPattern(LiteralExpression(TrueLiteralExpression));
36
private static readonly
PatternSyntax
s_falseConstantPattern = ConstantPattern(LiteralExpression(FalseLiteralExpression));
112
var
rightPattern = CreatePattern(rightReceiver, rightTarget, rightFlipped);
113
var
rewrittenPattern = RewriteContainingPattern(containingPattern, rightPattern, rightNamesOpt);
162
private static Func<SyntaxNode, SyntaxNode>? CombineWhenClauseCondition(
PatternSyntax
switchPattern, ExpressionSyntax condition, SemanticModel model)
189
var
generatedPattern = CreatePattern(receiver, target, flipped);
190
var
rewrittenPattern = RewriteContainingPattern(containingPattern, generatedPattern, namesOpt);
196
private static
PatternSyntax
RewriteContainingPattern(
197
PatternSyntax
containingPattern,
198
PatternSyntax
generatedPattern,
203
var
rewrittenPattern = namesOpt.IsDefault
211
static
PatternSyntax
Combine(
PatternSyntax
containingPattern,
PatternSyntax
generatedPattern)
242
static
PatternSyntax
AddSubpattern(
PatternSyntax
containingPattern, SubpatternSyntax subpattern)
268
private static
PatternSyntax
CreatePattern(ExpressionSyntax originalReceiver, ExpressionOrPatternSyntax target, bool flipped)
273
PatternSyntax
pattern => pattern,
303
private static (
PatternSyntax
ContainingPattern, ImmutableArray<IdentifierNameSyntax> NamesOpt)? TryFindVariableDesignation(
304
PatternSyntax
leftPattern,
318
if (designation is not { Parent:
PatternSyntax
(not SyntaxKind.ListPattern) containingPattern })
380
private static SubpatternSyntax CreateSubpattern(ImmutableArray<IdentifierNameSyntax> names,
PatternSyntax
pattern)
400
private static SubpatternSyntax Subpattern(IdentifierNameSyntax name,
PatternSyntax
pattern)
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (4)
210
var
patternSyntax = token.GetAncestor<
PatternSyntax
>();
216
for (
var
current = patternSyntax; current != null; current = current.Parent as
PatternSyntax
)
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (2)
58
var propertyPatternType = semanticModel.GetTypeInfo((
PatternSyntax
)propertyPatternClause.Parent!, cancellationToken).ConvertedType;
177
return token.Parent is PropertyPatternClauseSyntax { Parent:
PatternSyntax
} propertyPatternClause
Completion\KeywordRecommenders\WhenKeywordRecommender.cs (2)
28
var
pattern = context.TargetToken.GetAncestors<
PatternSyntax
>().LastOrDefault();
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.cs (1)
20
: AbstractConvertIfToSwitchCodeRefactoringProvider<IfStatementSyntax, ExpressionSyntax, BinaryExpressionSyntax,
PatternSyntax
>
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (3)
42
var
pattern = AsPatternSyntax(section.Labels[0].Pattern, feature);
51
var
nextPattern = AsPatternSyntax(label.Pattern, feature);
110
private static
PatternSyntax
AsPatternSyntax(AnalyzedPattern pattern, Feature feature)
src\Analyzers\CSharp\Analyzers\AddRequiredParentheses\CSharpAddRequiredPatternParenthesesDiagnosticAnalyzer.cs (6)
18
PatternSyntax
, BinaryPatternSyntax, SyntaxKind>(CSharpPatternPrecedenceService.Instance)
28
protected override bool IsBinaryLike(
PatternSyntax
node)
31
protected override (
PatternSyntax
, SyntaxToken,
PatternSyntax
) GetPartsOfBinaryLike(BinaryPatternSyntax binaryPattern)
37
protected override
PatternSyntax
? TryGetAppropriateParent(BinaryPatternSyntax binaryLike)
38
=> binaryLike.Parent as
PatternSyntax
;
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryParentheses\CSharpRemoveUnnecessaryPatternParenthesesDiagnosticAnalyzer.cs (2)
47
var
inner = parenthesizedPattern.Pattern;
53
if (parenthesizedPattern.Parent is not
PatternSyntax
)
src\Analyzers\CSharp\Analyzers\UseNullPropagation\CSharpUseNullPropagationDiagnosticAnalyzer.cs (1)
52
var
pattern = patternExpression.Pattern;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\AnalyzedPattern.cs (2)
84
internal sealed class Source(
PatternSyntax
patternSyntax, IOperation target) : AnalyzedPattern(target)
86
public readonly
PatternSyntax
PatternSyntax = patternSyntax;
src\Analyzers\CSharp\Analyzers\UsePatternCombinators\CSharpUsePatternCombinatorsAnalyzer.cs (1)
64
case IIsPatternOperation { Pattern.Syntax:
PatternSyntax
pattern } op:
src\Analyzers\CSharp\CodeFixes\ConvertSwitchStatementToExpression\ConvertSwitchStatementToExpressionCodeFixProvider.Rewriter.cs (4)
130
private static
PatternSyntax
GetPattern(SyntaxList<SwitchLabelSyntax> switchLabels, out WhenClauseSyntax? whenClause)
143
var
totalPattern = GetPattern(switchLabels[0], out var whenClauseUnused);
148
var
nextPatternPart = GetPattern(switchLabels[i], out whenClauseUnused);
158
private static
PatternSyntax
GetPattern(SwitchLabelSyntax switchLabel, out WhenClauseSyntax? whenClause)
src\Analyzers\CSharp\CodeFixes\UsePatternCombinators\CSharpUsePatternCombinatorsCodeFixProvider.cs (5)
83
var
patternSyntax = AsPatternSyntax(pattern).WithAdditionalAnnotations(Formatter.Annotation);
88
private static
PatternSyntax
AsPatternSyntax(AnalyzedPattern pattern)
107
private static
PatternSyntax
ProcessNotPattern(Not notPattern)
110
var
underlyingPattern = AsPatternSyntax(notPattern.Pattern);
111
var
unwrapped = underlyingPattern;
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (2)
114
static (SyntaxToken notKeyword,
PatternSyntax
pattern) CreatePattern(
134
PatternSyntax
pattern = binaryExpression.Kind() switch
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (2)
Generated\Syntax.Test.xml.Generated.cs (2)
10710
=> SyntaxFactory.ListPattern(SyntaxFactory.Token(SyntaxKind.OpenBracketToken), new SeparatedSyntaxList<
PatternSyntax
>(), SyntaxFactory.Token(SyntaxKind.CloseBracketToken), default(VariableDesignationSyntax));
10713
=> SyntaxFactory.SlicePattern(SyntaxFactory.Token(SyntaxKind.DotDotToken), default(
PatternSyntax
));
Microsoft.CodeAnalysis.CSharp.Test.Utilities (1)
CompilationTestUtils.cs (1)
271
else if (node is
PatternSyntax
pattern)
Microsoft.CodeAnalysis.CSharp.Workspaces (29)
ReassignedVariable\CSharpReassignedVariableService.cs (1)
56
if (current is
PatternSyntax
)
Simplification\Reducers\AbstractCSharpReducer.AbstractReductionRewriter.cs (4)
73
PatternSyntax
pattern => GetParentNode(pattern),
96
private static SyntaxNode GetParentNode(
PatternSyntax
pattern)
98
var
lastPattern = pattern;
101
if (current is
PatternSyntax
currentPattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (5)
736
var
pattern = node.Pattern;
781
return node.Parent is
PatternSyntax
patternParent &&
786
ParenthesizedPatternSyntax node,
PatternSyntax
parentPattern)
788
var
pattern = node.Pattern;
801
public static OperatorPrecedence GetOperatorPrecedence(this
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpPatternPrecedenceService.cs (2)
12
internal sealed class CSharpPatternPrecedenceService : AbstractCSharpPrecedenceService<
PatternSyntax
>
20
public override OperatorPrecedence GetOperatorPrecedence(
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1010
return node is
PatternSyntax
? null : node;
1372
=> node is
PatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
193
if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is
PatternSyntax
or CaseSwitchLabelSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (2)
1471
var
patternSyntax = leftToken.GetAncestor<
PatternSyntax
>();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
65
public static
PatternSyntax
Parenthesize(
66
this
PatternSyntax
pattern, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true)
68
var
withoutTrivia = pattern.WithoutTrivia();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (8)
104
PatternSyntax
pattern => pattern.Parenthesize(includeElasticTrivia, addSimplifierAnnotation),
213
(
PatternSyntax
)pattern);
216
=> SyntaxFactory.BinaryPattern(SyntaxKind.AndPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
239
=> SyntaxFactory.UnaryPattern(NotKeyword, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
242
=> SyntaxFactory.BinaryPattern(SyntaxKind.OrPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
251
=> SyntaxFactory.UnaryPattern(operatorToken, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1608
private IEnumerable<TypeInferenceInfo> GetPatternTypes(
PatternSyntax
pattern)
Roslyn.Diagnostics.CSharp.Analyzers (24)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (5)
736
var
pattern = node.Pattern;
781
return node.Parent is
PatternSyntax
patternParent &&
786
ParenthesizedPatternSyntax node,
PatternSyntax
parentPattern)
788
var
pattern = node.Pattern;
801
public static OperatorPrecedence GetOperatorPrecedence(this
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\Precedence\CSharpPatternPrecedenceService.cs (2)
12
internal sealed class CSharpPatternPrecedenceService : AbstractCSharpPrecedenceService<
PatternSyntax
>
20
public override OperatorPrecedence GetOperatorPrecedence(
PatternSyntax
pattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1010
return node is
PatternSyntax
? null : node;
1372
=> node is
PatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Simplification\Simplifiers\CastSimplifier.cs (1)
193
if (isDefaultLiteralCast && castNode.WalkUpParentheses().Parent is
PatternSyntax
or CaseSwitchLabelSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (2)
1471
var
patternSyntax = leftToken.GetAncestor<
PatternSyntax
>();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ExpressionSyntaxExtensions.cs (3)
65
public static
PatternSyntax
Parenthesize(
66
this
PatternSyntax
pattern, bool includeElasticTrivia = true, bool addSimplifierAnnotation = true)
68
var
withoutTrivia = pattern.WithoutTrivia();
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpSyntaxGeneratorInternal.cs (8)
104
PatternSyntax
pattern => pattern.Parenthesize(includeElasticTrivia, addSimplifierAnnotation),
213
(
PatternSyntax
)pattern);
216
=> SyntaxFactory.BinaryPattern(SyntaxKind.AndPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
239
=> SyntaxFactory.UnaryPattern(NotKeyword, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
242
=> SyntaxFactory.BinaryPattern(SyntaxKind.OrPattern, (
PatternSyntax
)ParenthesizeNonSimple(left), (
PatternSyntax
)ParenthesizeNonSimple(right));
251
=> SyntaxFactory.UnaryPattern(operatorToken, (
PatternSyntax
)ParenthesizeNonSimple(pattern));
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (1)
1608
private IEnumerable<TypeInferenceInfo> GetPatternTypes(
PatternSyntax
pattern)