1 instantiation of RecursivePatternSyntax
Microsoft.CodeAnalysis.CSharp (1)
Syntax.xml.Internal.Generated.cs (1)
8575
internal override SyntaxNode CreateRed(SyntaxNode? parent, int position) => new CSharp.Syntax.
RecursivePatternSyntax
(this, parent, position);
98 references to RecursivePatternSyntax
Microsoft.CodeAnalysis.CSharp (21)
Binder\Binder_Patterns.cs (3)
177
RecursivePatternSyntax
p => BindRecursivePattern(p, inputType, permitDesignations, hasErrors, diagnostics),
958
RecursivePatternSyntax
node,
1197
RecursivePatternSyntax
node,
Binder\ExpressionVariableFinder.cs (1)
263
public override void VisitRecursivePattern(
RecursivePatternSyntax
node)
Syntax.xml.Main.Generated.cs (6)
292
public virtual TResult? VisitRecursivePattern(
RecursivePatternSyntax
node) => this.DefaultVisit(node);
1036
public virtual void VisitRecursivePattern(
RecursivePatternSyntax
node) => this.DefaultVisit(node);
1779
public override SyntaxNode? VisitRecursivePattern(
RecursivePatternSyntax
node)
3742
public static
RecursivePatternSyntax
RecursivePattern(TypeSyntax? type, PositionalPatternClauseSyntax? positionalPatternClause, PropertyPatternClauseSyntax? propertyPatternClause, VariableDesignationSyntax? designation)
3744
return (
RecursivePatternSyntax
)Syntax.InternalSyntax.SyntaxFactory.RecursivePattern(type == null ? null : (Syntax.InternalSyntax.TypeSyntax)type.Green, positionalPatternClause == null ? null : (Syntax.InternalSyntax.PositionalPatternClauseSyntax)positionalPatternClause.Green, propertyPatternClause == null ? null : (Syntax.InternalSyntax.PropertyPatternClauseSyntax)propertyPatternClause.Green, designation == null ? null : (Syntax.InternalSyntax.VariableDesignationSyntax)designation.Green).CreateRed();
3748
public static
RecursivePatternSyntax
RecursivePattern()
Syntax.xml.Syntax.Generated.cs (8)
5378
public
RecursivePatternSyntax
Update(TypeSyntax? type, PositionalPatternClauseSyntax? positionalPatternClause, PropertyPatternClauseSyntax? propertyPatternClause, VariableDesignationSyntax? designation)
5382
var
newNode = SyntaxFactory.RecursivePattern(type, positionalPatternClause, propertyPatternClause, designation);
5390
public
RecursivePatternSyntax
WithType(TypeSyntax? type) => Update(type, this.PositionalPatternClause, this.PropertyPatternClause, this.Designation);
5391
public
RecursivePatternSyntax
WithPositionalPatternClause(PositionalPatternClauseSyntax? positionalPatternClause) => Update(this.Type, positionalPatternClause, this.PropertyPatternClause, this.Designation);
5392
public
RecursivePatternSyntax
WithPropertyPatternClause(PropertyPatternClauseSyntax? propertyPatternClause) => Update(this.Type, this.PositionalPatternClause, propertyPatternClause, this.Designation);
5393
public
RecursivePatternSyntax
WithDesignation(VariableDesignationSyntax? designation) => Update(this.Type, this.PositionalPatternClause, this.PropertyPatternClause, designation);
5395
public
RecursivePatternSyntax
AddPositionalPatternClauseSubpatterns(params SubpatternSyntax[] items)
5400
public
RecursivePatternSyntax
AddPropertyPatternClauseSubpatterns(params SubpatternSyntax[] items)
Syntax\SyntaxFacts.cs (1)
216
return ((
RecursivePatternSyntax
)parent).Type == node;
Syntax\SyntaxNormalizer.cs (2)
514
if (propPattern.Parent is
RecursivePatternSyntax
rps)
574
if (posPattern.Parent is
RecursivePatternSyntax
rps)
Microsoft.CodeAnalysis.CSharp.CodeStyle (11)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
81
else if (discard.Parent is
RecursivePatternSyntax
recursivePattern)
src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
91
case
RecursivePatternSyntax
recursivePattern:
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
27
Pattern:
RecursivePatternSyntax
src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (1)
91
Pattern: DeclarationPatternSyntax or VarPatternSyntax or
RecursivePatternSyntax
{ Designation: not null }
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
786
case
RecursivePatternSyntax
:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
188
if (propertyPatternClause.Parent is
RecursivePatternSyntax
{ Parent: { } recursivePatternParent })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (1)
153
var isFirstTokenOfSwitchArm = currentToken.Parent.IsParentKind(SyntaxKind.RecursivePattern, out
RecursivePatternSyntax
? recursivePattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (2)
51
if (node is
RecursivePatternSyntax
recursivePattern)
109
if (isPattern.Pattern is
RecursivePatternSyntax
recursivePattern2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1409
var
recursivePattern = (
RecursivePatternSyntax
)node;
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (13)
src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
71
case
RecursivePatternSyntax
recursivePattern:
75
((
RecursivePatternSyntax
)current).WithDesignation(null)
src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (5)
108
if (parent is
RecursivePatternSyntax
recursivePattern)
110
var
withoutDesignation = recursivePattern.WithDesignation(null);
146
if (originalOldNode is
RecursivePatternSyntax
originalOldRecursivePattern &&
147
proposedReplacementNode is
RecursivePatternSyntax
proposedReplacementRecursivePattern &&
150
proposedReplacementNode = ((
RecursivePatternSyntax
)changedOldNode).WithDesignation(null)
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (1)
75
var
recursivePattern = RecursivePattern(
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1500
return patternSyntax is DeclarationPatternSyntax or
RecursivePatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (4)
172
RecursivePatternSyntax
propertyPattern => InferTypeInRecursivePattern(propertyPattern),
1446
private IEnumerable<TypeInferenceInfo> InferTypeInRecursivePattern(
RecursivePatternSyntax
recursivePattern)
1535
RecursivePatternSyntax
recursivePattern => GetTypesForRecursivePattern(recursivePattern),
1548
private IEnumerable<TypeInferenceInfo> GetTypesForRecursivePattern(
RecursivePatternSyntax
recursivePattern)
Microsoft.CodeAnalysis.CSharp.Features (23)
CodeRefactorings\UseRecursivePatterns\UseRecursivePatternsCodeRefactoringProvider.cs (9)
218
(VarPatternSyntax var,
RecursivePatternSyntax
{ Designation: null } recursive)
222
(DeclarationPatternSyntax decl,
RecursivePatternSyntax
{ Type: null, Designation: null } recursive)
226
(
RecursivePatternSyntax
{ Type: null } recursive, TypePatternSyntax type)
230
(
RecursivePatternSyntax
recursive,
RecursivePatternSyntax
{ Type: null, Designation: null } other)
253
RecursivePatternSyntax
p => p.AddPropertyPatternClauseSubpatterns(subpattern),
403
private static
RecursivePatternSyntax
RecursivePattern(params ReadOnlySpan<SubpatternSyntax> subpatterns)
406
private static
RecursivePatternSyntax
RecursivePattern(TypeSyntax? type, SubpatternSyntax subpattern, VariableDesignationSyntax? designation)
409
private static
RecursivePatternSyntax
RecursivePattern(SubpatternSyntax subpattern)
Completion\CompletionProviders\CSharpSuggestionModeCompletionProvider.cs (1)
237
return patternSyntax is DeclarationPatternSyntax or
RecursivePatternSyntax
;
Completion\KeywordRecommenders\WhenKeywordRecommender.cs (1)
82
if (expressionOrPattern is
RecursivePatternSyntax
)
src\Analyzers\CSharp\Analyzers\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationDiagnosticAnalyzer.cs (1)
81
else if (discard.Parent is
RecursivePatternSyntax
recursivePattern)
src\Analyzers\CSharp\Analyzers\RemoveUnusedParametersAndValues\CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (1)
91
case
RecursivePatternSyntax
recursivePattern:
src\Analyzers\CSharp\Analyzers\SimplifyPropertyPattern\SimplifyPropertyPatternHelpers.cs (1)
27
Pattern:
RecursivePatternSyntax
src\Analyzers\CSharp\Analyzers\UsePatternMatching\UsePatternMatchingHelpers.cs (1)
91
Pattern: DeclarationPatternSyntax or VarPatternSyntax or
RecursivePatternSyntax
{ Designation: not null }
src\Analyzers\CSharp\CodeFixes\RemoveUnnecessaryDiscardDesignation\CSharpRemoveUnnecessaryDiscardDesignationCodeFixProvider.cs (2)
71
case
RecursivePatternSyntax
recursivePattern:
75
((
RecursivePatternSyntax
)current).WithDesignation(null)
src\Analyzers\CSharp\CodeFixes\RemoveUnusedParametersAndValues\CSharpRemoveUnusedValuesCodeFixProvider.cs (5)
108
if (parent is
RecursivePatternSyntax
recursivePattern)
110
var
withoutDesignation = recursivePattern.WithDesignation(null);
146
if (originalOldNode is
RecursivePatternSyntax
originalOldRecursivePattern &&
147
proposedReplacementNode is
RecursivePatternSyntax
proposedReplacementRecursivePattern &&
150
proposedReplacementNode = ((
RecursivePatternSyntax
)changedOldNode).WithDesignation(null)
src\Analyzers\CSharp\CodeFixes\UsePatternMatching\CSharpAsAndMemberAccessCodeFixProvider.cs (1)
75
var
recursivePattern = RecursivePattern(
Microsoft.CodeAnalysis.CSharp.Syntax.UnitTests (5)
Generated\Syntax.Test.xml.Generated.cs (5)
10636
private static
RecursivePatternSyntax
GenerateRecursivePattern()
12184
var
node = GenerateRecursivePattern();
12190
var
newNode = node.WithType(node.Type).WithPositionalPatternClause(node.PositionalPatternClause).WithPropertyPatternClause(node.PropertyPatternClause).WithDesignation(node.Designation);
16655
var
oldNode = GenerateRecursivePattern();
16671
var
oldNode = GenerateRecursivePattern();
Microsoft.CodeAnalysis.CSharp.Workspaces (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
786
case
RecursivePatternSyntax
:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
188
if (propertyPatternClause.Parent is
RecursivePatternSyntax
{ Parent: { } recursivePatternParent })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (1)
153
var isFirstTokenOfSwitchArm = currentToken.Parent.IsParentKind(SyntaxKind.RecursivePattern, out
RecursivePatternSyntax
? recursivePattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (2)
51
if (node is
RecursivePatternSyntax
recursivePattern)
109
if (isPattern.Pattern is
RecursivePatternSyntax
recursivePattern2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1409
var
recursivePattern = (
RecursivePatternSyntax
)node;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1500
return patternSyntax is DeclarationPatternSyntax or
RecursivePatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (4)
172
RecursivePatternSyntax
propertyPattern => InferTypeInRecursivePattern(propertyPattern),
1446
private IEnumerable<TypeInferenceInfo> InferTypeInRecursivePattern(
RecursivePatternSyntax
recursivePattern)
1535
RecursivePatternSyntax
recursivePattern => GetTypesForRecursivePattern(recursivePattern),
1548
private IEnumerable<TypeInferenceInfo> GetTypesForRecursivePattern(
RecursivePatternSyntax
recursivePattern)
Microsoft.CodeAnalysis.Test.Utilities (1)
Compilation\TestOperationVisitor.cs (1)
1501
var designation = (operation.Syntax as CSharp.Syntax.
RecursivePatternSyntax
)?.Designation;
Roslyn.Diagnostics.CSharp.Analyzers (12)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Extensions\ParenthesizedExpressionSyntaxExtensions.cs (1)
786
case
RecursivePatternSyntax
:
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\IndentBlockFormattingRule.cs (1)
188
if (propertyPatternClause.Parent is
RecursivePatternSyntax
{ Parent: { } recursivePatternParent })
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\NewLineUserSettingFormattingRule.cs (1)
153
var isFirstTokenOfSwitchArm = currentToken.Parent.IsParentKind(SyntaxKind.RecursivePattern, out
RecursivePatternSyntax
? recursivePattern)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Formatting\Rules\SuppressFormattingRule.cs (2)
51
if (node is
RecursivePatternSyntax
recursivePattern)
109
if (isPattern.Pattern is
RecursivePatternSyntax
recursivePattern2)
src\Workspaces\SharedUtilitiesAndExtensions\Compiler\CSharp\Services\SyntaxFacts\CSharpSyntaxFacts.cs (2)
1409
var
recursivePattern = (
RecursivePatternSyntax
)node;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\Extensions\ContextQuery\SyntaxTreeExtensions.cs (1)
1500
return patternSyntax is DeclarationPatternSyntax or
RecursivePatternSyntax
;
src\Workspaces\SharedUtilitiesAndExtensions\Workspace\CSharp\LanguageServices\CSharpTypeInferenceService.TypeInferrer.cs (4)
172
RecursivePatternSyntax
propertyPattern => InferTypeInRecursivePattern(propertyPattern),
1446
private IEnumerable<TypeInferenceInfo> InferTypeInRecursivePattern(
RecursivePatternSyntax
recursivePattern)
1535
RecursivePatternSyntax
recursivePattern => GetTypesForRecursivePattern(recursivePattern),
1548
private IEnumerable<TypeInferenceInfo> GetTypesForRecursivePattern(
RecursivePatternSyntax
recursivePattern)