1 instantiation of SubpatternSyntax
Microsoft.CodeAnalysis.CSharp (1)
Syntax.xml.Internal.Generated.cs (1)
8848internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.SubpatternSyntax(this, parent, position);
111 references to SubpatternSyntax
Microsoft.CodeAnalysis.CSharp (33)
Binder\Binder_Patterns.cs (4)
1065var subPattern = node.Subpatterns[i]; 1116foreach (var subpatternSyntax in node.Subpatterns) 1171var subpatternSyntax = node.Subpatterns[i]; 1467foreach (SubpatternSyntax p in node.Subpatterns)
Syntax.xml.Main.Generated.cs (10)
301public virtual TResult? VisitSubpattern(SubpatternSyntax node) => this.DefaultVisit(node); 1045public virtual void VisitSubpattern(SubpatternSyntax node) => this.DefaultVisit(node); 1788public override SyntaxNode? VisitSubpattern(SubpatternSyntax node) 3752public static PositionalPatternClauseSyntax PositionalPatternClause(SyntaxToken openParenToken, SeparatedSyntaxList<SubpatternSyntax> subpatterns, SyntaxToken closeParenToken) 3760public static PositionalPatternClauseSyntax PositionalPatternClause(SeparatedSyntaxList<SubpatternSyntax> subpatterns = default) 3764public static PropertyPatternClauseSyntax PropertyPatternClause(SyntaxToken openBraceToken, SeparatedSyntaxList<SubpatternSyntax> subpatterns, SyntaxToken closeBraceToken) 3772public static PropertyPatternClauseSyntax PropertyPatternClause(SeparatedSyntaxList<SubpatternSyntax> subpatterns = default) 3776public static SubpatternSyntax Subpattern(BaseExpressionColonSyntax? expressionColon, PatternSyntax pattern) 3779return (SubpatternSyntax)Syntax.InternalSyntax.SyntaxFactory.Subpattern(expressionColon == null ? null : (Syntax.InternalSyntax.BaseExpressionColonSyntax)expressionColon.Green, (Syntax.InternalSyntax.PatternSyntax)pattern.Green).CreateRed(); 3783public static SubpatternSyntax Subpattern(PatternSyntax pattern)
Syntax.xml.Syntax.Generated.cs (16)
5395public RecursivePatternSyntax AddPositionalPatternClauseSubpatterns(params SubpatternSyntax[] items) 5400public RecursivePatternSyntax AddPropertyPatternClauseSubpatterns(params SubpatternSyntax[] items) 5424public SeparatedSyntaxList<SubpatternSyntax> Subpatterns 5429return red != null ? new SeparatedSyntaxList<SubpatternSyntax>(red, GetChildIndex(1)) : default; 5442public PositionalPatternClauseSyntax Update(SyntaxToken openParenToken, SeparatedSyntaxList<SubpatternSyntax> subpatterns, SyntaxToken closeParenToken) 5455public PositionalPatternClauseSyntax WithSubpatterns(SeparatedSyntaxList<SubpatternSyntax> subpatterns) => Update(this.OpenParenToken, subpatterns, this.CloseParenToken); 5458public PositionalPatternClauseSyntax AddSubpatterns(params SubpatternSyntax[] items) => WithSubpatterns(this.Subpatterns.AddRange(items)); 5478public SeparatedSyntaxList<SubpatternSyntax> Subpatterns 5483return red != null ? new SeparatedSyntaxList<SubpatternSyntax>(red, GetChildIndex(1)) : default; 5496public PropertyPatternClauseSyntax Update(SyntaxToken openBraceToken, SeparatedSyntaxList<SubpatternSyntax> subpatterns, SyntaxToken closeBraceToken) 5509public PropertyPatternClauseSyntax WithSubpatterns(SeparatedSyntaxList<SubpatternSyntax> subpatterns) => Update(this.OpenBraceToken, subpatterns, this.CloseBraceToken); 5512public PropertyPatternClauseSyntax AddSubpatterns(params SubpatternSyntax[] items) => WithSubpatterns(this.Subpatterns.AddRange(items)); 5554public SubpatternSyntax Update(BaseExpressionColonSyntax? expressionColon, PatternSyntax pattern) 5558var newNode = SyntaxFactory.Subpattern(expressionColon, pattern); 5566public SubpatternSyntax WithExpressionColon(BaseExpressionColonSyntax? expressionColon) => Update(expressionColon, this.Pattern); 5567public SubpatternSyntax WithPattern(PatternSyntax pattern) => Update(this.ExpressionColon, pattern);
Syntax\SubpatternSyntax.cs (3)
13public SubpatternSyntax WithNameColon(NameColonSyntax? nameColon) 16public SubpatternSyntax Update(NameColonSyntax? nameColon, PatternSyntax pattern) 25public static SubpatternSyntax Subpattern(NameColonSyntax? nameColon, PatternSyntax pattern)
Microsoft.CodeAnalysis.CSharp.CodeStyle (5)
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternDiagnosticAnalyzer.cs (2)
58var subpattern = (SubpatternSyntax)syntaxContext.Node;
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (2)
13SubpatternSyntax subpattern, 14[NotNullWhen(true)] out SubpatternSyntax? innerSubpattern,
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
749if (node.Parent is SubpatternSyntax)
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (15)
src\Analyzers\CSharp\CodeFixes\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternCodeFixProvider.cs (8)
44var subpatterns = diagnostics.Select(d => (SubpatternSyntax)d.AdditionalLocations[0].FindNode(cancellationToken)) 48foreach (var subpattern in subpatterns) 54var currentSubpattern = (SubpatternSyntax)current; 55var simplified = TrySimplify(currentSubpattern); 63private static SubpatternSyntax? TrySimplify(SubpatternSyntax currentSubpattern) 65if (!SimplifyPropertyPatternHelpers.IsSimplifiable(currentSubpattern, out var innerSubpattern, out var outerExpressionColon))
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (7)
176SubpatternSyntax subpattern => InferTypeInSubpattern(subpattern, node), 1465SubpatternSyntax subpattern, 1570foreach (var subPattern in positionalPart.Subpatterns) 1663SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1678SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern)
Microsoft.CodeAnalysis.CSharp.Emit3.UnitTests (11)
Semantics\PatternMatchingTests3.cs (7)
49var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 109var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 160var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 205var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 256var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 299var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 346var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray();
Semantics\PatternMatchingTests5.cs (4)
1106var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 1186var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 1237var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray(); 1289var subpatterns = tree.GetRoot().DescendantNodes().OfType<SubpatternSyntax>().ToArray();
Microsoft.CodeAnalysis.CSharp.Features (24)
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (11)
129var rightSubpattern = CreateSubpattern(rightNames, CreatePattern(rightReceiver, rightTarget, rightFlipped)); 135var leftSubpattern = CreateSubpattern(leftNames, CreatePattern(leftReceiver, leftTarget, leftFlipped)); 141var leftSubpattern = CreateSubpattern(leftNames, CreatePattern(leftReceiver, leftTarget, leftFlipped)); 142var rightSubpattern = CreateSubpattern(rightNames, CreatePattern(rightReceiver, rightTarget, rightFlipped)); 242static PatternSyntax AddSubpattern(PatternSyntax containingPattern, SubpatternSyntax subpattern) 380private static SubpatternSyntax CreateSubpattern(ImmutableArray<IdentifierNameSyntax> names, PatternSyntax pattern) 393var subpattern = Subpattern(names[0], pattern); 400private static SubpatternSyntax Subpattern(IdentifierNameSyntax name, PatternSyntax pattern) 403private static RecursivePatternSyntax RecursivePattern(params ReadOnlySpan<SubpatternSyntax> subpatterns) 406private static RecursivePatternSyntax RecursivePattern(TypeSyntax? type, SubpatternSyntax subpattern, VariableDesignationSyntax? designation) 409private static RecursivePatternSyntax RecursivePattern(SubpatternSyntax subpattern)
Completion\CompletionProviders\PropertySubPatternCompletionProvider.cs (1)
204if (memberAccess is { Parent.Parent: SubpatternSyntax { Parent: PropertyPatternClauseSyntax found } })
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternDiagnosticAnalyzer.cs (2)
58var subpattern = (SubpatternSyntax)syntaxContext.Node;
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (2)
13SubpatternSyntax subpattern, 14[NotNullWhen(true)] out SubpatternSyntax? innerSubpattern,
src\Analyzers\CSharp\CodeFixes\SimplifyPropertyPattern\CSharpSimplifyPropertyPatternCodeFixProvider.cs (8)
44var subpatterns = diagnostics.Select(d => (SubpatternSyntax)d.AdditionalLocations[0].FindNode(cancellationToken)) 48foreach (var subpattern in subpatterns) 54var currentSubpattern = (SubpatternSyntax)current; 55var simplified = TrySimplify(currentSubpattern); 63private static SubpatternSyntax? TrySimplify(SubpatternSyntax currentSubpattern) 65if (!SimplifyPropertyPatternHelpers.IsSimplifiable(currentSubpattern, out var innerSubpattern, out var outerExpressionColon))
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (7)
Generated\Syntax.Test.xml.Generated.cs (7)
10640=> SyntaxFactory.PositionalPatternClause(SyntaxFactory.Token(SyntaxKind.OpenParenToken), new SeparatedSyntaxList<SubpatternSyntax>(), SyntaxFactory.Token(SyntaxKind.CloseParenToken)); 10643=> SyntaxFactory.PropertyPatternClause(SyntaxFactory.Token(SyntaxKind.OpenBraceToken), new SeparatedSyntaxList<SubpatternSyntax>(), SyntaxFactory.Token(SyntaxKind.CloseBraceToken)); 10645private static SubpatternSyntax GenerateSubpattern() 12221var node = GenerateSubpattern(); 12225var newNode = node.WithExpressionColon(node.ExpressionColon).WithPattern(node.Pattern); 16733var oldNode = GenerateSubpattern(); 16749var oldNode = GenerateSubpattern();
Microsoft.CodeAnalysis.CSharp.Workspaces (8)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
749if (node.Parent is SubpatternSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (7)
176SubpatternSyntax subpattern => InferTypeInSubpattern(subpattern, node), 1465SubpatternSyntax subpattern, 1570foreach (var subPattern in positionalPart.Subpatterns) 1663SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1678SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern)
Roslyn.Diagnostics.CSharp.Analyzers (8)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
749if (node.Parent is SubpatternSyntax)
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (7)
176SubpatternSyntax subpattern => InferTypeInSubpattern(subpattern, node), 1465SubpatternSyntax subpattern, 1570foreach (var subPattern in positionalPart.Subpatterns) 1663SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1678SubpatternSyntax subPattern => InferTypeInSubpattern(subPattern, subPattern.Pattern), 1851if (nameColon.Parent is SubpatternSyntax subpattern) 1861if (expressionColon.Parent is SubpatternSyntax subpattern)