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